¿Como usar la función Dbúsq?

Tengo un formulario que se llama devolución, Que tiene los siguientes campos.

Cod_Art / CUENTA y Cantidad. También cree un campo de texto con el nombre PRUEBA, la idea es que al ingresar el Cod_Art busque en una consulta que se llama "Movimientos_2" Que tiene las siguientes columnas (Cod_Art / CUENTA y SumaDeSALDO)

Lo que quiero es que al seleccionar El código del artículo y luego la cuenta me busque en la consulta, pero primero que busque la CUENTA y después la cantidad que tiene según el código, y me muestre en el campo de texto PRUEBA.

No se si se entiende.

2 Respuestas

Respuesta
1

Si te tuviera que aconsejar te diría que cambiaras los cuadro de texto CodArt y Cuenta por dos combinados. Siempre es preferible elegir que escribir, ya que así no se cometen errores.

Por ejemplo, si cambias Codart por un combinado puedes poner en sus propiedades-Datos-Origen de la fila

Select codart from nombredeesaconsulta group by codart;

El combinado Cuenta dejaría su origen de la fila en blanco, y en sus propiedades-eventos-al recibir el enfoque crearía un procedimiento de evento y entre Private Sub y End Sub pondría

cuenta.rowsource="select cuenta from nombreconsulta where codart='" & me.codart & "' group by cuenta";

Con lo cual cuando hubieras elegido el CodArt, al poner el cursor en el combinado cuenta sólo te mostraría aquellas cuentas correspondientes a ese CodArt. Entonces, en las propiedades de éste combinado Cuenta-Eventos-Después de actualizar creas el procedimiento de evento y pones

Cantidad=dlookup("sumadesaldo","nombredelaconsulta","codart='" & me.codart & "' and cuenta=" & me.cuenta & "")

Estoy suponiendo que CodArt es texto, si fuera numérico sería

" & me.codart & "

Y he supuesto que cuenta es numérico, si fuera texto sería

'" & me.cuenta & "'

Creo que puede funcionar, pero Cod_Art es de tipo texto y CUENTA de tipo de texto también.

La idea es que en el campo de texto PRUEBA me salte el que cantidad tiene, es decir la SumaDeSALDO de la consulta, dependiendo el código y por supuesto la cuenta

Permíteme un consejo. Nunca, nunca llames a los campos, objetos, controles, etc, con un nombre con / en medio. Es uno de los símbolos prohibidos en Access para nombrar algo.

Voy a guiarme, más o menos, por lo que dices. Me parece entender que tienes la tabla( como no quiero trabajar mucho le pongo pocos registros)

Y la consulta

Fijate en 0001/1111

Si tengo el formulario, en el combinado elijo ese valor

Una vez elegido( el combinado se llama CodArtCuenta)

El código del evento Después de actualizar del combinado es

Private Sub CodArtCuenta_AfterUpdate()
Cantidad = DLookup("sumadesaldo", "consulta1", "codartcuenta like '" & Me.CodArtCuenta & "'")
End Sub

Pero si te he de ser sincero, yo no haría ni la consulta, bastaría con poner

Cantidad=dsum(......

Te paso fotos del formulario, puse los nombres del campo en Negrita, y la consulta. 

No consigo entender para que sirven los combinados del encabezado. Si te parece podemos hacer una cosa. Si la base no tiene datos privados envíamela a [email protected] Si fueran privados haz una copia con unos cuantos registros inventados y me la mandas. En cualquiera de los dos casos, en el asunto del mensaje pon tu alias Charly Barboza, ya que si no sé quien me escribe ni los abro.

Respuesta

Si no hay información confidencial envíeme la base de datos a [email protected] y reviso el formulario, siempre hay más de una forma de hacer las cosas. En el asunto hacer referencia a la pregunta en TodoExpertos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas