Access - DLookup SUBFORMULARIO

   
Vista:

DLookup SUBFORMULARIO

Publicado por ARTURO (8 intervenciones) el 27/03/2011 11:51:54
Saludos.

me pueden apoyar de favor con la siguiente duda:

tengo un formulairo llamado compras y dentro de el hay un formulario relacionado llamado detalle, el formulario detalle tiene los campos id_producto y nombre_producto, lo que requiero realizar es que al momento de generar una nueva compra al ir al formulario detalle y capturar el id_producto un producto este me busque el nombre_producto, tengo ell codigo
Private Sub ID_PCTO_BeforeUpdate(Cancel As Integer)
Dim varX As Variant
varX = DLookup("[P_NOM_PDCTO]", "PRODUCTOS", "[P_ID_PDTCO] = " _
& Forms!COMPRAS_DETALLE_FID_PCTO)
NOM_PCTO = varX
End Sub
pero me marca el error "2450 que no encuentra el formulario detalle"

gracias.
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

DLookup SUBFORMULARIO

Publicado por Marcelo (161 intervenciones) el 29/03/2011 14:11:18
El problema está en la ruta del criterio de la función, debe ser completa, osea estás haciendo referencia sólo al subformulario. Recuerda que el subformulario está inserto dentro de un formulario principal por lo que este tambien debe ser considerado en la expresión. Por ejemplo:

Formulario: Principal
(sub)Formulario: Secundario, dónde hay 1 campo IdProducto en un cuadro de texto con el mismo nombre

La ruta sería

varX = DLookup("IdProducto","Productos", "Productos.IdProducto = Forms![Principal]![Secundario].Form![IdProducto]")

Es importante destacar que el subformulario debe tener datos, sino da error, te recomiendo que siempre cuentes DCount("","") los registros antes de aplicar cualquier otra función agregada de dominio.

Un saludo
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

DLookup SUBFORMULARIO

Publicado por Emilio (221 intervenciones) el 28/03/2011 17:03:34
Prtimero dices que el campo se llama id_producto y luego lo pones ID_PCTO igual con el nombre del producto,
Private Sub ID_PCTO_BeforeUpdate(Cancel As Integer)

NOM_PCTO = DLookup("[P_NOM_PDCTO]", "PRODUCTOS", "[P_ID_PDTCO] = " & Me.ID_PCTO)
End Sub

Donde: P_ID_PDTCO Nombre de tu campo en la tabla PRODUCTOS
P_NOM_PDTCO Nombre de tu campo en la tabla PRODUCTOS
ID_PCTO Nombre de tu control del Subformulario
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