[SOLUCIONADO]consulta sql access

Iniciado por diego_lp, 10 Noviembre 2009, 22:13 PM

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

diego_lp

Buenas a todos, estoy haciendo una pequeña aplicacion que se conecta a una base de datos access.
Mi problema aparece quendo uso la clausula WHERE para buscar los registros de una fecha determinada.
El error que me tira es :"No coinciden los tipos de datos en la expresión de criterios."
Supongo que el problema esta en la comparacion de ambas fechas (las de cada registro de la db y la que comparo), el tema es que eh probado con diferentes formatos de fecha y siempre me da el mismo error.
Por cierto estoy programando sobre Visual Basic 2008 .net y la base de datos la cree en access 2003.
Les dejo la consulta en negrita a ver si me pueden ayudar:

Dim DS1 As New DataSet()
       Dim DA1 As New OleDbDataAdapter("select * from movimientos WHERE fecha = '23/04/2009'", "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Application.StartupPath + "\db1.mdb")
       DA1.Fill(DS1, "idsel")
       TablaMovimientosSel = DS1.Tables("idsel")
       dgvMovSel.DataSource = TablaMovimientosSel

Bueno muchas gracias de antemano espero que alguien dé con el clavo.
Saludos.
Los programadores hicimos un pacto con Dios, él no hace sistemas y nosotros no hacemos milagros!

raul338

Crea una consulta dentro de la base de datos en access (en vista SQL) y fijate si funciona.

Sino, en vez de poner fecha='15/7/1992', pone, "fecha LIKE '5/5/1885'"


Tal vez te sirvan ;)

diego_lp

No logro hacer que funcione, quiero seleccionar los registros que se encuentran en determinado lapso de tiempo, pero a veces funciona y a veces no.
La consulta es:
select * from movimientos where fecha >= #" & dtpdesde.Value.Date & "# AND fecha <= #" & dtphasta.Value.Date & "#"

Espero que a alguien se le ocurra algo.
Gracias.
Los programadores hicimos un pacto con Dios, él no hace sistemas y nosotros no hacemos milagros!

^Tifa^

No te vale con BETWEEN???

SELECT * FROM tabla WHERE fecha BETWEEN '2009/10/23' AND '2008/11/20'

Por ejemplo.

seba123neo

Cita de: diego_lp en  3 Diciembre 2009, 02:32 AM
No logro hacer que funcione, quiero seleccionar los registros que se encuentran en determinado lapso de tiempo, pero a veces funciona y a veces no.
La consulta es:
select * from movimientos where fecha >= #" & dtpdesde.Value.Date & "# AND fecha <= #" & dtphasta.Value.Date & "#"

Espero que a alguien se le ocurra algo.
Gracias.

fijate que el formato de fecha que te devuleve el control sea el correcto, sino formatealo con Format() como debe ser.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

diego_lp

Gracias por responder, efectivamente logre hacer que funcione usando el BETWEEN, pero tambien me di cuenta de que el formato que pusistes en el ejemplo es distinto al que te devuelve el datetimepicker aaaa/mm/dd - dd/mm/aaaa por lo que tuve que convertirlo y problema resuelto  ;D
Muchas gracias.
Los programadores hicimos un pacto con Dios, él no hace sistemas y nosotros no hacemos milagros!

^Tifa^

De nada diego  :D    :D   :D

Desconocia como SQL Server manejaba los datos DATE, aparentemente si tambien hay que agregarle un formato como en Oracle.

Un saludis  :-*