Obtener registros de una tabla

HOLA QUE TAL
REQUIERO DE TU AYUDA PARA SABER COMO PUEDO EXTRAER REGISTROS DE UNA TABLA CREADA EN ACCESS CON LOS SIGUIENTES CAMPOS NOMBRE DEL ALUMNO ESPAÑOL.MATEMATICAS,HISTORIA,GEOGRAFIA.ETC. EN EL CUAL REGISTRO LAS CALIFICACIONES DE CADA MATERIA POR ALUMNO, Y NECESITO EXTRAER CADA CALIFICACION Y PASARLA A UN FORMULARIO QUE CONTIENE EL FORMATO DE LA BOLETA.QUIERO QUE LAS CALIFICACIONES APARESCAN EN CADA CUADRO DE TEXTO DEL FORMULARIO PARA PODER IMPRIMIRLA.
¿COMO LO HAGO? MANDAME UN EJEMPLO
GRCIAS:
[email protected]
[email protected]
Respuesta
1
Espero que este sencillo ejemplo te sirva de ayuda...
'Asegurate de modificar la constante RUTA_DATABASE
'segun donde tu hayas instalado Visual Basic.
'
'Crea un proyecto EXE Estándard y añade una referencia a...
'Microsoft ActiveX Data Object 2.6 Library
'Agrega el componente...
'Microsoft Datagrid Control OLEDB
'Agrega los siguientes controles al formulario
'Un Label, un TextBox, siete CommandButton y un Datagrid
'con sus nombres por defecto.
'Ademas un Label con (Nombre) lblFieldName, propiedad Index=0
'un TextBox con (Nombre) txtFieldValue, propiedad Index=0
'Pega todo el siguiente codigo en tu formulario
'Cambia la ruta de la base de datos si es necesario
Option Explicit
Const RUTA_DATABASE = "C:\Archivos de programa\Microsoft Visual Studio\VB98\BIBLIO.MDB"
Const TABLA_TITLES = "SELECT * FROM TITLES"
Dim rstTitles As ADODB.Recordset
Dim booEnlazados As Boolean
Private Sub Form_Load()
'cambiando propiedades del control Label1
With Label1
.AutoSize = True
.Caption = "Texto a buscar:"
.Move 90, 90
End With
'cambiando propiedades del control Text1
With Text1
.Text = "Ingresa aqui el texto que quieres buscar en el campo TITLES..."
.Move 90, 330, 4800, 315
End With
'cambiando propiedades del control Command1
With Command1
.Caption = "&Buscar..."
.Move 5000, 330, 1400, 315
End With
'cambiando propiedades del control Command2
With Command2
.Caption = "&Detalles..."
.Move 90, 750, 1400, 315
End With
'cambiando propiedades del control Command3
With Command3
.Caption = "&Imprimir listado"
.Move 1800, 750, 1400, 315
End With
With Command4
.Caption = "&First"
.Move 3800, 750, 560, 315
End With
With Command5
.Caption = "&Next"
.Move 4400, 750, 560, 315
End With
With Command6
.Caption = "&Prev"
.Move 5000, 750, 560, 315
End With
With Command7
.Caption = "&Last"
.Move 5600, 750, 560, 315
End With
With lblFieldName(0)
.Move 90, 1200
.AutoSize = True
.Caption = ""
End With
With txtFieldName(0)
.Move 2000, 1200, 4400, 315
.Text = ""
End With
'cambiando propiedades del control Datagrid1
DataGrid1.Move 90, 1200, 6400, 3310
Me.Move 0, 0, 6680, 5000
'Listar todos los registro de la tabla Titles
ListarRegistros TABLA_TITLES
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set rstTitles = Nothing
End Sub
Private Sub Text1_GotFocus()
'Seleccionar el texto al recibir el enfoque
With Text1
.SelStart = 0
.SelLength = Len(Trim(.Text))
End With
End Sub
'hace la consulta a la base de datos
Private Sub Command1_Click()
Dim strWhere As String
strWhere = ""
If Len(Trim(Text1.Text)) > 0 Then
strWhere = " WHERE Title LIKE '%" & Text1.Text & "%'"
End If
ListarRegistros TABLA_TITLES & strWhere
End Sub
'intercambia la vista de detalle y datagrid
Private Sub Command2_Click()
Static booStatus As Boolean
DataGrid1.Visible = booStatus
Command2.Caption = IIf(booStatus, "&Detalles...", "&Ver Listado")
Command3.Caption = IIf(booStatus, "&Imprimir listado", "&Imprimir registros")
booStatus = Not booStatus
End Sub
Private Sub Command3_Click()
'para los reportes te recomiendo usar el Crystal Report
Select Case Command3.Caption
Case "&Imprimir listado"
'imprimir registros en forma tabular
Case "&Imprimir registro"
'imprimir registros en forma detallada
End Select
End Sub
'mueve el selector de registros al primer registro
Private Sub Command4_Click()
If (rstTitles.BOF And rstTitles.EOF) Then Exit Sub
rstTitles.MoveFirst
End Sub
'mueve el selector de registros al siguiente registro
Private Sub Command5_Click()
If (rstTitles.BOF And rstTitles.EOF) Then Exit Sub
rstTitles.MoveNext
If rstTitles.EOF Then rstTitles.MoveLast
End Sub
'mueve el selector de registros al anterior registro
Private Sub Command6_Click()
If (rstTitles.BOF And rstTitles.EOF) Then Exit Sub
rstTitles.MovePrevious
If rstTitles.BOF Then rstTitles.MoveFirst
End Sub
'mueve el selector de registros al ultimo registro
Private Sub Command7_Click()
If (rstTitles.BOF And rstTitles.EOF) Then Exit Sub
rstTitles.MoveLast
End Sub
'Procedimiento para obtener los registro de la tabla TITLES
Private Sub ListarRegistros(ByVal SentenciaSQL As String)
Dim cnConnect As ADODB.Connection
Set cnConnect = New ADODB.Connection
cnConnect.ConnectionString = "Provider=Microsoft.Jet.Oledb.4.0;" & _
"Data Source=" & RUTA_DATABASE
cnConnect.Open
Set rstTitles = New ADODB.Recordset
With rstTitles
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.LockType = adLockBatchOptimistic
.ActiveConnection = cnConnect
.Open SentenciaSQL
.ActiveConnection = Nothing
End With
With DataGrid1
.AllowAddNew = False
.AllowUpdate = False
.AllowDelete = False
Set .DataSource = rstTitles
End With
Set cnConnect = Nothing
If Not booEnlazados Then CargarEnlazarControles
End Sub
Private Sub CargarEnlazarControles()
Dim intNumCampos As Integer
Dim intNumControlesCargados As Integer
Dim i As Integer
'la siguiente línea se usa para pasar por alto los errores
'en este caso los errores de carga
On Error Resume Next
intNumCampos = rstTitles.Fields.Count
intNumControlesCargados = txtFieldName.UBound + 1
For i = 0 To intNumCampos - 1
If i > 0 Then
Load lblFieldName(i)
Load txtFieldName(i)
End If
lblFieldName(i).Caption = rstTitles.Fields(i).Name
lblFieldName(i).Move lblFieldName(i).Left, lblFieldName(0).Top + i * (txtFieldName(i).Height + 90)
lblFieldName(i).Visible = True
txtFieldName(i).DataField = rstTitles.Fields(i).Name
txtFieldName(i).Move txtFieldName(i).Left, txtFieldName(0).Top + i * (txtFieldName(i).Height + 90)
txtFieldName(i).Visible = True
Set txtFieldName(i).DataSource = rstTitles
intNumControlesCargados = txtFieldName.UBound + 1
Next
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas