Ingresar e actualizar varios registros access
Cerrado
rvean
Mensajes enviados
2
Fecha de inscripción
sábado, 3 de diciembre de 2011
Estatus
Miembro
Última intervención
domingo, 4 de diciembre de 2011
-
3 dic 2011 a las 17:56
dark_zen Mensajes enviados 152 Fecha de inscripción lunes, 6 de septiembre de 2010 Estatus Miembro Última intervención martes, 3 de enero de 2012 - 5 dic 2011 a las 16:48
dark_zen Mensajes enviados 152 Fecha de inscripción lunes, 6 de septiembre de 2010 Estatus Miembro Última intervención martes, 3 de enero de 2012 - 5 dic 2011 a las 16:48
tengo una formulario llamado facturas con un subformulario dentro llamado subform y dentro de este tengo registros de nombres y de cantidad y precio.
cree un botón con el siguiente código que actiliza la cantidad del nombre en otra tabla llamada tblproductos y también inserta nombre,cantiad y precio en otra tabla llamada
tblcompras
SQL = "UPDATE tblproductos SET tblproductos.existencia=tblproductos.existencia+" & Me.subform.form.cantidad.Value & " WHERE tblproductos.idproducto = " & Me.subform.Form.idproducto.Value & " "
DoCmd.RunSQL SQL, False
SQL1 = "INSERT INTO tblcompras(nombre,cantidad,precio) values (" & Me.subform.Form.idproducto.Value & "," & Me.subform.Form.cantidad.Value & "," & Me.subform.Form.precio.Value & ")"
DoCmd.RunSQL SQL1, False
End Sub
Mi problema es que solo el código funciona para un registro del formulario, para 2 o mas ya no se como se hace, agradecería mucho su ayuda
cree un botón con el siguiente código que actiliza la cantidad del nombre en otra tabla llamada tblproductos y también inserta nombre,cantiad y precio en otra tabla llamada
tblcompras
SQL = "UPDATE tblproductos SET tblproductos.existencia=tblproductos.existencia+" & Me.subform.form.cantidad.Value & " WHERE tblproductos.idproducto = " & Me.subform.Form.idproducto.Value & " "
DoCmd.RunSQL SQL, False
SQL1 = "INSERT INTO tblcompras(nombre,cantidad,precio) values (" & Me.subform.Form.idproducto.Value & "," & Me.subform.Form.cantidad.Value & "," & Me.subform.Form.precio.Value & ")"
DoCmd.RunSQL SQL1, False
End Sub
Mi problema es que solo el código funciona para un registro del formulario, para 2 o mas ya no se como se hace, agradecería mucho su ayuda
Consulta también:
- Actualizar formulario access vba
- Access descargar - Programas - Bases de datos
- Find vba - Guide
- Fortiguard intrusion prevention - access blocked - Foro Software
- Actualizar ps3 4.90 por usb - Guide
- Actualizar tarjeta grafica - Guide
1 respuesta
dark_zen
Mensajes enviados
152
Fecha de inscripción
lunes, 6 de septiembre de 2010
Estatus
Miembro
Última intervención
martes, 3 de enero de 2012
107
4 dic 2011 a las 14:54
4 dic 2011 a las 14:54
Con un FOR que recorra los datos de tu "subform" Nº veces y luego actualizar tu stock y registrar la compra.
bueno no as dicho que lenguaje de programacion estas trabajando y que version!
bueno no as dicho que lenguaje de programacion estas trabajando y que version!
4 dic 2011 a las 15:22
4 dic 2011 a las 23:40
nunca lo e usado pero debe de ser igual a cualkier VB...
--------------------
Hola:
¿Lo quieres hacer por código?...
Necesitas en una variable tipo recordset, para mandar la consulta o la tabla... ahora hay que "refrescar", para saber cuantos registros hay se utiliza la propiedad recordcount de la variable... miramos un ejemplo sencillo...
********************
Dim MiReg as Dao.recordset
sql = "select * from MiTabla;"
Set Mireg = Currentdb.Openrecordset(sql)
if MiReg.RecordCount > 0 then
miReg.MoveLast
MiReg.MoveFirst
for i=1 to MiReg.RecordCount
'Codigo para procesar
MiReg.MoveNext
next i
end if
*************************
El anterior es un ejemplo sencillo... de llenado de recordset con una consulta sql, pero igualla puedeshacer con una tabla...
la variobale recordset se debe "setear". Aunque en realidad se llama poblar....
Set Mireg = Currentdb.Openrecordset(sql)
Debemos preguntar SI HAY REGISTROS, OSEA SI LACANTIDAD DE REGISTROS ES MAYOR A CERO..
if MiReg.RecordCount > 0 then
miReg.MoveLast
MiReg.MoveFirst
Se debe mover al ultimo (MoveLast) y luego alprimero (MoveFirst) para que el programa "sepa" cuantos registros hay en realidad, si NO SE HACE ESTE PASO.. lapropiedad recordcount devolverá siempre 1 así hayan 100...
Recorremos TODOS LOS REGISTROS CON UN FOR... así siempre "sabra" cual es el ultimo...
for i=1 to MiReg.RecordCount
'Código para procesar
MiReg.MoveNext
next i
end if
El movenext.. es para pasar al siguiente registro... sino puede recorrer los 10 o 100 registros que hayan pero siempre parado en elprimero, entonces hay que moverlos con movenext...
FUENTE:
https://www.todoexpertos.com/categorias/tecnologia-e-internet/bases-de-datos/microsoft-access/respuestas/1481690/necesito-ayuda-con-un-boton-de-formulario-para-recorrer-una-tabla-en-microsoft-access