Abrir formulario con dos criterios en VBA
Publicado por Juanjo (37 intervenciones) el 18/09/2020 19:54:52
Hola a todos y gracias de antemano por la ayuda.
Tengo una pequeña macro que debe abrir un formulario aplicando dos criterios:
El problema viene en la función DoCmdOpenForm que me da un error del tipo "No coinciden los tipos de datos en la expresión de criterios". Seguramente esto es una soberana estupidez pero estoy atascado. El problema viene en el segundo criterio.
Si la función fuera así:
DoCmd.OpenForm "PEDIDOS", , , "FechaPedido=#" & Format$(txtFechaSeleccionada, "mm-dd-yyyy") & "#" & " AND IdCliente = 6'" funciona perfectamente y el resultado es el esperado.
Para rastrear donde puede estar el problema, si yo pongo antes de la función DoCmd OpenForm lo siguiente:
MsgBox (Me![Texto0]). Me devuelve 6 que es lo correcto y lo esperado. Entonces ¿por qué no funciona IdCliente = '" & Me![Texto0] & "'" y sí funciona IdCliente = 6
Espero haberme explicado bien y que me puedan ayudar. Gracias.
Tengo una pequeña macro que debe abrir un formulario aplicando dos criterios:
1
2
3
4
5
6
7
8
9
10
11
12
13
Function AsignaFecha(lblLabelPulsada As Label)
Dim txtFechaSeleccionada As Date
ControlMes = Month("01/" & ControlMes & "/" & Year(Date))
txtFechaSeleccionada = CVDate(lblLabelPulsada.Caption & "/" & ControlMes & "/" & txtYear)
DoCmd.OpenForm "PEDIDOS", , , "FechaPedido=#" & Format$(txtFechaSeleccionada, "mm-dd-yyyy") & "#" & " AND IdCliente = '" & Me![Texto0] & "'"
ControlMes = StrConv(MonthName(ControlMes), 3)
End Function
El problema viene en la función DoCmdOpenForm que me da un error del tipo "No coinciden los tipos de datos en la expresión de criterios". Seguramente esto es una soberana estupidez pero estoy atascado. El problema viene en el segundo criterio.
Si la función fuera así:
DoCmd.OpenForm "PEDIDOS", , , "FechaPedido=#" & Format$(txtFechaSeleccionada, "mm-dd-yyyy") & "#" & " AND IdCliente = 6'" funciona perfectamente y el resultado es el esperado.
Para rastrear donde puede estar el problema, si yo pongo antes de la función DoCmd OpenForm lo siguiente:
MsgBox (Me![Texto0]). Me devuelve 6 que es lo correcto y lo esperado. Entonces ¿por qué no funciona IdCliente = '" & Me![Texto0] & "'" y sí funciona IdCliente = 6
Espero haberme explicado bien y que me puedan ayudar. Gracias.
Valora esta pregunta


0