Compartilhar via


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