Como hacer un ciclo for en Access

Hasta ahora es el primer ciclo en access que hago, estoy trayendo los datos de una consulta, y lo que necesito es que me recorra todos los registros de la consulta mostrándome un mensaje con el id del registro, he hecho este código pero me falla ya que el id que esta recorriendo no es igual al i que esta pasando

Private Sub Comando29_Click()

For i = 1 To DCount("[IdParqueadero]", "[ContratosActivos]") Step 1
MsgBox DLookup("[IdParqueadero]", "[ContratosActivos]", "IdParqueadero=" & i)
Next i

End Sub

Por fa ayuda, necesito el Id que esta recorriendo para hacer mas cálculos.

1 Respuesta

Respuesta
2

Esa no es la manera más adecuado de hacerlo, por varios motivos:

1º/ Si IdParqueadero no es un campo autonumérico que empiece en 1, no te va a funcionar en todos los casos.

2º/ Si IdParqueadero tiene algún salto (porque borraste algun registro, por ejemplo), tampoco te devolverá todos los registros correctamente.

Sería mejor que usases recordsets:

Private Sub Comando29_Click()

Dim rst as DAO.Recordset

Dim i As Integer

Set rst=CurrentDb.OpenRecordset("ContratosActivos")

If rst.RecordCount=0 Then Exit Sub

rst.moveLast

rst.moveFirst

For i = 1 To rst.RecordCount

msgbox rst("IdParqueadero")

rst.moveNext

Next i

rst.close

set rst=nothing

End Sub

O de otra forma:

Private Sub Comando29_Click()

Dim rst as DAO.Recordset

Set rst=CurrentDb.OpenRecordset("ContratosActivos")

If rst.RecordCount=0 Then Exit Sub

rst.moveFirst

Do Until rst.EOF

msgbox rst("IdParqueadero")

rst.moveNext

Loop

rst.close

set rst=nothing

End Sub

Muchas gracias por tu ayuda, me ha sido muy útil y perdona que te pregunte, pero en donde busco como funciona y como se diseña un recordset

Pues en la propia ayuda de Access o en google

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas