Access - Uso ¿incorrecto? de DLookUp

 
Vista:

Uso ¿incorrecto? de DLookUp

Publicado por Brais (2 intervenciones) el 02/07/2007 13:03:10
Estoy utilizando la siguiente sentencia SQL
SELECT aSistemasObtencion.CDG_CATEGORIA, aSistemasObtencion.CDG_CLAVE, aSistemasObtencion.CLAVE_ADSCRIPCION,
IIf([clave_adscripcion]<>'',DLookUp([cdg_categoria],'aSistemasObtencion',[cdg_clave]=[clave_adscripcion]),'0') AS resultado
FROM aSistemasObtencion;

para obtener el siguiente resultado:
cdg_categoria cdg_clave clave_adscripcion resultado
SUDL SUD-06 0
SUDL SUD-05 0
SUCO 5 SUD-06 SUDL

sin embargo lo que obtengo es lo siguiente
cdg_categoria cdg_clave clave_adscripcion resultado
SUDL SUD-06 0
SUDL SUD-05 0
SUCO 5 SUD-06 #Error

con el siguiente mensaje:
La expresion que introdujo como parámetro de consulta produjo el error 'El objeto no contiene el objeto de automatización 'SUCO''
¿¿Alguien sabe por que no va??
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
Imágen de perfil de Alejandro

Consulta SQL y error de automatización

Publicado por Alejandro (4142 intervenciones) el 15/08/2023 17:05:46
El error que estás experimentando parece estar relacionado con el uso de la función `DLookUp` en tu consulta SQL. La función `DLookUp` se utiliza para buscar un valor en un conjunto de datos y puede ser problemática en ciertos casos, especialmente cuando se ejecuta en un contexto de consulta. El error indica que está ocurriendo un problema de automatización con el objeto "SUCO".

Para solucionar este problema y obtener el resultado esperado, puedes cambiar tu consulta SQL de la siguiente manera:

1
2
3
4
5
6
7
8
9
10
SELECT
    aSistemasObtencion.CDG_CATEGORIA,
    aSistemasObtencion.CDG_CLAVE,
    aSistemasObtencion.CLAVE_ADSCRIPCION,
    IIf(
        [clave_adscripcion] <> '',
        DLookUp("cdg_categoria", "aSistemasObtencion", "cdg_clave='" & [clave_adscripcion] & "'"),
        '0'
    ) AS resultado
FROM aSistemasObtencion;

Cambios realizados:
1. Se agregaron comillas simples (' ') alrededor del valor `[clave_adscripcion]` en el argumento de búsqueda del `DLookUp`. Esto es necesario para que Access interprete `[clave_adscripcion]` como una cadena en lugar de un objeto.
2. Se concatenó el valor `[clave_adscripcion]` dentro de la cadena del argumento de búsqueda del `DLookUp` utilizando el operador de concatenación (`&`).

Esta modificación debería resolver el problema de automatización y proporcionarte el resultado esperado en tu consulta.
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