Se puede que un access cada vez que lea un código de barra lo busque en la tabla y sume 1 stock

Gracias por entrar tengo un negocio y necesito cargar el stock en una base de access y como tengo lector de código de barra necesito cada vez que lea un código de barras el access lo busque y si esta cargado le sume 1 al stock y que si no me abra para poder ingresar ese código con la descripción y otros datos mas

1 Respuesta

Respuesta
1

En el evento LostFocus() del textbox que caputa el código de barra agrega el siguiente codigo:

valorBuscado = DLookup("[nombre]", "meses", "ID = '" & Me.Text2.Value & "'")
If IsNull(valorBuscado) Or IsEmpty(valorBuscado) Then
MsgBox "No encontrado"
Else
DoCmd.RunSQL "update existencias set cantidad = cantidad+1 where id = '" & Me.Text2.Value & "'"
End If

En la linea de DLookup cambia el valor meses por el nombre de tu tabla en el valor nombre cambialo por el nombre de tu campo

hola gracias por molestarte en darme tu ayuda hice lo que me pediste y algunas pruebas mas y aprendí el funcionamiento de DLookup mi consulta ahora es como se escribe para sumarle el valor 1 al stock

desde ya muchas gracias

Si el resultado del DLookUp es positivo entonces colocas el siguiente código:

DoCmd.RunSQL "update existencias set cantidad = cantidad+1 where id = '" & Me.Text2.Value & "'"

Con este este código se actualiza tu tabla de existencias en mas 1

hola gracias por tu ayuda hice lo que me pediste y me tiro error de que no encontraba existencia entonces lo cambie por producto que es el nombre de mi tabla y ahí me salio pidiendo cantidad y luego me sale que no se puede actualizar que cantidad no es un campo actualizable , lo que yo quiero en realidad que no me pida una cantidad que al campo stock1 del campo código que yo lea le sume 1 si el código es 100 y el stock tiene 10 le sume 1 y lo guarde

desde ya muchas gracias

El código DoCmd. RunSQL... es exactamente lo que hace, si no se actualiza tu tabla es por que alguna propiedad esta solo de lectura puede estar tu form, o la tabla estaba abierta en modo exclusivo o la tabla estaba en modo edición, revisa esos puntos por que el código hace eso mismo que tu me pediste, si no logras hacer que funcione te pondré un link aquí para que bajes una base de datos ejemplo que desarrolle.

hola tenias razón al final quedo así:

valorbuscado = DLookup("[id]", "PRODUCTO", "código = '" & Me.Texto0.Value & "'")
If IsNull(valorbuscado) Or IsEmpty(valorbuscado) Then
MsgBox "No encontrado"

Else
DoCmd.RunSQL "update PRODUCTO set stock1 = stock1+1 where id = " & valorbuscado & ""

End If

Me.Texto0.Value = ""

ahora funciona pero me sigue apareciendo un cartel que dice así

va a actualizar una fila

si apretá que si no va a poder apretar el botón deshacer

eso no se puede evitar

que lo haga y listo tengo mas de 1000 artículos de los cuales tengo varios así mínimo unos 100000 productos y necesito saber el stock correcto

desde ya con esto ya me re ayudaste muchas gracias

Ese es un mensaje predeterminado de access pero con el código "DoCmd.SetWarnings False" lo podes eliminar, el código deber quedarte asi:

Private Sub Command0_Click()

DoCmd. SetWarnings False 'con este código desactivas las alertas de access

Tu código de programación

DoCmd. SetWarnings true </strong>'con este código Reactivas las alertas de access

End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas