Copiar contenido de un campo anterior con VBA
Estoy aprendiendo VBA Access porque creo que me puede ser util para el trabajo y podré automatizar algunas tareas de mi base de datos, pero aún tengo conocimientos muy básicos. El caso es que me he encontrado con una tarea susceptible de aplicación, he tratado de usar VBA pero no funciona. Probablemente lo que he hecho sea una barbaridad de novato, pero si alguien me puede decir porque no funciona y como sería correcto le estaría agradecido. Paso a describir el problema y el código:
Lo que pretendo es que en aquellos registros de una tabla donde el campo 'serie' sea nulo, se copie el valor del campo 'numero_procedimiento' del registro anterior y se actualize ese campo 'numero_procedimiento' del registro actual (donde se había encontrado el nulo). Y esto con todos los registros de la tabla.
Para ello lo que intento es conectar a la base actual (eso funciona con ayuda de una respuesta anterior), hacer un bucle para que recorra todos los registros, un if para buscar nulos y las instrucciones (métodos) a ejecutar sobre el recordset (aquí debe ser una barbaridad lo que hago a base de adaptar códigos que he visto). El código es:
Sub actualiza_nulo()
Dim miconexion As New ADODB.Connection
Set miconexion = CurrentProject.Connection
Dim instruccion_sql As String
instruccion_sql = "SELECT * FROM procedimientos"
Dim mirecordset As New ADODB.Recordset
mirecordset.Open instruccion_sql, miconexion
Dim mirecordsetclone As Integer
Do Until mirecordset.EOF
If IsNull(mirecordset!serie) Then
mirecordset.MoveLast
mirecordsetclone = mirecordset!numero_procedimiento
mirecordset.MoveNext
mirecordset!numero_procedimiento = mirecordsetclone
End If
mirecordset.MoveNext
Loop
mirecordset.Close
Set mirecordset = Nothing
miconexion.Close
Set miconexion = Nothing
End Sub
Y error que me sale en la ventana emergente es:
Se ha producido el error '3251' en tiempo de ejecución. El recordset actual no admite actualizaciones. Puede ser una limitación del proveedor o del tipo de bloqueo seleccionado.