Access - Dbusq en consulta

   
Vista:

Dbusq en consulta

Publicado por ROBERTO (145 intervenciones) el 03/10/2012 18:45:24
Hola.

Tengo una consulta con dos tablas relacionadas que muestra los siguientes campos:
MES,ANTIGUEDAD, IRPF, EMPLEADO, AÑO

Seguido de estos campos he creado uno de expresión:
PORCIRPFACT: DBúsq("[PORCIRPF]";"Porcentaje IRPF";"[RELEMPLEPORC] =[EMPLEADO] Y [ANOPORC] =[AÑO]")

lo que quiero es que en el campo de expresión PORCIRPFACT me muestre el contenido del campo [PORCIRPF] que está en la tabla "Porcentaje IRPF"
La condición sería que el campo [RELEMPLEPORC] de la tabla "Porcentaje IRPF" sea igual al campo [EMPLEADO] que muestro en la consulta y [ANOPORC] al campo [AÑO].

He probado con distintas formas de expresión y ninguna me funciona . El tema está en que [EMPLEADO] y [AÑO] son campos de la consulta. No debería ser difícil definirlos en el Dbusq pero no se como.

Despues otra cosa.

A partir de esta consulta que es de selección ejecuto otra de actualización donde relaciono esta consulta con una tabla. Al ejecutarla me dice constantemente. "La operación debe usar una consulta actualizable". He probado a cambiar en las propiedades de la consulta a actualizaciones incoherentes pero sigue igual.

Muchas gracias por todo.
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 Neckkito

Dbusq en consulta

Publicado por Neckkito (1104 intervenciones) el 05/10/2012 12:40:09
Hola!

La expresión que debes escribir es la siguiente:

PORCIRPFACT: DBúsq("[PORCIRPF]";"Porcentaje IRPF";"[RELEMPLEPORC] =" & [EMPLEADO] & " AND [ANOPORC] =" & [AÑO])

Ten en cuenta que la anterior expresión da por supuesto que tanto [Empleado] como [AnoPorc] son valores numéricos. Si no son numéricos y son de tipo texto no te funcionará la expresión. En ese caso los valores a buscar deben ir entre comillas simples. Por ejemplo, si el año fuera un valor de tipo texto la expresión te quedaría así (ojo porque aquí no se ven claramente las comillas simples. Cópiate la expresión en un notepad y lo verás más claro):

PORCIRPFACT: DBúsq("[PORCIRPF]";"Porcentaje IRPF";"[RELEMPLEPORC] =" & [EMPLEADO] & " AND [ANOPORC] ='" & [AÑO] & "'")

Si hay dudas puedes bajarte esta BD simplificada de ejemplo que te he preparado: http://www.filebig.net/files/d7TJgj9hq3

Respecto a tu segunda duda es difícil darte una respuesta porque depende de cómo tengas estructurada la sistemática. Como solución genérica te puedo decir que tendrías que resolverlo a través de un "retruécano". Es decir:
- La consulta de actualización la conviertes en una consulta de creación de tabla
- Te creas una consulta sobre la tabla creada. La consideramos como una "tabla temporal"
- Sobre esta nueva tabla creas la consulta de actualización.

Todo lo anterior se puede automatizar mediante VBA. Si al final optas por esta solución y necesitas que te escriba el código de cómo sería la automatización de este proceso me lo comentas .

Un saludo,

Neckkito
http://neckkito.siliconproject.com.ar
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