Visual Basic - Pregunta de SQL.

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

Pregunta de SQL.

Publicado por Adolfo (117 intervenciones) el 20/09/2002 22:55:35
Tengo el siguiente código para consultar una fecha específica y un rango de fechas respctivamente, el rango de fechas si me funciona, pero cuando es una fecha específica no me funciona. No encuentro donde esta el error, el mensaje de error que resivo dice:
"Data type mismatch in criteria expression." error 3464.

Fecha específica (NO FUNCIONA)
Set TotServi1 = basedatos1.OpenRecordset("SELECT * " & _
"FROM TotServiciosD WHERE Fecha = '" & Primera & "'", dbOpenDynaset)

Rango de fechas (SI FUNCIONA)
Set TotServi1 = basedatos1.OpenRecordset("SELECT * " & _
"FROM TotServiciosD WHERE Fecha BETWEEN #" & Primera & "# and #" & Ultima & "#", dbOpenDynaset)

Agradeceré a cualquiera que me pueda ayudar.

Gracias.

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
Imágen de perfil de Wilfredo
Val: 8
Ha aumentado su posición en 9 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

RE:Pregunta de SQL.

Publicado por Wilfredo (120 intervenciones) el 21/09/2002 00:15:32
Hola Adolfo

Set TotServi1 = basedatos1.OpenRecordset("SELECT * " & _
"FROM TotServiciosD WHERE Cdate(Fecha) =' " & Cdate( Primera) & "'", dbOpenDynaset)

y asunto arreglado

Espero te sirva

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
sin imagen de perfil

RE:Una Pregunta más de SQL.

Publicado por Adolfo (117 intervenciones) el 21/09/2002 01:37:07
Hola Wilfredo

MUCHAS GRACIAS por la ayuda.
Una pregunta más...

Tengo el siguiente código:

Set TotServi1 = basedatos1.OpenRecordset("SELECT * " & _
"FROM TotServiciosD WHERE Fecha BETWEEN #" & Primera & "# and #" & Ultima & "#", dbOpenDynaset)

El cual uso para consultar un rango de fechas, mi problema ahora es que, la tabla almacena el monto que se cobra por cada servicio que se presta diariamente, es decir, por ejemplo:
Servicio Total Fecha
Impresion B/N 1000 01/09/02
Impresion Color 3000 01/09/02

Impresion B/N 500 02/09/02
Impresio Color 2000 02/09/02
Etc.
Etc.

Como puedo hacer para que el programa me muestre en un "GRID" la lista de los servicios prestados en el rango de fechas indicado, pero mostrando solamente una vez cada servicio, es decir, que sume todos los montos correspondientes al mismo servicio en las distintas fechas y muestre el total en una sola FILA del GRID.
(UNA FILA POR CADA SERVICIO).

Es decir, que segun el ejemplo anterior, lo que necesito que muestre es lo siguiente:

Servicio Total
Impresion B/N 1500
Impresion Color 5000

De nuevo MUCHAS GRACIAS por la ayuda que me diste y se me puedes ayudar (o dar alguna sugerencia) sobre este otro asunto, te estarías más agradecido.
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:Una Pregunta más de SQL.

Publicado por Jim (10 intervenciones) el 21/09/2002 12:27:41
Set TotServi1 = basedatos1.OpenRecordset("SELECT Descripcion, fecha, sum(importes) " & _
"FROM TotServiciosD WHERE Fecha BETWEEN #" & Primera & "# and #" & Ultima & "# group by descripcion, fecha", dbOpenDynaset)

La proxima vez incluí el diseño de la/las tabla asi es más claro.
Saludos
Jim.
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
sin imagen de perfil

RE:Una Pregunta más de SQL.

Publicado por Adolfo (117 intervenciones) el 21/09/2002 20:16:48
Hola Jim, Muchas gracias por la ayuda, pero tengo una duda.
La tabla que uso tiene los siguientes campos:
Cantidad, Descripcion, Total y Fecha.
Agregé el codigo que me diste:

Set TotServi1 = basedatos1.OpenRecordset("SELECT Descripcion, Cantidad, Fecha, SUM(Total)" & _
"FROM TotServiciosD WHERE Fecha BETWEEN #" & Primera & "# and #" & Ultima & "# GROUP by Descripcion, Cantidad, Fecha", dbOpenDynaset)

Pero al tratar de mostrarlo en el GRID, de la siguiente manera:

Detalle.Row = Linea
Detalle.Col = 0
Detalle.Text = TotServi1!Cantidad
Detalle.Col = 1
Detalle.Text = TotServi1!Descripcion
Detalle.Col = 2
* Detalle.Text = Format(TotServi1!Total, "##,###")

Me dice "Error 3265" Item not found in this collection.
El error lo muestra en la linea que marqué con un asterisco (*).
No sé como hacer para que me muestre la suma del campo Total?
Parese que la operación si la hace, pero no me la muestra. Lo unico que se me ocurre que pueda estar pasando es que el programa le asigne otro nombre al campo Total (por estar usando el SUM(Total)), pero no sé cual sería?

Te agradecería si me puedes dar una idea de donde puede estar el error.

Gracias.
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