Imprimir página | Cerrar ventana

DLookup

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=84775
Fecha de impresión: 27/Marzo/2026 a las 00:23


Tema: DLookup
Publicado por: Nomada
Asunto: DLookup
Fecha de publicación: 25/Octubre/2019 a las 13:05
Buenas.
Cómo puedo tomar datos de varios campos al utilizar la función DLookup, en caso de que la búsqueda sea positiva?

Código:
Dim vApellidos, vNombre As String, vNum As String
vApellidos = DLookup("CApellidos", "T_Clientes", "CLI_NUM = '" &  vNum & "'")

Si encuentra un vNum en el campo CLI_NUM, al igual que la variable vApellidos toma el valor del campo CApellidos, deseo que vNombre tome el valor del campo correspondiente (CNombre) del registro encontrado.

Gracias.



Respuestas:
Publicado por: prga
Fecha de publicación: 25/Octubre/2019 a las 13:55
Hola.
Prueba con algo parecido a:
valor=DLookup("[CApellidos] &  '_' &  [vnombre]", "T_Clientes", "CLI_NUM = '" &  vNum & "'")
y después se sacan los valores con split
Escrito de memoria, asi es que....
Espero que ayude a resolver la duda
Ya comentas.
Un saludo a todos



Publicado por: Nomada
Fecha de publicación: 28/Octubre/2019 a las 13:48
Gracias prga.
Creo que no me he explicado bien. Veamos si me aclaro:
Si la variable vNum encuentra un valor igual al campo CLI_NUM de la tabla T_Clientes, vApellidos toma al valor de ese cliente del campo CApellidos. Ya que vNum existe, quiero que la variable vNombre tome el valor del campo CNombre de ese mismo registro.
Es decir, existen dos campos de los cuales quiero tomar el valor siempre que vNum encuentre un valor.

Saludos.


Publicado por: prga
Fecha de publicación: 28/Octubre/2019 a las 14:34
Hola
Creo que cometí una 'errata' en la escritura del nombre del campo nombre.
Quedaría:
valor=DLookup("[CApellidos] &  '_' &  [CNombre]", "T_Clientes", "CLI_NUM = '" &  vNum & "'")
Con lo anterior, sí vNum existe, la variable valor quedaría como:
"Apellidos_nombre" y ahí es donde entra la función split( o cualquier otra similar) para sacar los apellidos y el nombre por separado, con lo que ya tendríamos el Vnombre y el Vapellidos
Espero que ayude a resolver la duda
Ya comentas.
Un saludo a todos


Publicado por: teogf
Fecha de publicación: 28/Octubre/2019 a las 14:35
Hola Nomada,

En esta ayuda viene una muy buena explicacion.  https://docs.microsoft.com/es-es/office/vba/api/access.application.dlookup" rel="nofollow - https://docs.microsoft.com/es-es/office/vba/api/access.application.dlookup

Creo que lo que tu buscas es algo así:

' Use two fields from a single record. variable = DLookup("[LastName] & ', ' & [FirstName]", "tblPeople", "[PrimaryKey] = 7")


Saludos,


Publicado por: VIMIPAS
Fecha de publicación: 29/Octubre/2019 a las 10:42
Buenos días.

Nomada, ¿estás seguro de que el campo CLI_NUM es un campo de Texto?... Si es correcto no hay nada que objetar pues estás usando la ' comilla simple para la búsqueda. Pero como lo habitual es que sea numérico es por lo que me atrevo a sugerirlo, ya que de ser así, tal vez no estés encontrado lo que existe en la variable vNum.

Míralo a ver.

Saludos.


-------------
Gracias


Publicado por: Nomada
Fecha de publicación: 29/Octubre/2019 a las 14:13
Muchas gracias a los dos.
Perfecto prga, ahora si lo he entendido y funciona bien.
Este hilo se puede cerrar satisfactoriamente.

Saludos a todos.



Imprimir página | Cerrar ventana