DAO RecordSet MoveLast

MoveLast to metoda obiektu DAO.Recordset powodująca przejście do ostatniego rekordu w zestawie. 

kliknij, aby powiększyć

Jeżeli zestaw rekordów RecordSet jest pusty – wykonanie tej linii kodu wywoła błąd Brak bieżącego rekordu.  Szczegóły błędu:
Błąd wykonania 3021

Chcąc się zabezpieczyć przed takim przypadkiem – najczęściej stosuję kod sprawdzający, czy właściwości EOF (koniec zestawu rekordów) oraz BOF (początek zestawu rekordów) nie są jednocześnie spełnione.  

(…)
If Not (RST.EOF AND RST.BOF)  Then RST.MoveLast
(…)

 


Obiekt DAO Recordset2

Obiekt DAO.Recordset2 to ulepszony obiekt DAO Recordset. Zapewnia tę samą funkcjonalność, ale dodatkowo obsługuje zaawansowane typy danych, takie jak pola wielowartościowe (Multi-Value Fields) oraz załączniki (Attachments).

kliknij, aby powiększyć

Jego właściwości i metody są w zasadzie takie same, jak obiektu DAO.Recordset, ale pozwala na zastosowanie także pola Fields2


kawa dla marzateli

A tu możesz mi postawić kawę: 

buycoffee.to/marzatela

 

DAO Database

Database to właściwość DAO odwołująca się do bazy danych. 

kliknij, aby powiększyć

Za pomocą ten właściwości można w prosty sposób pobierać/dodawać/edytować zestawy rekordów z dowolnej bazy danych. 
Np.

Public Sub Bazy_Danych()
Dim MojaBaza1 As DAo.Database
Dim MojaBaza2 As DAo.Database
’przypisanie zmiennej do bieżącej bazy danych
Set MojaBaza1 = CurrentDb
’przypisanie zmiennej do innej bazy danych
Set MojaBaza2 = OpenDatabase(„C:\BazaZapas.accdb”)
'(…)
End Sub

CuurentDb to zmienna obiektowa typu Database , która reprezentuje bazę danych aktualnie otwartą w oknie programu Microsoft Access.

Najczęściej wykorzystywaną metodą DAO.Database jest OpenRecordset:
Tworzenie zestawu rekordów DAO


kawa dla marzateli

A tu możesz mi postawić kawę: 

buycoffee.to/marzatela

Metoda Recordset.MovePrevious

MovePrevious to metoda obiektu Recordset powodująca przejście do poprzedniego rekordu. 

kliknij, aby powiększyć

Działa identycznie jak przejście do następnego rekordu, ale w przeciwnym kierunku. 

Może być przydatna, choć jakoś nie pamiętam, abym kiedyś ją używała. 


A tu możesz mi postawić kawę: 

buycoffee.to/marzatela

Metoda Recordset.MoveNext

MoveNext to metoda obiektu Recordset powodująca przejście do następnego rekordu. 

kliknij, aby powiększyć

Metoda ta jest wykorzystywana do przechodzenia do kolejnych rekordów, najczęściej w pętli.  
Np.

Private Sub PrzejdzDoNastepnego()
Dim RST As ADODB.Recordset
Set RST = New ADODB.Recordset
If Not .EOF Then .MoveFirst
While Not .EOF
'(…)
If Not .EOF Then .MoveNext
Wend
.Close
End With
Set RST = Nothing
End Sub

Po dojściu do ostatniego rekordu Recordset, metoda MoveNext nie wywoła błędu, ale już próba odczytu kolejnych pól po takim przejściu wywoła błąd 3021


A tu możesz mi postawić kawę: 

buycoffee.to/marzatela

Metoda Recordset.MoveLast

MoveLast to metoda obiektu Recordset powodująca przejście do ostatniego rekordu. 

kliknij, aby powiększyć

Działa identycznie jak przejście do pierwszego rekordu.

Może być przydatna, choć jakoś nie pamiętam, abym kiedyś ją używała. 


A tu możesz mi postawić kawę: 

buycoffee.to/marzatela

Metoda Recordset.MoveFirst

MoveFirst to metoda obiektu Recordset powodująca przejście do pierwszego rekordu. 

kliknij, aby powiększyć

Metoda ta jest wykorzystywana najczęściej po otwarciu zestawu Recordset. Jeżeli ma on rekordy (czyli właściwość Eof ma wartość False) – przechodzimy do pierwszego rekordu, chcąc mieć pewność, że żaden rekord nie zostanie pominięty.  
Np.

Private Sub PrzejdzDoPierwszego()
Dim RST As ADODB.Recordset
Set RST = New ADODB.Recordset
RST.Open „TabelaKsiazki”, CurrentProject.Connection, adOpenDynamic, adLockOptimistic
With RST
If Not .EOF Then .MoveFirst

’ (…)

.Close
End With
Set RST = Nothing
DoCmd.Close
End Sub

 


A tu możesz mi postawić kawę: 

buycoffee.to/marzatela