En este ejemplo podemos ver de una manera fácil como se llena un MSHFlexGrid y cómo mostrar un reporte usando DataReport con los datos del registro seleccionado.
El proyecto cuenta con una base de datos MS Access con una tabla Alumnos que contiene 5 campos.
Primero se hace la conexión a la base de datos:
Dim ConexionADO As New ADODB.Connection Sub Conectar() ConexionADO.CursorLocation = adUseClient ConexionADO.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & App.Path & "/BaseDatos.accdb" _ & ";Jet OLEDB:Database Password=" End Sub
Se llena el MSHFlexGrid haciendo una consulta a la tabla Alumnos:
Sub LlenarGrid() Dim Recor As New ADODB.Recordset Dim SQL As String SQL = "Select * from Alumnos order by nombre_apellidos_al ASC" Set Recor = ConexionADO.Execute(SQL) numcolumnas = 6 With MSHFlexGrid1 .Cols = numcolumnas ' Numero de columnas que contendra el grid 'titulos de las columnas .TextMatrix(0, 1) = "Codigo" .TextMatrix(0, 2) = "Nombre" .TextMatrix(0, 3) = "Identificacion" .TextMatrix(0, 4) = "Teléfono" .TextMatrix(0, 5) = "Dirección" 'anchos de las columnas .ColWidth(0) = 0 .ColWidth(1) = 900 .ColWidth(2) = 3000 .ColWidth(3) = 1500 .ColWidth(4) = 1500 .ColWidth(5) = 2500 .DataMember = Recor.DataMember Set .DataSource = Recor.DataSource numfilas = Recor.RecordCount ' se va a cambiar el color de fondo de las filas pares For fil = 1 To numfilas .Row = fil 'seleccionamos la fia If fil Mod 2 = 0 Then 'si es un numero par For Colum = 1 To numcolumnas - 1 'recorremos las columnas .Col = Colum .CellBackColor = &HFEEEDD 'se cambia el color de la celda Next Colum End If Next fil End With End Sub
Se llama desde el evento Load del Formulario, se llama al procedimiento de Conectar y el de LlenarGrid
Private Sub Form_Load() Call Conectar Call LlenarGrid End Sub
Para hacer el Reporte se Crear un nuevo reporte usando DataReport y se personaliza: Hay que tener en cuenta la propiedad DataFiel de los rptTextBox aqui se debo colocar el nombre del campo de la tabla que se desea mostrar.
El código para mostrar el Reporte de Alumno seleccionado en el Grid es el siguiente:
Private Sub cmdReporte_Click() Dim Recor As New ADODB.Recordset Dim SQL As String Codigoalumno = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 1) 'codiog del alumno seleccionado If Codigoalumno <> "" Then ' si el codigo no esta vacio SQL = "Select * from Alumnos Where codigo_al = " & Codigoalumno 'se consultado el codigo del alumno seleccionado Set Recor = ConexionADO.Execute(SQL) DataReport1.DataMember = Recor.DataMember Set DataReport1.DataSource = Recor.DataSource DataReport1.Show ' se muestra el reporte Else MsgBox "Debe seleccionar un alumno", vbExclamation, "Error" End If End Sub
Código del Proyecto: Descargar
En este proyecto, vamos a desarrollar una calculadora sencilla usando Visual Basic 6, que permite…
6 de septiembre de 2024 - La demanda de desarrolladores de software sigue en aumento,…
En un movimiento histórico, la Unión Europea ha aprobado la primera ley de inteligencia artificial…
¿Sigues trabajando con Visual Basic 6 y necesitas una forma eficiente de acceder a tus…
OpenAI revoluciona la interacción con IA: ChatGPT ahora interpreta imágenes En un avance significativo para la…
Bienvenido al Curso Básico de Visual Basic 6! Este curso está diseñado para llevarte a…
Este sitio utiliza cookies desea activarlas
Deja un comentario