Función DBúsq me da error al buscar un campo calculado de una consulta.

En un formulario tengo un cuadro de control con la función DBúsq, para que busque el valor de un campo calculado de una consulta. La consulta la llamo "conEventos", el campo calculado lo llamo "Total", que es el resultado de los campos "NumeroPAX" y "PrecioMenu". También, entre otros campos, tengo el "IdPresupuesto". La función que he puesto en "Origen de datos": =Nz(DBúsq("Total";"conEventos";"IdPresupuesto=" & "IdPresupuesto");0)

Me da error, he probado poner corchetes en los campos y también me da error. Es evidente que algo hago mal.

2

2 respuestas

Respuesta
2

Javier, prueba así:

=Nz(DBúsq("[Total]";"conEventos";"[tblEventosEdicion.IdPresupuesto]=" & Nz([IdPresupuesto];-1));0)

.

Fenomenal Sveinbjorn El Rojo!!! Ahora no me da error en el nuevo registro. Mil gracias por ayudarme a aprender cada día un poco más.

Saludos!!!

Javier.

Respuesta
1

Una forma que yo lo haría seria la siguiente

=DBúsq("[SumaDeNumFactura]","Consulta2","[Id]=" & [Text2] & "")

En tu caso seria:

=DBúsq("[Total]","conEventos","[IdPresupuesto]=" & [IdPresupuesto] & "")

Gracias Antonio, ahora me funciona, pero he tenido que cambiar un poco la sintaxis por que he tenido que especificar el nombre de la tabla del campo "IdPresupuesto", no sé si por que está en dos tablas de la consulta o porque una de las tablas he añadido todos los campos en la consulta haciendo clic en el asterisco, me imagino que es por esto. Este es el resultado final: 

=Nz(DBúsq("[Total]";"conEventos";"[tblEventosEdicion.IdPresupuesto]=" & [IdPresupuesto]);0)

Lo que en el campo vacío para añadir un nuevo registro me sale "Error", a pesar de la función Nz.

¿Hay algún modo de que no me salga la palabra "Error" si no hay registro?

Gracias por tu ayuda!

Saludos!

Javier.

No agregues todo con asterisco, solo que bayas a ocupar.

=Nz(DBúsq("[Total]","conEventos","[tblEventosEdicion.IdPresupuesto]=" & [IdPresupuesto] & ""),0)

Prueba de la manera anterior. Haber que sale.

Si no renombra tu campo tblEventosEdicion. IdPresupuesto, por ejemplo en el código siguiente renombro Tabla. NumFactura a Total

SELECT Sum(Tabla.NumFactura) AS Total FROM Tabla;

Gracias por tu recomendación! Muy agradecido, ahora funciona!

Saludos!

Bien.

Te invito a suscribirte a mi canal de youtube, es de practicas VBA Access el código esta en la descripción de cada video. Tal vez te sirva alguno .

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas