¿Cómo sumar con condiciones en access desde un formulario de excel?

He estado investigando en la web este tema pero no logro encontrar una respuesta que pueda entender y/o aplicar. El detalle es que quiero conocer como puedo sumar desde un textbox en un formulario de excel datos que introduje en access, me explico.

Tengo un formulario en excel de movimientos de almacén, (Detalle de movimiento, Producto, Cantidad), esta información la envió a una tabla llamada "movimientos" en un archivo de access que se ve mas o menos así.

ID Detalle de Movimiento Producto Cantidad

1         Entrada                            AX1              108

2         Salida                               AX1              28

Me gustaría elegir en el formulario el producto "AX1" y que en un textbox me arrojara el stock de dicho articulo que sería 80, y si eligiera otro me diera su stock también.

Sub CONSULTA()
Set Rs = New ADODB.Recordset
  Set Rs = New ADODB.Recordset
SQL = "SELECT SUM(Cantidad) AS Cantidad, DetalledeMovimiento FROM Movimientos GROUP BY DetalledeMovimiento"
Rs.Open SQL, Cnn, 1, 1
    Do While Rs.BOF = False And Rs.EOF = False
    TextBox8 = UCase(Rs.Fields("Cantidad"))
    Rs.MoveNext
    Loop
    Rs.Close
    Set Rs = Nothing
End Sub

He leído algo sobre una manera que es con Dsum(), pero no tengo mucha idea de como usarla o de formular la consulta correcta para este caso.

La verdad he intentado hacer algo al respecto, pero me siento perdido, intente algo pero no me funciona.

1 respuesta

Respuesta
1

Te puedo responder desde Access.

A esa tabla Movimientos que tienes añádele un campo Stock. Con esa tabla haz un formulario continuo. Y en el encabezado del formulario ponle un botón y en sus propiedades-eventos- a hacer clic, crea un procedimiento de evento y pon

Docmd. Gotorecord,, acfirst

docmd.setwarnings false

dim i as integer

for i=1 to form.recordset.recordcount

stock=Dsum("nz([cantidad])","movimientos","producto='" & me.producto & "' and [detalle de movimiento]=""entrada"" and id<=" & me.id & "")-dsum("nz([cantidad])","movimientos","producto='" & me.producto & "' and [detalle de movimiento]=""salida"" and id<=" & me.id & "")

docmd.gotorecord,,acnext

next

Me explico. Al pulsar el botón se ira al primer registro y te hará la diferencia entre entradas y salidas de ese producto de lo registros que tengan un id menor o igual que el que tiene ese registro. Una vez hecho se va al segundo registro y hace los mismo. Así hasta el final.

Para lo segundo, en el encabezado del formulario puedes poner un combinado y en su origen de la fila con el generador de consultas poner los productos. Supongamos que ese combinado se llama(propiedades-otras-nombre) Elegir. En sus propiedades-eventos-después de actualizar crea un procedimiento de evento y pon

form.recordsource="select * from movimientos where producto='" & me.elegir & "'"

Así, cuando elijas un producto, el origen de registros del formulario serán aquellos registros de la tabla movimientos cuyo producto sea igual al que has elegido en el combinado.

Parece largo, pero es sencillo.

Hola Icue González, antes que otra cosa gracias por contestar.

La verdad sé poco acerca del manejo de access y sus formularios, más bien yo estaba pensando si era posible utilizar como un sumar.si desde excel para contabilizar la información de access, eso me sería muy útil.

Reconozco que de Excel se muy poco o más bien casi nada. Lo mido es Access. Por eso te decía lo que podías hacer en Access. Lo que tu dices como sumar. Si se podría traducir como

If ...... then

TextoX= dsum(",,,.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas