Access - Acces, función dlookup / dbusq

 
Vista:

Acces, función dlookup / dbusq

Publicado por jose (3 intervenciones) el 19/11/2017 10:42:33
Hola a todos!!!!
Estoy comenzando a utilizar VBA en acces y tengo un problema que no llego a solucionar.

Tengo dos tablas,
La primera se llama 00_ALMACENES_COMPLETO, que tiene los campos Nº_DE_ALMACEN y Descripción_Almacén
La segunda se llama REGISTRO y tiene (entre otros muchos) los campos NºALMACENORIGEN y DESCRIPCIONALMACENORIGEN
(Todos estos campos son de tipo texto)

He creado un formulario basado en la segunda tabla y quiero que al poner el NºALMACENORIGEN busque y complete automáticamente el campo DESCRIPCIÓNALMACENORIGEN y para ello he escrito el código:
DESCRIPCIÓNALMACÉNORIGEN = DLookup("[Descripción_Almacén]", "[00_ALMACENES_COMPLETO]", "Nº_DE_ALMACEN=" & NºALMACEN)

Supongo que la primera parte esá bien y el problema está en el criterio, pero lo he probado de varias formas y no consigo que funcione.

¿alguien me puede echar una mano?
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

Acces, función dlookup / dbusq

Publicado por Anonimo (3319 intervenciones) el 19/11/2017 20:52:29
Para que Access interprete que el dato es un texto hay que indicarselo de forma expresa, tal como se se esta aplicando lo considera un valor numerico (y por lo tanto IMCOMPATIBLE con el tipo de dato esperado)

Dejando a un lado el consejo de que busques informacion sobre como denominar a los objetos de Access (evitara muchos problemas futuros), en el momento actual y con datos de texto deberia funcionara asi:

DESCRIPCIÓNALMACÉNORIGEN = DLookup("[Descripción_Almacén]", "[00_ALMACENES_COMPLETO]", "Nº_DE_ALMACEN='" & NºALMACEN & "'")
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

Acces, función dlookup / dbusq

Publicado por Jose (3 intervenciones) el 20/11/2017 09:37:12
Gracias por la respuesta tan rápida!!!!!!

He probado con el código que me has propuesto y al ejecutar el formulario no me da ningún error, lo que ya parece una mejora.
Sin embargo, al actualizar el control Nº_DE_ALMACEN no pasa nada y por tanto el control DESCRIPCIÓNALMACÉNORIGEN sigue quedando en blanco.

¿El hecho de que el control Nº_DE_ALMACÉN sea un combobox puede ser la causa del problema?


Disculpa mi ignorancia.....
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

Acces, función dlookup / dbusq

Publicado por Anonimo (3319 intervenciones) el 20/11/2017 11:48:48
Siempre dependerá del origen real de datos de ese objeto y de su propiedad 'valor predeterminado' (que es el valor que devuelve por defecto).

Lo que es mejorable es el método que se esta utilizando
Dado que el combo admite mas de una columna se puede utilizar una de sus columnas (incluso oculta) para lograr esa 'sincronía' sin utilizar el oneroso DLookup (solo se precisaría hacer referencia a esa columna del combo como origen del cuadro de texto).
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

Acces, función dlookup / dbusq

Publicado por jose (3 intervenciones) el 21/11/2017 09:56:37
Así me puede valer!!!!!

Gracias por la ayuda, me ha sido bastante util!!!!!!
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