¿Cómo puedo extraer los registros de una tabla de una base de datos Access utilizando Visual Basic?
Requiero de tu ayuda para saber como puedo extraer registros de una tabla creada en access con los siguientes campos nombre del alumno español. Matemáticas, historia, geografía. Etc. En el cual registro las calificaciones de cada materia por alumno, y necesito extraer cada calificación y pasarla a un formulario que contiene el formato de la boleta. Quiero que las calificaciones aparezcan en cada cuadro de texto del formulario para poder imprimirla.
¿Cómo lo hago? Mandame un ejemplo Gracias: [email protected] [email protected]
3 Respuestas
Respuesta de gabrieldr
1
1
gabrieldr, Por que no te das una vuelta por la web de el guille, tiene unos...
Bien yo acostumbro, usar capas para realizar mi aplicación, así que mi ejemplo tiene 3. 1.- Cargar los datos de la Base/tabla 2.- Mostrar la información en el formulario. 3.- Imprimir/Guardar los datos. Primero Vamos a preparar todo el proceso para que funcione. En el menu Proyecto de tu VB entra en Referencias y agrega "MICROSOFT DAO 3.60" o el archivo dao360.dll que esta en c:\archivos de programas\archivos comunes\microsoft shared\DAO -Vamos por el paso1. En el general de tu formulario agrega el siguiente código (crea las variables para la BASE DE DATOS y el RECORDSET) Private DB As Database Private rs1 As Recordset -Paso2 En el load() de tu formulario Ponemos el codigo para cargar tu base de datos y tu recordset. Private Sub Form_Load() Set rDB = OpenDatabase("Ruta\archivo.mdb") Set rs1 = rDB.OpenRecordset("select * from Tabla1") End Sub -Paso 3. Agrega TextBox a tu formulario con nombres como xAlumno, Xmatematicas, xespanol, xapellido, etc. Se recomienda que tengan el mismo nombre que la de tus campos pero con una POR al principio para evitar confundirte al momento de cargarlos. -Paso 4 En el activate de tu Formulario cargamos los datos de la tabla y llenamos los textbox. Usando la sintaxis: campo.text=recordset!campo (esta es la capa 2) Private Sub Form_Activate() xalumno.text=rs1!alumno xapellido.text=rs1!apellido xmatematicas.text=rs!matematicas xespanol.text=rs1!espanol x..... etc.... End Sub -Paso 5 (Esta e la capa3) Crea un botón "Imprimir" en tu formulario y otro "Siguiente". En el click del botón imprimir por este código. (Se abre el puerto de la impresora y se imprime directamente hay otras técnicas, pero esta es la más sencilla puedes indagar en la web acerca del DATAREPORT o el comando PRINT.) Lo que se hace es tratar la impresora como si fuera un archivo plano secuencial de basic. Se "suman" los campos en una cadena de texto y se imprime Private Sub imprimir_Click() Dim nombrealumno as string Dim TituloCalif as string Dim calif1 as string nombrealumno="Alumno:" & rs1!Alumno & " "& rs1!Apellido TituloCalif="Español Matematicas Civismo Computo" Calif1=rs1!Espanol&" " &rs1!Matematicas &" "& rs1!Civismo & " " & rs1!computo Open "LPT1:" For Output As #1 Print #1, nombrealumno Print #1, Titulocalif Print #1, Calif1 Print #1, "Esto es un texto adicional que puedes poner" Close #1 End Sub La instrucción Print es por cada linea de mpresion, la impresión comienza hasta que se usa el comando CLOSE #1 Puedes realizar una búsqueda en google "Imprimir en VB" ahí hay más información. -Paso 6 Si deseas imprimir el siguiente registro (otro alumno) crea un botón "SIGUIENTE" o "ANTERIOR" Y agregarle en el comando Clic cualquiera de los siguientes Ordenes. Rs1. Movenext, rs1. MovePrevious, rs1. MoveFirst, rs1. MoveLast o rs1.move X donde x es el numero de registro que quieras, ya les encontraras algun uso. Para despues usar el Activate y que se carguen los nuevos datos en el formulario. Ejemplo: Private Sub btnopen_Click() rs1.Movenext Call form_activate End Sub Espero que esto te sirva, si tienes duda o deseas algo más "Complejo" revísate la documentación en la ayuda del VB de "DataReport, objeto" o específicamente en la "Guía de acceso a datos" de la ayuda de Visual. Suerte. Atentamente. Gabriel Del Río
- Anónimoahora mismo
Respuesta de thementhor
1
1
thementhor, conocimientos avanzados en visual basic 6 power builder asp...
Lo primero que tienes que hacer es una conexión a la base de datos no se si lo sabrás a hacer así que por se acaso te envío el código de la conexión usando la tecnología ADO Primero tienes que activar la referencia de ADO en el menu proyecto referencias busca la librería Microsoft Activex data object library 2.1 este 2.1 puede variar es solo version siguiente en el código dim base as new adodb.connection dim tabla as new adodb.recordset private sub form_load with base .cursorlocation=aduseclient .provider="Microsoft.Jet.OLEDB.4.0" .open rutabase 'pasas la ruta de la base entre comillas end with tabla.open "select * from alumnos",base,adopenstatic,adlockoptimistic me.txtalumno=tabla.fields("nombrealumno") me.txtnotahistoria=tabla.fields("historia") end sub Espero que te haya entendido y eso sea lo que querías si tienes dudas o problemas no dudes en consultar
- Anónimoahora mismo
Respuesta de titopc
1
1
titopc, Me gusta más que nada lo relacionado con las materias exactas
Antes que nada, perdón por la demora, hace meses que ando sin internet y milagrosamente me puedo conectar unos minutos cada tanto. La idea más sencilla que se me ocurre para tu inquietud es agregar un control Data a tu formulario, cargar la base de datos a través de la propiedad DatabaseName y en la propiedad recordset cargar la tabla que te interesa. Luego de hacer esto habría que agregar tantos TextBox como campos tengas en la base y habrá que asociarlos estableciendo la propiedad DataSource de todos a Data1 (en el caso de que el data tenga el nombre original). Una vez hecho esto con la propiedad datafield se indica a que campo específicamente está unido el textbox en cuestión. Una vez terminado esto y con un poco de orden en la interfase gráfica todo quedará bien armado y cada vez que pases por el registro de algún alumno vas a tener toda la información de notas. Suerte Tito