Consulta de fechas por rango en la misma columna access

Estoy creando una consulta en la que necesito que el txtfecha_i tenga el primer valor del rango y el txtfecha_f tenga el valor final del rango, esto se debe consultar sobre la misma columna denominada fecha_ultima_validacion. La cuestión es que me manda errores al momento de ejecutar con este código:

Private Sub Comando6_Click()
Dim sql As String
Dim dbs As DAO.Database
Dim rst As DAO.Recordset

sql = "Select A.fecha_ultima_validacion, A.nombre_1, A.apellido_paterno, A.apellido_materno, T.calle FROM" & _
" public_medicos A, public_domicilios T WHERE (A.fecha_ultima_validacion Between fecha_i='$fecha_i' " & _
"And fecha_f = '$fecha_f') AND (A.id = T.medico_id);"

Set dbs = CurrentDb
'On Error GoTo Err_SinData
Set rst = dbs.OpenRecordset(sql, dbOpenSnapshot)
'Asignamos el valor al TextBox
Me.lst_resultado.RowSource = sql
Me.lst_resultado.Requery

'Cerramos el recordset y liberamos memoria
rst.Close
dbs.Close
Set rst = Nothing
Set dbs = Nothing
'Exit_SinData:
'Exit Sub
'Err_SinData:
'MsgBox "System Failure, try once again and GOOD LUCK. If the system still down, pray for a miracle"
'Resume Exit_SinData

End Sub

La consulta funciona bien cuando pongo las fechas directamente como rango, es decir; Format(#01-05-2017#, 'dd/mm/yyyy') And Format(#07-05-2017#, 'dd/mm/yyyy') pero al tratar de hacerlo con la cosulta del código que menciono, no pasa nada o más bien me manda al depurador y me dice que se esperaban dos objetos. ¿Me pueden ayudar

2 respuestas

Respuesta
2

Personalmente creo que te complicas la vida, con eso de dim , set etc.

Basta con poner

Texto94 = DCount("cliente", "clientes", "fecha between dfirst(""fecha"",""clientes"") and dlast(""fecha"",""clientes"")")

En tu caso

Select idloquesea, loquesea, from nombretabla o consulta where fecha.....

Se ve muy bien la consulta que me envías, pero; me podrías apoyar para arreglar la mia? es decir;

mis componentes son fecha_ultima_validacion que es el campo de fecha de la tabla public_medicos, en mi formulario tengo 4 componentes, dos son textbox (fecha_i, fecha_f) y un cuadro de lista en donde se mostrarán los resultados esto a través de un botón que desencadena el evento _Click. Los campos que necesito llamar son de dos tablas, una es public_medicos y la otra es public_domicilios, yo le he puesto a los campos de la tabla public_medicos el alias A.fecha_ultima_validacion, A.nombre_1 con el alias "A" y a la de public_domicilios le puse el alias "T" para que finalmente se identifiquen con A.id y T.medico_id que es la relación de las tablas

Ya quisiera pero, de verdad, no me entero de nada. Por un lado, soy enemigo de poner nombres separados, ya que luego en código hay que estar encerrándolos entre corchetes o comillas. Por otro lado, al ponerlos separados puedes cometer el error de poner Nombre Cliente, y si te fijas hay dos espacios entre ellos y te puedes volver loco con el código al ver que no te funciona, mientras.

También es que me lio con los nombres que pones. Por eso te voy a poner un ejemplo.

Supongamos que tienes la tabla Medico

y la tabla Otratabla con

Están relacionadas el Idmedico con Tidmedico

Si hago un formulario( dices que hay un botón)

Y en el evento Al hacer clic del botón le pongo

Lista2.RowSource = "SELECT Medico.Nombre, Medico.Fecha, OtraTabla.Yoquese FROM Medico INNER JOIN OtraTabla ON Medico.IdMedico = OtraTabla.TIdMedico"

Cuando pulso el botón me queda

Continúo porque en la otra respuesta no me dejó poner más.

Como te decía, en la instrucción puedes continuarla con lo de Fecha between...

Lo que hace es coger algún(os) campo(s) de una tabla y otro(s) de otra, siempre que estén relacionadas.

Respuesta
1

Esta mal tu consulta.

Te dejo un ejemplo como debe ir.

consulta = "SELECT Id,Nombre,Apellidos,Fecha FROM Tabla WHERE Fecha BETWEEN #" _
            & Format(Me.FechaInicio, "mm/dd/yyyy") & "# AND #" & Format(Me. FechaFinal, "mm/dd/yyyy") & "#"

Y te dejo un ejemplo de un video de busqueda entre fechas.(El archivo de trabajo en la descripcion del video)

https://www.youtube.com/watch?v=0XXyBYB4cVc&t=4s 

consulta = "SELECT Id,Nombre,Apellidos,Fecha FROM Tabla WHERE Fecha BETWEEN #" _
            & Format(Me.FechaInicio, "mm/dd/yyyy") & "# AND #" & Format(Me. FechaFinal, "mm/dd/yyyy hh:mm:ss") & "#"

Te corrigo el codigo, me falto una parte.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas