Reportes en VB

Publicado por lugolu, Febrero 24, 2007, 18:38:31

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

lugolu

el tema es así.
para un final de la facultad programamos en visual basic 6.
tenemos que, mediante una consulta de sql con un group by incluido, llenar un reporte de visual basic, no cristal.
el tema es que no sabemos cómo hacerlo, si alguno me puede orientar le agradecería, o un tutorial, alguna página, algo. recurrí a google y no encontré mucho, quise adaptarlo a mi código y sigue sacándome el error que no coinciden las secciones del infrome con el origen de datos.
en el reporte ya agregué una sección llamada número.
lo que quiero hacer es mostrar para una tabla de la base de datos donde hay 3 campos: id, número y nombre, mostrar todos los nombres para cada uno de los números.

CitarSet cn = New ADODB.Connection
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\base.mdb;Persist Security Info=False"
    Dim rs As ADODB.Recordset
    Set rs = New ADODB.Recordset
    rs.Open "SELECT numero, count(*) as cant FROM tabla GROUP BY numero", cn, adOpenDynamic, adLockOptimistic
   
    Set reporte.DataSource = Nothing
    reporte.DataMember = ""
    Set reporte.DataSource = rs
   
    Dim rs1 As ADODB.Recordset
    Set rs1 = New ADODB.Recordset
    rs1.Open "SELECT numero, nombre FROM tabla", cn, adOpenDynamic, adLockOptimistic
   
    Dim seccion, control As Variant
    For Each seccion In reporte.Sections
        Select Case seccion.Name
            Case "numero"
            For Each control In seccion.Controls
                If (TypeOf control Is RptTextBox) Then
                    control.DataMember = "rs"
                    Select Case control.Name
                        Case "txtNumero"
                        control.DataField = "numero"
                        Case "txtCant"
                        control.DataField = "cant"
                    End Select
                End If
            Next
        Case "detalle"
            For Each control In seccion.Controls
                If (TypeOf control Is RptTextBox) Then
                    control.DataMember = "rs1"
                    Select Case control.Name
                        Case "txtNombre"
                        control.DataField = "nombre"
                    End Select
                End If
            Next control
        End Select
    Next seccion
    Load reporte
    reporte.Show
    rs.Close
    Set rs = Nothing
de todo un poco