Access - Abrir formulario con dos criterios en VBA

 
Vista:
sin imagen de perfil
Val: 59
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

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:

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Abrir formulario con dos criterios en VBA

Publicado por Anonimo (3316 intervenciones) el 19/09/2020 00:34:33
Porque Access diferencia los números y los textos y según la versión que funciona IdCliente tiene que ser un numero y se le pasa un texto.

Esta línea:

1
DoCmd.OpenForm "PEDIDOS", , , "FechaPedido=#" & Format$(txtFechaSeleccionada, "mm-dd-yyyy") & "#" & " AND IdCliente = '" & Me![Texto0] & "'"

Se debería escribir así:


1
DoCmd.OpenForm "PEDIDOS", , , "FechaPedido=#" & Format$(txtFechaSeleccionada, "mm-dd-yyyy") & "#" & " AND IdCliente = " & Me![Texto0]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 59
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Abrir formulario con dos criterios en VBA

Publicado por Juanjo (37 intervenciones) el 19/09/2020 01:22:32
¡¡Muchas Gracias!!. Efectivamente tienes toda la razón. La verdad es que no caí en esta posibilidad. A veces me lío con el uso de las comillas. Muy agradecido.
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