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.
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.