BUCLE INFINITO
Publicado por RICARDO ALONSO (14 intervenciones) el 17/10/2015 04:14:20
buenas noches...
En el proyecto tengo una secuencia de código para que me actualice la tabla de inventario y descuente los artículos que aparecen en un subformulario.
cuando corro el código se forma un bucle infinito y solo descarga el primer registro.
Como puedo lograr que tome cada uno de los registros del subformulario y ejecute el código?
el código es el siguiente
Private Sub CIERRA_FACTURA_Click()
Dim mySQL As String 'Definimos una variable para introducir en ella la secuencia SQL
Dim mySQL1 As String 'Definimos una variable para introducir en ella la secuencia SQL
Dim mySQL2 As String 'Definimos una variable para introducir en ella la secuencia SQL
Dim mySQL3 As String 'Definimos una variable para introducir en ella la secuencia SQL
mySQL3 = "UPDATE Inventario SET Cantidad = Cantidad - " & Me.Subformulario_FACTURACION.Form.CANTIDAD & " WHERE CODIGO =
'" & Me.Subformulario_FACTURACION.Form.ARTICULO & "'"
mySQL1 = "UPDATE CONS_FACT SET USADA = TRUE WHERE NO_RECIBO = " & Me.PrimeroDeNO_RECIBO & " "
mySQL = "UPDATE CAJA SET ENTRADAS = ENTRADAS + " & Me.subtotal & " "
mySQL2 = "UPDATE CAJA_CAJON SET ENTRADAS = ENTRADAS + " & Me.subtotal & " "
ACA ES DONDE TENGO EL PORBLEMA
Do
DoCmd.SetWarnings False 'Desactivamos los mensajes de Access de que se va a actualizar una tabla, etc.
DoCmd.RunSQL mySQL3 'Ejecutamos la consulta
DoCmd.SetWarnings True 'Volvemos a activar los mensajes
MsgBox " EL REGISTRO HA SIDO GRABADO"
Loop Until Me.Subformulario_FACTURACION.Form.ARTICULO = Null
DoCmd.SetWarnings False 'Desactivamos los mensajes de Access de que se va a actualizar una tabla, etc.
DoCmd.RunSQL mySQL 'Ejecutamos la consulta
DoCmd.RunSQL mySQL1 'Ejecutamos la consulta
DoCmd.RunSQL mySQL2 'Ejecutamos la consulta
DoCmd.SetWarnings True 'Volvemos a activar los mensajes
MsgBox " FACTURA CERRADA"
Me.Subformulario_FACTURACION.Visible = False
Me.CIERRA_FACTURA.Visible = False
Algo no estoy haciendo bien con algo pero no se que es..
De antemano agradezco su Atención y ayuda..
En el proyecto tengo una secuencia de código para que me actualice la tabla de inventario y descuente los artículos que aparecen en un subformulario.
cuando corro el código se forma un bucle infinito y solo descarga el primer registro.
Como puedo lograr que tome cada uno de los registros del subformulario y ejecute el código?
el código es el siguiente
Private Sub CIERRA_FACTURA_Click()
Dim mySQL As String 'Definimos una variable para introducir en ella la secuencia SQL
Dim mySQL1 As String 'Definimos una variable para introducir en ella la secuencia SQL
Dim mySQL2 As String 'Definimos una variable para introducir en ella la secuencia SQL
Dim mySQL3 As String 'Definimos una variable para introducir en ella la secuencia SQL
mySQL3 = "UPDATE Inventario SET Cantidad = Cantidad - " & Me.Subformulario_FACTURACION.Form.CANTIDAD & " WHERE CODIGO =
'" & Me.Subformulario_FACTURACION.Form.ARTICULO & "'"
mySQL1 = "UPDATE CONS_FACT SET USADA = TRUE WHERE NO_RECIBO = " & Me.PrimeroDeNO_RECIBO & " "
mySQL = "UPDATE CAJA SET ENTRADAS = ENTRADAS + " & Me.subtotal & " "
mySQL2 = "UPDATE CAJA_CAJON SET ENTRADAS = ENTRADAS + " & Me.subtotal & " "
ACA ES DONDE TENGO EL PORBLEMA
Do
DoCmd.SetWarnings False 'Desactivamos los mensajes de Access de que se va a actualizar una tabla, etc.
DoCmd.RunSQL mySQL3 'Ejecutamos la consulta
DoCmd.SetWarnings True 'Volvemos a activar los mensajes
MsgBox " EL REGISTRO HA SIDO GRABADO"
Loop Until Me.Subformulario_FACTURACION.Form.ARTICULO = Null
DoCmd.SetWarnings False 'Desactivamos los mensajes de Access de que se va a actualizar una tabla, etc.
DoCmd.RunSQL mySQL 'Ejecutamos la consulta
DoCmd.RunSQL mySQL1 'Ejecutamos la consulta
DoCmd.RunSQL mySQL2 'Ejecutamos la consulta
DoCmd.SetWarnings True 'Volvemos a activar los mensajes
MsgBox " FACTURA CERRADA"
Me.Subformulario_FACTURACION.Visible = False
Me.CIERRA_FACTURA.Visible = False
Algo no estoy haciendo bien con algo pero no se que es..
De antemano agradezco su Atención y ayuda..
Valora esta pregunta


0