Inicio > Visual Basic > marcelou2 > Formulario para tablas

Formulario para tablas

Experto:
Usuario:
Fecha: 08/10/2008
Valoración: (3,00 sobre 5) Categoría: Visual Basic
08/10/2008
metasearcher, usuario preguntando en Visual Basic
Usuario
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 pais ..m e sale una lista de los datos de la tabla paises.. tambien suceda lo mismo en este formulario...Por favor ayudenme Gracias
08/10/2008
metasearcher, experto respondiendo en Visual Basic
Experto
HOLA, he leido 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...
08/10/2008
metasearcher, usuario preguntando en Visual Basic
Usuario
Ok.. amigo estoy utlizando ADO...
08/10/2008
metasearcher, experto respondiendo en Visual Basic
Experto
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
Enlaces patrocinados