Editar varios registros en access

Tengo el siguiente código:

Private Sub editar_Click()
Dim rst As dao.Recordset
Dim i As Byte
Set rs = CurrentDb.OpenRecordset("SELECT CLAVE FROM LIBRETA WHERE NOOFICIO=" & Me.No1 & " AND AÑOOF=" & Me.AÑOOF & "")
For i = 1 To 25
   Do While Not rs.EOF
   rs.Edit
   rs("CLAVE") = Me.Controls("P" & i)
   rs.Update
   rs.MoveNext
   Loop
   Next i
   rs.Close
MsgBox "DATOS  EN EL OFICIO", vbInformation, "GUARDADO"
End Sub

mi formularios esta integrado por un numero de oficio (NoOficio), año (AÑOOF), y  25 cuadros de texto que se llaman p1, p2, p3, p4,.., p25

El numero de oficio puede tener de uno a 25 claves

Lo que quiero es editar las claves que tiene mi oficio

Sin embargo, con ese código solo me reconoce el primer p1, y todas las claves del oficio agarran el valor de p1

¿Qué esta mal del código?

Ayuda

1 respuesta

Respuesta
2

Si pones el Do Loop dentro del For Next, te recorrerá todos los registros del recordset dándole a todos los campos el valor de P(i) en cada valor de i...

Para mi te sobra el bucle Do, o bien tienes que poner el For dentro del Do

Buenas tardes

muchas gracias por la ayuda ya lo intente con ambos métodos y me da error 3021

no hay ningún registro activo

sin embargo a pesar del error actualiza los datos

como puedo quitar este error

Ya le encontré como quitar el error

Do While Not rs.EOF
     For i = 1 To 25
        If Not rs.EOF Then
            rs.Edit
            rs("CLAVE") = Me.Controls("P" & i)
            rs.Update
            rs.MoveNext
        Else
            Exit Do
        End If
    Next i

muchas gracias por la ayuda

De nada. Es bueno ver que lograste solucionarlo solo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas