Visual Basic - busqueda entre fechas

Life is soft - evento anual de software empresarial
 
Vista:

busqueda entre fechas

Publicado por manolo (2 intervenciones) el 01/02/2007 01:48:40
holas , estoy haciendo un programa con access 2003 y VB 6 . para la busqueda de registros entre 2 fechas utilizo DTpicker1 y Dtpicker2. pero cuando hago la consulta ,cada vez q ejecuto me da diferentes registros , inclusive fuera del rango .
el formato en acces es dd-mm-yyyy . lo escribo asi :
Private Sub Command1_Click()
Adodc1.RecordSource = "Select * FROM caja Where Cdate(fecha) BETWEEN
'" & Format(DTPicker1.Value, "dd/mm/yyyy") & "' AND '" &
Format (DTPicker2.Value, "dd/mm/yyyy") & "'"
Adodc1.Refresh
Set DataGrid1.DataSource = Adodc1
e intentado usando textos , tampoco. abria la posibilidad de tener algun virus ??
aunque la busqueda ha sido negativa .

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

RE:busqueda entre fechas

Publicado por AlbertoV (200 intervenciones) el 01/02/2007 12:06:53
Para Access las fechas deben ir encerradas entre numerales (#), los textos entre comillas simples ('), y los números sin nada. Creo que lo tuyo debería ser así:

"Select * FROM caja Where Cdate(fecha) BETWEEN #'" & Format(DTPicker1.Value, "dd/mm/yyyy") & "# AND #" & Format (DTPicker2.Value, "dd/mm/yyyy") & "#"

... si en la BD están guardadas como tipo fecha. Si están como texto estaría bien como lo estás poniendo. Por las dudas verificá en la ventana inmediato haciendo un

Prind Cdate(fecha)

... habiendo puesto primero un punto de interrupción o una instrucción Stop provisoria aquí:

Private Sub Command1_Click()
Stop
Adodc1.RecordSource = .... etc.

... no debes detener por completo el programa porque él cerraría la BD, debe quedar pausado en ese punto, para ver si el formato que te entrega Cdate es el que necesitas para la comparación, porque mencionas que en Access está como "dd-mm-yyyy" y en las Format se lo pasas como "dd/mm/yyyy" con barras en vez de guiones. Además Format te devuelve una String y no un "valor de fecha", posiblemente tengas que aplicarle Cdate también a las Format.
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:busqueda entre fechas

Publicado por lolo (67 intervenciones) el 01/02/2007 22:56:56
mira manolo, que no te lien con mandangas

Adodc1.RecordSource = "Select * FROM caja Where fecha BETWEEN
#" & Format(DTPicker1.Value, 'mm/dd/yyyy') & "# AND '# &
Format (DTPicker2.Value, 'mm/dd/yyyy') & "#"

creo que sabes lo que estas escribiendo y que caja es una tabla de la base de datos y fecha un campo de la misma.
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