¿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
1
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
Respuesta
1
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
Respuesta
1
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

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas