Access Vba - Filtrar registros por fecha
Tengo una BB. DD (access 2010) con un formulario (fConductores) cuyo origen de datos es la consulta qConductores. Este formulario contiene los siguientes controles.
- Un Listbox (lbxConductores)
- Un Combobox (cbxConductores)
- Un Textbox (txtConductores)
El evento "al cambiar" del TextBox tiene asociado un código que hace busca incrementales de cadenas de texto en la columna del ListBox que previamente selecciono en el ComboBox. Este código en esencia lo que hace es actualizar el origen de datos del ListBox en función de las coincidencias de texto que encuentre en la columna seleccionada en el combobox a medida que escribo caracteres en el listbox. Esto lo consigo mediante filtros en una clausula SQL.
Todo esto funciona correctamente, excepto cuando selecciono una columna del Listbox que contiene datos de tipo fecha. He probado diferentes modos de sintaxis y nada...
Actualmente el código esta así:
--------------------------------------------------------------------------------------------------------------------
Private Sub txtConductores_Change()
Dim strSQLconductores As String
Dim strFiltro As String
If Me.cbxConductores = "DNI" Then strFiltro = "DNItitular"
If Me.cbxConductores = "NOMBRE" Then strFiltro = "NOMBRE"
If Me.cbxConductores = "DESTINO" Then strFiltro = "DESTINO"
If Me.cbxConductores = "TELEFONO" Then strFiltro = "tfno"
Select Case Me.cbxConductores
Case "LISTA COMPLETA"
strSQLconductores = "SELECT qConductores.DNItitular, qConductores.empleo, qConductores.nombre, qConductores.destino, qConductores.tfno, qConductores.mail, qConductores.condicion, qConductores.categoria, qConductores.procedencia, qConductores.tipoPase, qConductores.fechaValidezInicial, qConductores.fechaValidezFinal, qConductores.fechaExpedicion"
strSQLconductores = strSQLconductores & " FROM qConductores"
Case "DNI", "NOMBRE", "DESTINO", "TELEFONO"
strSQLconductores = "SELECT qConductores.DNItitular, qConductores.empleo, qConductores.nombre, qConductores.destino, qConductores.tfno, qConductores.mail, qConductores.condicion, qConductores.categoria, qConductores.procedencia, qConductores.tipoPase, qConductores.fechaValidezInicial, qConductores.fechaValidezFinal, qConductores.fechaExpedicion"
strSQLconductores = strSQLconductores & " FROM qConductores"
strSQLconductores = strSQLconductores & " WHERE [" & strFiltro & "] LIKE '*" & txtConductores .Text & "*'"
Case "FECHA DE EXPEDICION"
strSQLconductores = "SELECT qConductores.DNItitular, qConductores.empleo, qConductores.nombre, qConductores.destino, qConductores.tfno, qConductores.mail, qConductores.condicion, qConductores.categoria, qConductores.procedencia, qConductores.tipoPase, qConductores.fechaValidezInicial, qConductores.fechaValidezFinal, qConductores.fechaExpedicion"
strSQLconductores = strSQLconductores & " FROM qConductores"
strSQLconductores = strSQLconductores & " WHERE fechaExpedicion Like #" & Format(txtConductores .Text, "mm/dd/yyyy") & "#"
End Select
Me.lbxConductores.RowSource = strSQLconductores
-----------------------------------------------------------------------------------------------------------
Lo ideal seria poder filtrar el origen de datos del lbxConductores en función de la fecha que se especifique en el cuadro de texto txtConductores cuando la columna seleccionada en el cbxConductores sea "FECHA DE EXPEDICIÓN".
Un ultimo detalle seria que cuando la columna seleccionada en el cbxConductores sea "FECHA DE EXPEDICIÓN" que al poner el foco sobre el txtConductores me permita elegir la fecha del cuadro-calendario emergente para datos de fecha de access.