Formulario para tablas

Hola quisiera que me ayuden por favor a este problemita que tengo necesito crear un formulario que me permita visualizar y actualizar datos de cualquier tabla de Access, es decir que me aparezcan tantos etiquetas, cajas de texto como campos tenga la tabla,, ademas en donde he configurado que en access me salgan cuadros combinados cunado selecciono un campo por ejemplo... El campo país .. M e sale una lista de los datos de la tabla países.. También suceda lo mismo en este formulario... Por favor ayúdenme Gracias

1 respuesta

Respuesta
1
He leído tu inquietud, con respecto a actualizar una tabla de access con sus respectivos campos y pasarlos en un formulario en Vb no es complicado, sólo necesitas agregar controles array, lo que sí necesito saber es que tipo de conexión usas Dao, Ado, Rdo, etc, mandame el código de conexión y te envió la solución a tu problema...
Ok.. amigo estoy utilizando ADO...
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 ponele 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 saludos...
'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

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas