Access - Ayuda: No puedo hacer que me funcione la función Dlookup con el código que pongo.

 
Vista:
sin imagen de perfil

Ayuda: No puedo hacer que me funcione la función Dlookup con el código que pongo.

Publicado por Mar (3 intervenciones) el 22/09/2023 23:12:27
Tengo un problema con un formulario access. Quiero que un campo se rellene automáticamente (Nombre Producto) cuando escribo en otro campo (Referencia Proveedor). Es decir, que al escribir una Referencia del producto se rellene el campo nombre de ese producto. Pero no sé qué hago mal, estoy usando Dlookup y me da error o simplemente no me pone nada pero no me sale.
Esto es lo que he escrito:
=Dlookup(“[Nombre Producto]”, “[Productos y Referencias]”, “[Referencia Proveedor]=” & [NombreP])
Muchas gracias
Un saludo
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

Ayuda: No puedo hacer que me funcione la función Dlookup con el código que pongo.

Publicado por Anonimo (3316 intervenciones) el 23/09/2023 09:27:28
La sintaxis parece correcta, el separador (la coma) es el correcto si es que esta definido como 'separador de listas' en la configuración regional (en la versión en castellano es el punto y coma), solo se admite la coma en VBA (en el que no interfiere la configuración regional).

Se da por supuesto que NombreP es un dato de tipo numérico, si fuera un texto la sintaxis correcta seria:
1
=Dlookup([Nombre Producto],[Productos y Referencias],[Referencia Proveedor]= '” & [NombreP] & "'")
(se le añade el marcador de texto: la comilla simple al inicio, final y sin espacios)

Si lo anterior se cumple, hay que tener en consideracion que dado donde se ha utilizado (como origen de datos de un cuadro de texto) la acción se ejecutara al cambiar de registro y si en ese momento no hay un valor en el cuadro de texto 'NombreP', devolverá un error no importa que mas tarde se le asigne valor a 'NombreP'.

Para que tome el valor tras cambios en 'NombreP' hay cuando menos dos opciones:
.- Refrescar el formulario (Recalc = recalcular)
.- Asignación directa
(en el evento 'después de actualizar' de 'NombreP' hacer la asignacion algo como:
1
Me.[nombre del campo] =Dlookup([Nombre Producto],[Productos y Referencias],[Referencia Proveedor]=& Me.[NombreP])

Si NombreP es un texto:
1
Me.[nombre del campo] =Dlookup([Nombre Producto],[Productos y Referencias],[Referencia Proveedor]='” & Me.[NombreP] "'")
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
sin imagen de perfil

Ayuda: No puedo hacer que me funcione la función Dlookup con el código que pongo.

Publicado por Mar (3 intervenciones) el 24/09/2023 13:45:27
Muchas gracias por tu respuesta. Lo has explicado muy bien.
El campo [nombreP] es texto y he cambiado la sintaxis por la que me has puesto pero sigue sin salir. No sé que le pasa a mi formulario porque veo que a todos os sale en los videos pero a mi no.
Gracias por tu ayuda nuevamente
Un saludo
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

Ayuda: No puedo hacer que me funcione la función Dlookup con el código que pongo.

Publicado por Anonimo (3316 intervenciones) el 24/09/2023 23:46:22
Para que DLookup devuelva un valor este ha de existir en su dominio (DOMINIO = conjunto de datos, una tabla o una consulta)

Para verificar que el problema no es la condición, no la utilices, así devolverá el primer valor de la tabla (o un valor de la tabla, ya que el primero dependerá del índice que utilice), la sintaxis para verificar lo básico:

1
=Dlookup([Nombre Producto],[Productos y Referencias])   ' Ojo el valor devuelto es uno de la tabla cual, es lo de menos

Si se obtiene un resultado, el problema a resolver esta en la condición y las causas pueden ser varias, para ir descartándolas comenzaremos por utilizar un valor conocido en la condición (en el ejemplo y como es un texto ponemos uno conocido (es inventado): PTR123AX que devolvería el nombre asociado (lo que corresponda), la sintaxis:
1
=Dlookup([Nombre Producto],[Productos y Referencias],[Referencia Proveedor]= 'PTR123AX'")

Si el valor devuelto es el correcto, la causa posiblemente estará en que el valor referente se le pasa de forma incorrecta o la referencia aun no esta actualizada (hemos escrito el código (dato) pero faltará un Enter o desplazarse a otro objeto para que el valor se asiente en el).

Los pasos de uno en uno para ir descartando posibles causas.
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
sin imagen de perfil

Ayuda: No puedo hacer que me funcione la función Dlookup con el código que pongo.

Publicado por Mar (3 intervenciones) el 28/09/2023 21:19:23
Muchas gracias de nuevo.
Voy a montar de nuevo el formulario y revisar las tablas y sus propiedades porque he mirado cada cosa que me has dicho y sigue sin salirme.
Te comento cuando lo vuelva a repetir.
Muy agradecida
Un saludo
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