Visual Basic - Ayuda Urgente

Life is soft - evento anual de software empresarial
   
Vista:

Ayuda Urgente

Publicado por sandra (86 intervenciones) el 24/06/2008 23:40:20
hola que tal.
Nesecito hacer un informe de la siguiente forma:
Tengo q filtrar entre estas dos fechas, fecha inicio y fecha fin y ademas por nombre. eso dependiendo de la fecha que elija y del nombre q esriba en un text del formulario.
Este informe me tiene q listar todos los datos de ese nombre de esa fecha; agrupados por fecha y por nombre.

Sinceramente no se como realizarlo....
Intenete hacer con el Data Environment y no pude realizarlo........

estoy trabajando con vb6 y sql server.

Si alguien puede ayudarme con esto desde ya lo estoy agradeciendo.

muchas gracias,,, saludos...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda Urgente

Publicado por Juan Urrutia (16 intervenciones) el 25/06/2008 17:14:46
Si lo que deseas es como obtener los datos

toma esta funcion

Public Function Consulta(ByVal pstrQuery As String) As ADODB.Recordset
On Error GoTo ErrorHandler
'se declara la variable de conexion
Dim cnnConexion As ADODB.Connection
'se declara la variable tipo recordset
Dim rsRecordSet As ADODB.Recordset

'instancia la conexion
Set cnnConexion = New ADODB.Connection
'se arma la cadena de conexion
cnnConexion.ConnectionString = "Provider=SQLOLEDB;" & _
"Data Source=tuserver;" & _
"Initial Catalog=tuDB;" & _
"User ID=tuuser;" & _
"Password=tupwd;"

'abre la base de datos
cnnConexion.Open
'indica la posicion del cursor
cnnConexion.CursorLocation = adUseClient

'si todo va bien, se instancia el recordset
Set rsRecordSet = New ADODB.Recordset
'se ejecuta la consulta
rsRecordSet.Open pstrQuery, cnnConexion, adOpenDynamic, adLockPessimistic
'se desliga la conexion del recorset para que no haya error al cerrarla
rsRecordSet.ActiveConnection = Nothing
'asignamos el recordset a ser devuelto por la funcion
Set Consulta = rsRecordSet
'cerramos conexion
cnnConexion.Close
'desinstanciamos
Set cnnConexion = Nothing
Set rsRecordSet = Nothing

Exit Function
ErrorHandler:
'cualquier error, se notifica al usuario y se desinstancian objetos
MsgBox Err.Description, vbInformation, " Error " & Err.Number
Set cnnConexion = Nothing
Set rsRecordSet = Nothing
End Function

ya nomas llamas a esta funcion

set tuRecordset = Consulta ("SELECT tuscampos FROM tutabla GROUP BY campos");

luego recorres el recordset

espero te sirva de algo....sino

pues igual y comunicate conmigo

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda Urgente

Publicado por sandra (86 intervenciones) el 25/06/2008 21:54:06
hola, como estas...
Al poner asi:

set tuRecordset = Consulta ("Select PACIENTES.apellido, PACIENTES.nombre, PACIENTES.fecha_nac, PACIENTES.tipo_doc, PACIENTES.doc_paciente, PACIENTES.sexo, PACIENTES.domicilio, PACIENTES.tel_cel, CIUDADES.nombre_ciudad From PACIENTES INNER JOIN CIUDADES ON CIUDADES.id_ciudad = PACIENTES.id_ciudad
GROUP BY PACIENTES.fecha_nac and PACIENTES.id_ciudad
order by PACIENTES.id_ciudad ");

Me tira este error "La columna 'PACIENTES.apellido' de la lista de selccion no es valida porque no esta contenida en una funcion de agregado ni en la clausula GROUP BY"

si le agrego PACIENTES.apellido a la clausula GROUP BY me dice lo mismo con PACIENTES.fecha_nac y asi sucesivamente...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda Urgente

Publicado por Juan Urrutia (16 intervenciones) el 25/06/2008 23:18:43
Hola

ese error te lo da porque no estas agregando alguna funcion de agrupacion

no entiendo bien como los quieres agrupar

si me explicas un pokito, te podria ayudar mas

te agregue al messenger pero no estas conectada

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda Urgente

Publicado por sandra (86 intervenciones) el 26/06/2008 12:34:51
Hola como etas,

Te cuento, tengo una tabla llena de campos upongamos esta tabla Liquidacion: con los iguientes, Codigo_producto,apellido, nombre, Fecha de emision, periodo, monto total.

otra tabla q tengo llamada Producto que tiene como campos codigo_producto, nombre_producto, monto_unitario.

El periodo es el mes y año formato mm/yyyy

yo necesito agrupaar las liquidaciones por producto y por periodo. ademas tengo q poder filtrar desde un formulario que voy a ingresar periodo desde , periodo hasta, y el producto que quiero mostrar.

Te doy este ejemplo de tabla porq se me hace mas explicativa.

Te cuento que estube probando trabajar con el dataenvironment y te cuento lo q paso:

En el command1 le puse Select codigo_producto, nombre_producto from productos where codigo_productos=?

en el subcomando del command1, osea el command2 puse:

Select codigo_producto, periodo, monto_total from liquidacion inner join productos on liquidacion.codigo_productos = productos.codigo_productos

La parte de diseño de reportes osea formulario de reportes le puse grupos. En el encabesado de grupo1 le puce nombre_productos que es del commnd1 en el detalle le puse los datos del command2.

Asi como te expliq funciona me agrupa por producotos. Re bien.

Pero si pongo asi porq la verdad q necesito filtrar tambien por periodo :
Select productos.codigo_producto, productos.nombre_producto, liquidacion.periodo from from liquidacion inner join productos on liquidacion.codigo_productos = productos.codigo_productos where codigo_productos=? and liquidacion.periodo >=? and liquidacion.periodo <=?

me agrupa pero me repite la misma tabla tantas filas contenga la misma. Osea si mi tabla visualizada ebn el reporte tiene 5 filas de datos , Me repite 5 veces esa tabla osea tengo 5 tablas con los mismos datos en el reporte, y si tengo con 8 filas tengo 8 tablas...

No se cual de las dos formas es mas facil de realizar los reportes, si con consultas o con el DataEnviroment. me gustaria con la primera.

No se si me explico,,, la verdad q mucho quilombo para q entiendas,,,

Te re agradesco las intenciones de ayudar q tenes..

Saludos..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda Urgente

Publicado por Juan Urrutia (16 intervenciones) el 26/06/2008 16:33:10
ok, creo que ya entendi

lo que te pasa es que te repite la info

entonces en el group by tienes que indicarle todas las columnas que estas leyendo....para que te muestre solo una

SELECT c1, c2, c3, cn FROM tabla
WHERE condicion
GROUP BY c1,c2,c3,cn
ORDER BY c2,c3

o tambien puedes darle

SELECT DISTINCT c1, c2, c3, cn FROM tabla
WHERE condicion
ORDER BY c2,c3

espero que eso te ayude
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar