Mostrar formulario filtrado desde otro formulario/subformulario

Tengo un formulario con un subformulario, este subformulario muestra diferentes registros y al final de cada registro muestra un botón de comando (Ver) que al pulsarlo te debe llevar a abrir un formulario en el que te muestra los datos totales del registro seleccionado.

Bien en el evento "click" del botón, establezco una expresión para luego abrir el formulario, la expresión es:
Dim strExpresion As String
strExpresion = "[NumExpediente] = " & Me![NumExpe]
strExpresion = strExpresion & " AND [NumDocumento] = '" & Me![NumDoc] & "'"
strExpresion = strExpresion & " AND [Precio] = " & Me![Precio]
strExpresion = strExpresion & " AND [FPeticion] = " & Me!FPeticion
strExpresion = strExpresion & " AND [FEnvio] = " & Me!FEnvio
DoCmd.OpenForm "frmDocumentos", , , strExpresion, acFormEdit
Forms![frmDocumentos].Modal = True

Las dos primeras líneas de la expresión son datos del formulario principal y los tres siguientes (en negrita) son datos del subformulario. Los tipos de dato son:
NumExpe=Numérico / NumDoc=Texto / Precio=Moneda con 2 decimales / FPeticion=Date y
FEnvio=Date

Con esta expresión, cuando abre el formulario me muestra un registro vacío editable (nuevo registro), parece como si no encontrase la expresión. Probando con otras expresiones, la única que me muestra el formulario, es con la expresión de los datos del formulario principal (NumExpe y NumDoc), pero me los muestra todos es decir, si el Expe-Doc, tienen varios registros, me indica en el selector de registros... 1 de 3, y lo que quisiera es que si pulso el botón (Ver), sólo te muestre este registro.

En fin, le podrías dar una ojeada a ver donde me pierdo.

1 Respuesta

Respuesta
1

Prueba poniendo la parte de la expresión que se refiere a las fechas con almohadillas, así:

strExpresion = strExpresion & " AND [FPeticion] = #" & Format(Me!FPeticion,”mm/dd/yyyy”) & "#"
strExpresion = strExpresion & " AND [FEnvio] = #" & Format(Me!FEnvio,”mm/dd/yyyy”) & "#"


Hola,

He modificado la expresión y he puesto además en el dato "Precio" un formato, ya que de lo contrario me busca sin decimales, sólo la parte entera, pero ahora me da un (error 3075 en tiempo de ejecución "Error de sintaxis (coma) en la expresión de consulta"), la expresión que he puesto ahora es:

strExpresion = "[NumExpediente] = " & Me![NumExpe]
strExpresion = strExpresion & " AND [NumDocumento] = '" & Me![NumDoc] & "'"
strExpresion = strExpresion & " AND [Precio] = " & Format(Me!Precio, "#####0.00")
strExpresion = strExpresion & " AND [FPeticion] = #" & Format(Me!FPeticion, "mm/dd/yyyy") & "#"
strExpresion = strExpresion & " AND [FEnvio] = #" & Format(Me!FEnvio, "mm/dd/yyyy") & "#"

Lo único que me genera una "coma" es el dato "Precio" en el formato, pero es un dato clave de búsqueda, si le quito esta línea, funciona correctamente, ¿ves alguna solución?

Quedo a la espera.
Un saludo

En vez de Format(me. Preciol), pon CCur(me. Precio), para transformarlo a formato moneda, a ver si así no te da problema.

Bueno, el error sigue siendo el mismo, por lo que he decidido dejar fuera de la expresión el dato del Precio, ya que el resto funciona bien.

Muchas gracias por tu ayuda.

Un saludo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas