|
|
Que tal, bueno te mando un pequeño ejemplo de como obtener información de una base de datos Access, los pasos a seguir son: Crea un nuevo proyecto, hacé referencia a Dao en el menú Proyecto/referencias, luego en el formulario insertá 2 controles Label, 1 ListBox y un ComboBox, al Label1 ponéle la propiedad index en cero, y para el Label2 la propiedad AutoSize en True, espero que te sirva y como consejo utilizá Ado no Dao, bueno no he hecho el tratamiento de errores por falta de tiempo, bueno suerte y salU2...
'Label1 - propiedad de Index en 0
'Label2 - Propiedad AutoSize = True
'List1
'Combo1
Dim Bd As Database
Dim Rs As Recordset
Dim CampoLleno As Boolean
Dim MoverMouse As Integer
Const Negro As Long = &H80000012
Const Rojo As Long = &HFF&
Private Sub Form_Load()
MoverMouse = -1
Set Bd = OpenDatabase("C:\Programas\Mercuri\BaseMsrl.mdb")
ObtenerNombresTablasBd
End Sub
Sub ObtenerNombresTablasBd()
Dim i As Integer, Num As Integer
Num = 0
For i = 0 To Bd.TableDefs.Count - 1
If Bd.TableDefs(i).Name Like "MSys*" Then GoTo Saltar
List1.AddItem Trim(Bd.TableDefs(i).Name)
Num = Num + 1
Saltar:
Next i
Label2 = "Base: " & Bd.Name & _
" - Cantidad de tablas: " & Num & "."
End Sub
Sub ObtenerNombresCamposTablaBd(Campo As String)
If CampoLleno = True Then DescargarCampo
Dim i As Integer
Set Rs = Bd.OpenRecordset(Campo)
For i = 0 To Rs.Fields.Count - 1
If i = 0 Then GoTo aca
Load Label1(i)
Label1(i).Top = Label1(i - 1).Top + Label1(i).Height
Label1(i).Caption = Trim(Rs.Fields(i).Name)
Label1(i).Visible = True
aca:
Label1(i).Caption = Trim(Rs.Fields(i).Name)
Label1(i).ForeColor = Negro
Next i
Me.Caption = Me.Caption & " Cant. de campos: " & Rs.Fields.Count
CampoLleno = True
Set Rs = Nothing
End Sub
Sub DescargarCampo()
Dim i As Integer
For i = (Label1.lBound + 1) To Label1.uBound
Unload Label1(i)
Next i
Label1(0).ForeColor = Negro
MoverMouse = -1
CampoLleno = False
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set Rs = Nothing
Bd.Close
Set Bd = Nothing
End
End Sub
Private Sub Label1_Click(Index As Integer)
Dim SqlConsulta As String
Combo1.Clear
SqlConsulta = "Select distinct " & _
Trim(Label1(Index).Caption) & " From " & Trim(List1.Text)
Set Rs = Bd.OpenRecordset(SqlConsulta)
If Rs.RecordCount = 0 Then Exit Sub
Rs.MoveFirst
Do While Not Rs.EOF
Combo1.AddItem Trim(Rs(0))
Rs.MoveNext
Loop
Set Rs = Nothing
Combo1.ListIndex = 0
End Sub
Private Sub Label1_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
If MoverMouse = -1 Then GoTo aca
If MoverMouse = Index Then Exit Sub
aca:
Dim i As Integer
For i = Label1.lBound To Label1.uBound
Label1(i).ForeColor = Negro
Next i
MoverMouse = Index
Label1(MoverMouse).ForeColor = Rojo
End Sub
Private Sub List1_Click()
Me.Caption = "Utilizando Tabla: " & Trim(UCase((List1.Text)))
ObtenerNombresCamposTablaBd (List1.Text)
End Sub
|