Base de datos de Access con Visual Basic 6.0

Base de datos de Access con Visual Basic 6.0 Lo que quiero hacer en Visual Basic es tener 4 formsel el primero que me permita ingresar un código con el el que el segundo formulario aparezcan los datos con forme al código que metí y ya estando en el segundo que me tire a un tercero con otros datos. Funcionaria con botones de comando lo que tengo ahorita en el botón de comando es "nombre del formulario.hide" para esconder el actual y "nombre del formulario.show" y al darle en aceptar en el primero en el segundo form load no me aparecen los datos que metí en access. No se si me explique bien.
1

1 respuesta

Respuesta
1
Para esto tienes que tener un control ADO en los formularios e inicias los recordset y conexiones, el código sería así:
Dim conexion As ADODB.Connection
Dim recordset As ADODB.Recordset
Set conexion = New ADODB.Connection
conexion.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                          "Data Source=" & App.Path & "\bd.mdb;" & _
                          "Persist Security Info=False"
conexion.CursorLocation = adUseClient
conexion.Open
Set recordset = New ADODB.Recordset
recordset.Open "Select * from tabla", conexion, adOpenStatic, adLockOptimistic
En el primer formulario puedes poner solo un text y un command, en el command puedes decirle que te mande al form2, y en este command poner una búsqueda en visual basic usando SQL más o menos así:
conexion.Execute "Select * From tabla Where Indice=" & text1.text
Form2.show
unload Form1
Een el form2 tienes un Datagrid al cual vas a meterle los valores de la consulta SQL.
Y en la propiedad del Datagrid escribirías:
Private Sub DataGrid1_DblClick()
    Call Editar
End Sub
y la función Editar seria la siguiente:
Private Sub Editar()
    Dim i As Integer
    'Si no hay datos se sale
    If DataGrid1.Row = -1 Then
    Exit Sub
    Else
    'Manda toda la informacion a los text
    With Form6
    For i = 1 To 5
        For j = 1 To 5
        .Text1(i).Text = Form3.DataGrid1.Columns(i).Text
        Next j
    Next i
        .Show vbModal
        DataGrid1.Refresh
    End With
    End If
End Sub
Lo que hace esta función es que manda los datos de la fila seleccionada a los text de otro formulario el cuál sería el 3.
Y así quedaría algo parecido a lo que entendí de tu problema, si no es lo que pedías o si no entiendes, dejame otra pregunta y te contestare lo más pronto posible.
?http://www.megaupload.com/?d=04G8BSHI                para IE
?www.megaupload.com/?d=04G8BSHI                 para Googlechrome
Aquí esta una mejor descripción de lo que te explique sobre el programa con que solo me expliques unos botones necesarios (el primero el de buscar datos conforme al código que hay que ingresar en el primer formulario y el de notas del segundo formulario se pasarme de un formulario al otro con el comando "formulario.hide" y "formularioOS.show" pero no se como relacionarlo con el botón para que en el segundo formulario se actualize conforme al código, lo estamos haciendo en una base de datos de access.
Gracias por tu atención y disculpa que no puede contestarte antes es que tuve algunos problemitas.
Gracias.
Se me olvidaba en visual no abrimos un form normal si no que lo estamos haciendo en DataProyect(Proyecto de datos) es lo de DataEnvoirment.
Gracias de nuevo.
Acá te dejo un ejemplo para buscar:
Public Sub busca()
    With Form2.Adodc1.Recordset
       Do Until .EOF
            If InStr(1, Form1.Text1.Text, Form2.Text1.Text, vbTextCompare) > 0 Then
                ms = MsgBox("Codigo Encontrado", vbInformation, "Busqueda Correcta")
                Exit Sub
            End If
            .MoveNext
         DoEvents
        Loop
    End With
End Sub
Private Sub Command1_Click()
        Call busca
    If Form2.Text1(0).Text = "" Then
        ms = MsgBox("Codigo NO Existe", vbExclamation, "Búsqueda Erronea.")
        Form2.Adodc2.Recordset.MoveFirst
        Text1.SetFocus
        Text1.Text = ""
        Unload Me
        Exit Sub
    End If
    Unload Me
End Sub
Aca buscaria en el form2 algun elemento parecido al codigo del form1, teniendo los text de tu form 2 con un ado. Y seria lo mismo para el de notas o si quieres pues manda buscarlo con el ado. Find y usando marcadores de un datagrid, aca te dejo la otra forma de como seria:
     Private Sub Command1_Click()
         'Quita marcadores previos
         If (DataGrid1.SelBookmarks.Count <> 0) Then
            DataGrid1.SelBookmarks.Remove 0
         End If
         'Pregunta el Numero de Autor
         Find = InputBox("Escribe el numero de Autor que deseas buscar", "Buscar")
         If Find = "" Then Exit Sub
         rs.Find "Au_ID = '" & Find & "'", , , 1
         If rs.EOF = False And rs.BOF = False Then
            DataGrid1.SelBookmarks.Add rs.Bookmark
            MsgBox "Encontrado", vbInformation
         Else
            MsgBox "No Encontrado", vbCritical
         End If
      End Sub
Y en el evento LOAD del formulario escribes lo siguiente:
cn.CursorLocation = adUseClient
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\BIBLIO.MDB;Persist Security Info=False"
         With cmd
            .ActiveConnection = cn
            .CommandText = "select * from authors"
         End With
         With rs
            .CursorType = adOpenKeyset
            .LockType = adLockOptimistic
            .Open cmd
         End With
         Set DataGrid1.DataSource = rs
Esto es para al dar doble clic al autor encontrado nos pase los datos a los text:
Private Sub DataGrid1_DblClick()
    Call Editar
End Sub
Private Sub Editar()
    Dim i As Integer
    'Si no hay datos se sale
    If DataGrid1.Row = -1 Then
    Exit Sub
    Else
    'Manda toda la informacion a los text
    With Form2
    For i = 1 To 4
        For j = 1 To 4
        .Text1(i).Text = Form1.DataGrid1.Columns(i).Text
        Next j
    Next i
        .Show vbModal
        DataGrid1.Refresh
    End With
    End If
End Sub
Y asi buscaria mas facil las notas del alumno que tu selecciones, en este ejemplo es el autor, pero tu puedes modificarlo.
hey Gracias por tu respuesta es bastante completa y todo, lo malo es que algunos comandos que hay no los entiendo como te digo gracias, pero no lo he hecho funcionar por lo mismo que no entiendo algunas partes (estoy en 5to bach), no se si es algún problema si me pudieras enviar el programa hecho en DataProyect y el de access no todo solo que funcione con los dos primeros forms y así guiarme para continuar con los demás forms. (Por si aceptas enviármelo aquí esta mi correo: (xxxxxx))
Mil gracias por toda la ayuda.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas