Método Recordset2.Move (DAO)
Aplica-se ao: Access 2013, Office 2013
Move a posição do registro atual em um objeto Conjunto de registros.
Sintaxe
expressão . Move(Rows, StartBookmark)
Expressão Uma variável que representa um objeto Recordset2 .
Parâmetros
Nome |
Necessária/opcional |
Tipo de dados |
Descrição |
---|---|---|---|
Linhas |
Obrigatório |
Long |
O número de linhas que a posição vai mover. Se a quantidade de linhas for maior que 0, a posição será movida para a frente (em direção ao final do arquivo). Se a quantidade de linhas for menor que 0, a posição será movida para trás (em direção ao início do arquivo). |
StartBookmark |
Opcional |
Variant |
Um valor que identifica um marcador. Se você especificar startbookmark, a movimentação será iniciada em relação a este marcador. Caso contrário, Move começará a partir do registro atual. |
Comentários
Se você utilizar Move para posicionar o ponteiro do registro atual antes do primeiro registro, o ponteiro do registro atual será movido para o início do arquivo. Se o Recordset não contiver nenhum registro e sua propriedade BOF for True, utilizar esse método para mover para trás causará um erro.
Se você utilizar Move para posicionar o ponteiro do registro atual depois do último registro, a posição do ponteiro do registro atual será movida para o final do arquivo. Se o Recordset não contiver nenhum registro e sua propriedade EOF for True, utilizar esse método para mover para frente causará um erro.
Se a propriedade BOF ou EOF for True e você tentar usar o método Move sem um indicador válido, ocorrerá um erro de tempo de execução.
Observação
- Quando você usa Move em um objeto Recordset tipo somente encaminhamento, o argumento rows deve ser um inteiro positivo, e os indicadores não são permitidos. Isso significa que você só poderá mover para frente.
- Para tornar o primeiro, o último, o anterior ou o próximo registro em um Recordset o registro atual, use o método MoveFirst, MoveLast, MoveNext ou MovePrevious.
- Utilizar Move com linhas iguais a 0 é um modo fácil de recuperar dados de base para o registro atual. Isso é útil se você quiser confirmar se o registro atual tem os dados mais recentes a partir das tabelas base. Isso também poderá cancelar qualquer chamada Edit ou AddNew pendente.
Exemplo
Este exemplo usa o método Move para posicionar o ponteiro do registro com base na entrada do usuário.
Sub MoveX()
Dim dbsNorthwind As Database
Dim rstSuppliers As Recordset2
Dim varBookmark As Variant
Dim strCommand As String
Dim lngMove As Long
Set dbsNorthwind = OpenDatabase("Northwind.mdb")
Set rstSuppliers = _
dbsNorthwind.OpenRecordset("SELECT CompanyName, " & _
"City, Country FROM Suppliers ORDER BY CompanyName", _
dbOpenDynaset)
With rstSuppliers
' Populate recordset.
.MoveLast
.MoveFirst
Do While True
' Display information about current record and ask
' how many records to move.
strCommand = InputBox( _
"Record " & (.AbsolutePosition + 1) & " of " & _
.RecordCount & vbCr & "Company: " & _
!CompanyName & vbCr & "Location: " & !City & _
", " & !Country & vbCr & vbCr & _
"Enter number of records to Move " & _
"(positive or negative).")
If strCommand = "" Then Exit Do
' Store bookmark in case the Move doesn't work.
varBookmark = .Bookmark
' Move method requires parameter of data type Long.
lngMove = CLng(strCommand)
.Move lngMove
' Trap for BOF or EOF.
If .BOF Then
MsgBox "Too far backward! " & _
"Returning to current record."
.Bookmark = varBookmark
End If
If .EOF Then
MsgBox "Too far forward! " & _
"Returning to current record."
.Bookmark = varBookmark
End If
Loop
.Close
End With
dbsNorthwind.Close
End Sub