Función dlookup en formulario de access

Estoy intentado que me de un valor de stock al modificar un cuadro combinado, para ello he usado la función dlookup, en esta función lo que intento obtener es que me ponga en un registro de la tabla llamada salidas el valor de el stock real de otra tabla llamada inventario, con el criterio que el numero de lote sea el mismo

He intentado que al cambiar el campo lote, me ponga el stock para ello he usado la siguiente función

Private Sub Cuadro_combinado52_AfterUpdate()
Me.stock_articulo = DLookup("[inventario]", "[Stock_real]", "Cuadro_combinado52=" & lote_articulo)

End Sub

Donde [inventario] es la tabal que tiene el valor, [stock_real] es el valor que intento traerme a la tabla salidas al registro stock_articulo, siempre que el lote sea el mismo ( lote=Cuadro COmbinado52) y si fuese posible poner una segunda restricción [fecha_articulo] seria mejor.

Lo he intentado pero me da dos errores el primero el de la función y el segundo es que el cuadro_combinado52 depende de otro cuadro combinado llamado cc_cod_barras que filtra los direentes lotes en función del código de barras

Private Sub cc_cod_barras_AfterUpdate()
Me.Refresh

End Sub

2 respuestas

Respuesta
1

La condición no esta bien aplicada, en la igualdad (la condición) se espera que uno de los términos pertenezca (exista) en el dominio (que aquí es la tabla 'Stock_Real' ) y el otro es el referente a localizar.

Para localizar las existencias de una partida (posiblemente un medicamento o similar) y de esa partida un lote determinado, ambos datos han de estar disponibles en el dominio (sea una tabla o consulta).

Si además se desea un tercer parámetro en la condición (una fecha) este dato ha de figurar también en el dominio.

Las condiciones se han de unir con un AND, te aconsejaría que escribieras una consulta sobre esa tabla que te devolviese el dato, una vez lograda la pones en modo 'Vista SQL' y copias lo que esta después del WHERE (sin el punto y coma final) y lo copias como tercer parámetro (condición) en la función.

Respuesta
1

Está indicando mal los parámetros de la función, debe ser algo como

Private Sub Cuadro_combinado52_AfterUpdate()
Me.stock_articulo = DLookup("Stock_real", "Inventario", " lote_articulo=" & Cuadro_combinado52)

End Sub

Si lote_articulo es texto cambia el código a

Private Sub Cuadro_combinado52_AfterUpdate()
Me.stock_articulo = DLookup("Stock_real", "Inventario", " lote_articulo='" & Cuadro_combinado52 & "'")

End Sub

Igualmente, depende de la columna que contiene el valor el cuadro combinado Cuadro_combinado52

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas