
29/10/2007, 22:36
|
 | | | Fecha de Ingreso: octubre-2007
Mensajes: 11
Antigüedad: 17 años, 6 meses Puntos: 0 | |
Re: Data Report Bueno todas sus repuestas son muy buenas pero prueba con este
Pones esto en un MODULO.
Option Explicit
Public conex As ADODB.Connection
Public record As ADODB.Recordset
Luego en los comentarios del FORM_LOAD pones lo siguiente
'LAS VARIABLES CONEX Y RECORD ESTAN DECLARADAS EN EL MODULO
'COMO VARIABLES PUBLICAS
Private Sub obtener_reporte()
Dim cadena, sql, path As String
path = App.path & "\Inventario.mdb"
'LA VARIABLE PATH ES LA DIRECCION FISICA DE LA BASE DE DATOS
'DE ACCESS O SEA KE DEBERAS CAMBIARLA SI TIENES OTRA BASE DE
'DATOS O DIRECCION FISICA DE LA MISMA
Set conex = New ADODB.Connection
Set record = New ADODB.Recordset
cadena = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & path & ";Persist Security Info=False"
conex.ConnectionString = cadena
conex.Open cadena
sql = "Select codigo,descripcion,precio,marca,fecha From Productos"
'SI DESEAS OBTENER UN REGISTRO EN ESPECIAL DEBES CAMBIAR EL COMANDO SQL
record.LockType = adLockOptimistic
record.CursorLocation = adUseClient
record.CursorType = adOpenDynamic
record.Open sql, conex
'AQUI SE ASIGNA EL DATA SOURCE DEL RECORDSET AL DATA SOURCE DEL DATAREPORT
With DataReport2
Set .DataSource = Nothing
.DataMember = ""
Set .DataSource = record.DataSource
'AQUI SE HACE REFERENCIA A LAS CASILLAS DE TEXTO DEL DATAREPORT
'Y SE LES ASIGNA UN CAMPO A CADA UNA PROVENIENTE DEL RECORDSET
For i = 1 To 5
.Sections("Sección1").Controls.Item(i).DataMember = ""
.Sections("Sección1").Controls.Item(i).DataField = record.Fields(i - 1).Name
Next i
End With
DataReport2.Show
End Sub
Luego en el boton imprimir lo siguiente
Private Sub Command1_Click()
obtener_reporte
End Sub
solo tienes que asegurarate que i = al numero de columnas de tu tabla y que en el diseño del data report haya un numero igual te etiquetas no enlazadas |