Buscar valor de otro formulario

He creado un campo de texto en un formulario y le he puesto este código en el origen de control de un formulario "=DBúsq("Instrucc","INSTRUCCIONES_Cuenta";"UNIDAD_REF=" & [me].[instrucc].[Valor])" lo que necesito y no me sale es que en dicho campo de texto me aparezca el valor existente en una consulta llamada INSTRUCCIONES_Cuenta y el campo a buscar se llama  Instrucc, siendo el campo de relación UNIDAD_REF

3 respuestas

Respuesta
1

La función DLookup no es adecuada en ese contexto, lo seria para un cuadro de texto (que seria independiente/calculado) en un formulario con o sin origen de datos.
Lo aclaro:
Tabla (o consulta) : una caja con cosas que guardan relación (porgamos que herramientas)
Formulario: Una mesa o espacio en el ubicar (para utilizarlo) el contenido de la tabla.
Cuadro de texto: bandeja o apartado (en el formulario) para poner un tipo de objeto (herramienta)
Cuadro de texto 'calculado': una bandeja que contiene algo que no pertenece a la tabla pero que se utilizara con los demás objetos del formulario (pongamos que un trapo para limpiar las herramientas).

Espero que entiendas porque un objeto (el trapo de limpieza) no pueda ser 'la mesa', podrá ser el único objeto de/en la mesa, pero no 'la mesa'.

Si asumimos que se trata de adjudicar un valor a un objeto del formulario (no al formulario), en ese contexto no se puede utilizar la referencia 'Me' (fuera de VBA, como origen de un control) ya que Access no lo entenderá pues es una referencia relativa y en esa ubicación (modo diseño del formulario) la referencia ha de ser absoluta ([Formulario] + [nombreDelFormulario] + [nombreDelObjeto]).

Intenta ser preciso en las descripciones, aunque ambos sean redondos y tengan relación, no es lo mismo el aro redondo (volante) que el aro redondo (rueda de repuesto).

Perdón, me refería a un cuadro de texto

Si existe una tabla o consulta ([INSTRUCCIONES_Cuenta]) que tenga dos campos ([Instrucc] + [UNIDAD_REF]) y se desea localizar un dato que esta en otro formulario (o en el actual) la referencia ha de ser absoluta, Me = el formulario actual (y solo en VBA).

Si el dato es alfanumérico:

DBúsq("Instrucc","INSTRUCCIONES_Cuenta";"UNIDAD_REF= '" & Forms.[nombre-formulario].[instrucc] & "'")

Si el dato es un valor numérico:

DBúsq("Instrucc","INSTRUCCIONES_Cuenta";"UNIDAD_REF= " & Forms.[nombre-formulario].[instrucc])

La diferencia: unas comillas simples para que Access conozca el tipo de dato.

Acotación:
... Por otro lado, veo que entre Instrucc e instrucciones hay una coma y sin embargo, luego, entre Cuenta y Unidad_Ref hay un punto y coma ...

Aclaración:
El punto y coma como separador de listas (es la configuración regional de España).

La coma simple en VBA (sin influencias ni interferencias de cualquier configuración regional).

Suele suceder cuando se responde en directo (no se utiliza una colección de respuestas).

Respuesta
1

Sería conveniente anexara una imagen sobre la cuadricula de la consulta. Ahora, anteponga NZ() al DLOOKUP(). En la consulta no sé si la búsqueda es un criterio o una columna.

¿No veo dónde hace referencia al campo del formulario?

Respuesta
1

¿Has probado a ponerlo como

....=DBúsq("Instrucc","INSTRUCCIONES_Cuenta","UNIDAD_REF='" & me.instrucc & "'")

Al ser el control Instrucc tipo texto tienes que ponerlo como Apostrofe, comillas & y cierra & comillas, apostrofe comillas

Por otro lado, veo que entre Instrucc e instrucciones hay una coma y sin embargo, luego, entre Cuenta y Unidad_Ref hay un punto y coma

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas