Conflicto con Recordset
Tengo una duda sobre la forma en que Access ejecuta un código que contiene un recordset.
El tema es el siguiente: tengo un código que está formado por dos acciones y la primera de ellas es un recordset. La segunda acción tiene que esperar que el recordset termine para ejecutarse.
Yo pensaba que el escribir el código de forma
Private Sub Comando1_Click()
Primera Acción (Código de Recordset)
Segunda Acción (Depende de Primera)
End Sub
Ejecutaba el código de la primera acción y cuando llegaba a la línea de la segunda acción ya había terminado con todo lo anterior. Pero me di cuenta que no, que lo que hace es empezar a ejecutar el recordset y mientras lo ejecuta pasa a la segunda acción, lo cual me genera un inconveniente.
Un ejemplo simple de lo que me pasa (para tratar de aclarar algo) es:
- En un formulario que depende de la Tabla1 (que contiene una campo llamado CampoX) creo un botón que ejecute el siguiente código al hacer click
Private Sub Comando1_Click() Me.Refresh 'Para guardar cualquier cambio realizado sobre el formulario abierto
Dim dbs As Database
Dim rst As Recordset
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("Tabla1")
rst.MoveFirst
rst.Edit
rst!CampoX = "3"
rst.Update
rst.Close
dbs.Close
Me.CampoX = "2"
End Sub
Como podrán ver (si lo hacen) aparece un mensaje de error.
¿Alguien puede explicarme como es que funciona y como puedo solucionarlo?
El tema es el siguiente: tengo un código que está formado por dos acciones y la primera de ellas es un recordset. La segunda acción tiene que esperar que el recordset termine para ejecutarse.
Yo pensaba que el escribir el código de forma
Private Sub Comando1_Click()
Primera Acción (Código de Recordset)
Segunda Acción (Depende de Primera)
End Sub
Ejecutaba el código de la primera acción y cuando llegaba a la línea de la segunda acción ya había terminado con todo lo anterior. Pero me di cuenta que no, que lo que hace es empezar a ejecutar el recordset y mientras lo ejecuta pasa a la segunda acción, lo cual me genera un inconveniente.
Un ejemplo simple de lo que me pasa (para tratar de aclarar algo) es:
- En un formulario que depende de la Tabla1 (que contiene una campo llamado CampoX) creo un botón que ejecute el siguiente código al hacer click
Private Sub Comando1_Click() Me.Refresh 'Para guardar cualquier cambio realizado sobre el formulario abierto
Dim dbs As Database
Dim rst As Recordset
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("Tabla1")
rst.MoveFirst
rst.Edit
rst!CampoX = "3"
rst.Update
rst.Close
dbs.Close
Me.CampoX = "2"
End Sub
Como podrán ver (si lo hacen) aparece un mensaje de error.
¿Alguien puede explicarme como es que funciona y como puedo solucionarlo?
1 respuesta
Respuesta de asturcon3
1