¿Cómo referenciar a un subformulario dentro de una función DBúsq usada en una expresión de campo?
Tengo la siguiente duda con el planteamiento de una expresión que me define un campo calculado en una consulta que sirve de origen de datos a un sub formulario.
Primero voy a mostrar el diseño de tablas y sus relaciones y luego paso a explicar el problema.
Tengo las tablas:
Compras(Campos: nºalbaran-compra, id-proveedor, fecha-compra, ... ; Clave: nºalbaran-compra)
Detalle de Compra (Campos: nºalbaran-compra, id-producto, kilos-compra, precio-compra; Clave: nºalbaran-compra, id-producto)
Ventas (Campos: nºalbaran-venta, id-cliente, fecha-venta, ... ; Clave nºalbaran-venta)
Detalles de Venta ( nºalbaran-venta, id-producto, kilos-venta, precio-venta, ...; Clave: nºalbaran-venta, id-producto)
Productos (id-producto, nombre-producto, ... ; Clave : id-producto)
Proveedores (Campos: id-proveedor, nombre-proveedor, ...; Clave: id-proveedor)
Existencia(Campos: id-producto, nºalbaran-compra, id-proveedor, kilos-existencia; Clave: idproducto, nºalbaran-compra, id-proveedor)
Las relaciones entre las tablas se deducen claramente, porque he usado nombres de campos con el mismo nombre en cada una de las relacionadas.
Tengo un formulario para Venta con un subformulario Detalle de Ventas incrustado y este subformulario usa como origen de datos una consulta que está creada a partir de la tabla [Detalles de Venta]. En dicha consulta necesito incluir un campo que reste al campo [precio-venta] el valor del campo [precio-compra] y para obtener este último necesito hacer una búsqueda en la tabla [Detalle de Compra] pero para el valor que tenga el campo [nºAlbaranCompra] y el campo [id-producto] en cada registro del subformulario. He usado esta expresión:
Bkilo: [precio-venta] DBúsq("[precio-compra]";"[Detalle-Compra]";"[Detalle-Compra]![nºalbaran-compra] = " & [Formularios]![Albaranes de Ventas]![Detalles Albaranes Venta Subformulario].[Form]![txtNAlbaranCompra] & " AND [Detalle-Compra]![id-producto] = " & [Formularios]![Albaranes de Ventas]![Detalles Albaranes Venta Subformulario].[Form]![cmbIdProducto])
Aclaro: txtNAlbaranCompra y cmbIdProducto son los controles vinculados a los campos correspondientes
Al abrir el formulario de Ventas, me sale una ventana de error que dice: "Error de sintaxis (falta operador) en la expresión de consulta "[Detalle-Compra]! [nºalbaran-compra] = AND [Detalle-Compra]![id-producto] = '."
No sé porque da este error. Me puedes ayudar.
También he usado esta otra expresión, pero tampoco la entendido bien el Access:
Bkilo: [precio-venta]-(SELECT precio FROM [Detalle-Compra] WHERE [Detalle-Compra]![nºalbaran-compra] = Me![txtNAlbaranCompra] AND [Detalle-Compra]![id-producto] = Me.[cmbIdProducto] ;)
Necesito saber si ambas expresiones son válidas o no, y qué tengo mal en su sintaxis que no me funcionan.