ahun no se como hacerlo
tengo una base de datos en access97 y queiro saber como hago desde un formulario para filtrar por el campo fecha los registros.y despues asignarlos a un data report.
el formulario tiene dos DtPicker para que el usuario pueda seleccionar la fecha inicial y la fecha final y luego hacer un clik para mostrar los registros correspondientes a las dos fechas seleccionadas
el formulario tiene dos DtPicker para que el usuario pueda seleccionar la fecha inicial y la fecha final y luego hacer un clik para mostrar los registros correspondientes a las dos fechas seleccionadas
pues la sentencia select podría ser así:
"select * from tabla where fecha between datevalue('" & str(dtpicker1) & "') and datevalue('" & str(dtpicker1) & "')"
mucho ojo con las comillas simples
Espero que te sirva.
"select * from tabla where fecha between datevalue('" & str(dtpicker1) & "') and datevalue('" & str(dtpicker1) & "')"
mucho ojo con las comillas simples
Espero que te sirva.
GRACIAS
pero donde exatamente lo hago creo que estoy mesclando las cosas te muestro el codigo talves puedas decirme que hago mal
Option Explicit
Private base As ADODB.Connection
Private WithEvents Rs As ADODB.Recordset
Private Sub Form_Load()
Dim Finicial As Date
Dim Ffinal As Date
Const RutaDeAcceso As String = "C:Documents and SettingslMis documentosdatos.mdb"
Set base = New ADODB.Connection
Set Rs = New ADODB.Recordset
With base
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;" & _
"Data Source=" & RutaDeAcceso & ";"
.Open
End With
Rs.Open "SELEC* FROM egresos WHERE fecha between datevalue('" & Str(DTPicker1) & "') and datevalue('" & Str(DTPicker1) & "')", base, adOpenDynamic
End Sub
es que recien estoy aprendiendo no se que significa esto "between" y " datevalue"
pero donde exatamente lo hago creo que estoy mesclando las cosas te muestro el codigo talves puedas decirme que hago mal
Option Explicit
Private base As ADODB.Connection
Private WithEvents Rs As ADODB.Recordset
Private Sub Form_Load()
Dim Finicial As Date
Dim Ffinal As Date
Const RutaDeAcceso As String = "C:Documents and SettingslMis documentosdatos.mdb"
Set base = New ADODB.Connection
Set Rs = New ADODB.Recordset
With base
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;" & _
"Data Source=" & RutaDeAcceso & ";"
.Open
End With
Rs.Open "SELEC* FROM egresos WHERE fecha between datevalue('" & Str(DTPicker1) & "') and datevalue('" & Str(DTPicker1) & "')", base, adOpenDynamic
End Sub
es que recien estoy aprendiendo no se que significa esto "between" y " datevalue"
Hola andrux.
Yo creo que seria asi:
Rs.Open "SELECT * FROM egresos WHERE fecha between '" & datevalue(DTPicker1) & "' and '" & datevalue(DTPicker2) & "' ", base, adOpenDynamic
Aunque yo no utilizaria el datavalue (el datapicker ya devuelve una fecha.
Datevalue es una funcion de vb no de SQL por lo tanto deberia ir fuera de las comillas
Por otro lado, hay que tener cuidado con el between (entre una fecha y otra) pq si en la fecha no indicas la hora te cuenta hasta las 0 horas del dia, es decir si en tu bd tienes registros con horas, los que correspondan al dia del datapicker2 no saldrian en la seleccion.
Si me equivoque en algo, por favor decidmelo. Ya sabeis como es esto, uno se acostumbra a trabajar de una forma y luego...
Un saludo
Yo creo que seria asi:
Rs.Open "SELECT * FROM egresos WHERE fecha between '" & datevalue(DTPicker1) & "' and '" & datevalue(DTPicker2) & "' ", base, adOpenDynamic
Aunque yo no utilizaria el datavalue (el datapicker ya devuelve una fecha.
Datevalue es una funcion de vb no de SQL por lo tanto deberia ir fuera de las comillas
Por otro lado, hay que tener cuidado con el between (entre una fecha y otra) pq si en la fecha no indicas la hora te cuenta hasta las 0 horas del dia, es decir si en tu bd tienes registros con horas, los que correspondan al dia del datapicker2 no saldrian en la seleccion.
Si me equivoque en algo, por favor decidmelo. Ya sabeis como es esto, uno se acostumbra a trabajar de una forma y luego...
Un saludo