tengo un prolema el programa me genera un reporte pero el reporte me muestra todos los registros de la bases de dato, pero solo nececito que por medio de un formulario un txt y un buton en la cual el txt ingrese el numero de cedula y al aceptar me genere el reporte solo con los registros que se encuentran en la base de datos con ese numero de cedula. trabajo con datareport y vb 6.0AYUDA
Ok, para ello puedes hacer un filtro. Creas un query SQL, como por ejemplo. "Select * from Personas Where Cedula=?" y de esa manera lo guardas en el Dataenviroment. Luego desde el visual basic envias el parametro. Sin embargo te recomiendo aprendas a usar Crystal Reports que es la mejor herramienta a usar en cuanto a reportes ya que es muy dinamico y tiene muchas herramientas que simplifican el trabajo. Es cuestión que busques unos libros o manuales.
Reporte Dinamico usando Crystal Reports 8.5 y un Datagrid.
Nota: Debes tener el Crystal Reports 8.5 instalado!
http://www.gigasize.com/get.php?d=99cg7h7fnhd (http://www.gigasize.com/get.php?d=99cg7h7fnhd)
BD Inscripciones SOURCE. Aplicación sencilla donde puedes visualizar el uso del DATAREPORT.
http://www.gigasize.com/get.php?d=fw74lfv34of (http://www.gigasize.com/get.php?d=fw74lfv34of)
Este es un ejemplo concreto de lo que tienes que hacer, este code es de un proyecto mio pero te puede servir de referencia.
Dim Criteria, StrSQL As String
res = MsgBox("Desea Imprimir La Factura Actual?" & vbCrLf & _
"Seleccione: Si/No", vbYesNo, "IMPRIMIR")
If res = vbNo Then Exit Sub
Set rsInvoiceItems = New ADODB.Recordset
StrSQL = "SELECT factura.numfac, factura.ciu, factura.dircli, factura.dpt," & _
"factura.fecfac, factura.fecven, factura.nit, factura.nomcli, factura.pla," & _
"factura.razsoc, factura.tel, factura.tipcli, factura.valtot, productos_factura.precio," & _
"productos_factura.canfac, productos_factura.numfac AS Expr1, productos_factura.codpro," & _
"Producto.nampro, Producto.prepro, productos_factura.subtot, factura.cantot, factura.des," & _
"factura.fecpropag, factura.percent, factura.tra FROM factura, productos_factura," & _
"Producto WHERE factura.numfac = productos_factura.numfac AND productos_factura.codpro = Producto.codpro"
' EN LA VARIABLE StrSQL REALIAMOS LAS CONSULTAS SOBRE LOS REGISTROS MEDIANTE SQL
With rsInvoiceItems
Criteria = "numfac='" & Trim(text1.text) & "'" ' EN ESTE CASO LO QUE VOY A CONSULTAR SON LOS DATOS DE UNA FACTURA
' HAGO LA BUSQUEDA DEL ID: NUMFAC
.Open StrSQL, ActiveConnection:=DE.CnPanamericana, _
CursorType:=adOpenKeyset, LockType:=adLockOptimistic
' DE es el objeto DataEnvironment y CnPanamericana es la conxion a la base de datos
.Filter = Criteria
If .EOF Then
MsgBox "No Existe El registro", _
vbInformation, "No se encontró el dato"
.Close
Else
DATAREPORT1.DataMember = rsInvoiceItems
DATAREPORT1.PrintReport
Unload DATAREPORT1
.Close
End If
End With
Cita de: chegue en 9 Diciembre 2008, 23:31 PM
tengo un prolema el programa me genera un reporte pero el reporte me muestra todos los registros de la bases de dato, pero solo nececito que por medio de un formulario un txt y un buton en la cual el txt ingrese el numero de cedula y al aceptar me genere el reporte solo con los registros que se encuentran en la base de datos con ese numero de cedula. trabajo con datareport y vb 6.0AYUDA
A mi parecer, lo que haces mal es el filtro a la hora de hacer la consulta o quizás simplemente no lo estas haciendo y como no colocas ningún ejemplo :-\
recuerda incluir la cláusula WHERE en tus consultas, por ejmplo:
CitarWHERE Cedula = '80457894'
cabe señalar, que en una consulta de este tipo solo deberias obtener un registro, ya que solo una persona en la db contaría con ese número de cédula (es el deber ser). Por esa razón muchas personas deciden usar ese campo como PK y de esa manera evitar duplicados y no depender de validaciones externas.
saludos!
ese es el prolema amigos a la hora de hacer el filtro nose como se hace al igual que una consulta yo lo unico que necesito es que el reporte que se me genera solo muestre por medio de su cedula todas las veces que a sido registrado
es un programa sencillo en este caso la cedula no es sin duplicados todo lo contrario es con duplicado, lo que si no se duplica es el nº de registro.
yo lo que quiero es que al ingresar el numero de cedula me parescan todos los registros que se encuentran en la bases de datos con ese numero de cedula eso es lo que quiero,
pero me aparecen todos y no los quiero todos me dicen que por una consulta. no se como se aplica en realidad y gracias por ayudarme con sus repuestas soy un poco nuevo en esto dela programacion ok disculpen.....
gracias cassiany y a todos prebe todos lo ejemplos que me enviaron hasta que logre el resultado se los agradezco me salvaron.....