DAO RecordCount

RecordCount to właściwość obiektu DAO.Recordset wyznaczająca liczbę rekordów.

kliknij, aby powiększyć

W przypadku tej właściwości ważny jest jednak parametr Type przy otwieraniu zestawu rekordów. Tylko dla wartości 1 czyli dbOpenTable wystarczy zapis:
IleRekordow=RST.RecordCount 
W pozostałych przypadkach konieczne jest przejście do ostatniego rekordu i dopiero wówczas odczyt właściwości RecordCount.

Przykładowy kod:

Public Sub IleRekordow()
Dim RST As DAO.Recordset
Dim IleRek As Long
Set RST = CurrentDb.OpenRecordset(„KwerendaSpisKsiazek”)
If Not (RST.EOF And RST.BOF) Then
   RST.MoveLast
   IleRek = RST.RecordCount
Else
   IleRek = 0
End If
'(…)
RST.Close
Set RST = Nothing
End Sub

Oczywiście, liczbę rekordów z danej tabeli czy kwerendy można też wyznaczyć  za pomocą funkcji DCount, ale czasem, szczególnie przy bardzo dużych bazach danych, lepiej zrobić to za pomocą tej właściwości.


kawa dla marzateli

A tu możesz mi postawić kawę: 

buycoffee.to/marzatela

DAO Recordset

Recordset to właściwość DAO związana z zestawem rekordów.  

kliknij, aby powiększyć

Jest to jedna z najważniejszych obiektów do obsługi bazy danych z poziomu kodu VBA. 

Ma też swoje właściwości i metody:

WŁAŚCIWOŚCI

METODY

    • Close
      zamykanie zestawu rekordów

– sukcesywnie będą się tu pojawiać linki do wpisów poświęconych najczęściej stosowanym


kawa dla marzateli

A tu możesz mi postawić kawę: 

buycoffee.to/marzatela

Formularz dzielony

Formularz dzielony to formularz, w którym na jednym ekranie widoczny są  2, oparte o to samo źródło danych  formularze: formularz ciągły oraz formularz pojedynczy. W obydwu częściach formularza dzielonego aktywny jest ten sam rekord. 

kliknij, aby powiększyć

Aktywując konkretny rekord w arkuszu danych, jednocześnie zmienia się widok w części formularza pojedynczego.  

Formularz dzielony tworzymy ustawiając Widok domyślny w karcie Format w arkuszu właściwości

kliknij, aby powiększyć

Położenie arkusza danych w formularzu można ustawić również w karcie Format w arkuszu właściwości:

kliknij, aby powiększyć

Wszystkie inne właściwości formularza są takie same jak w innych formularzach. 
Najczęściej jest wykorzystywany w ten sposób, że w części formularza pojedynczego występują dodatkowe pola oparte o różne wyrażenia. Bywa przydatny. 


 

 

 

Właściwość Recordset.EOF

EOF to własciwość obiektu Recordset określająca koniec zestawu rekordów. 

kliknij, aby powiększyć

Jeżeli bieżąca pozycja kursora jest za ostatnim rekordem zestawu lub Recordset nie zawiera żadnych rekordów, właściwość EOF zwraca wartość True
W pozostałych przypadkach, EOF przyjmuje wartość False.

Właściwość EOF jest wykorzystywana najczęściej do sprawdzenia, czy możliwe jest przejście do następnego rekordu. 
Np.

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

If Not .EOF Then .MoveNext

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

W tym przykładzie przejście do kolejnego rekordu następuje tylko wtedy, gdy właściwość EOF ma wartość False


A tu możesz mi postawić kawę: 

buycoffee.to/marzatela

Właściwość Recordset.BOF

BOF to własciwość obiektu Recordset określająca początek zestawu rekordów. 

kliknij, aby powiększyć

Jeżeli bieżąca pozycja kursora jest przed pierwszym rekordem właściwość BOF zwraca wartość True
W pozostałych przypadkach, również w przypadku, gdy Recordset nie zawiera żadnych rekordów, BOF przyjmuje wartość False.

Właściwość BOF jest wykorzystywana najczęściej do sprawdzenia, czy Recordset ma rekordy. 
Np.

Private Sub PolecenieOtwórz()
Dim RST As ADODB.Recordset
Set RST = New ADODB.Recordset
RST.Open „TabelaKsiazki”, CurrentProject.Connection, adOpenDynamic, adLockOptimistic
With RST
  If .BOF Then
     ’ (…)
  End If
.Close
End With
Set RST = Nothing
DoCmd.Close
End Sub

W tym przykładzie wejście do przechodzenia przez poszczególne rekordy następuje tylko wtedy, gdy właściwość BOF ma wartość True


A tu możesz mi postawić kawę: 

buycoffee.to/marzatela

Obiekt VBA Recordset

Obiekt VBA Recordset to obiekt, który moim zdaniem jest niezbędny do tworzenia aplikacji Access. Pozwala on na przegląd, edycję, dodawanie i usuwanie danych i to z pełną kontrolą treści. Standardem jest dla mnie m.in. dodawanie nowych rekordów tylko przez procedury wykorzystującą właśnie zestaw RecordSet. Pozwala to na sprawdzenie, czy wprowadzone dane są prawidłowe, ewentualną korektę  i dopiero później ich zapisanie. Unikam w ten sposób różnych rekordów „śmieciowych”. 

Na ogół korzystam z modelu ADO, znacznie rzadziej z DAO. Konieczne są tu referencje w edytorze VBA (Tools –> References…):

kliknij, aby powiększyć

W moim Accessie 2019 jest to:

kliknij, aby powiększyć

W innych wersjach może być to inny numer biblioteki, ale sama referencja jest wymagana. 

kklikniji, aby powiększyć

Obiekt Adodb.Recordset ma swoje właściwości i metody. 

WŁAŚCIWOŚCI

    • BOF
      pierwszy rekord zestawu rekordów
    • EOF
      ostatni rekord zestawu rekordów

METODY

    • AddNew
      dodawanie rekordów
    • Close
      zamykanie zestawu rekordów
    • MoveFirst
      Przejście do pierwszego rekordu 
    • MoveLast
      Przejście do ostatniego rekordu
    • MoveNext
      Przejście do następnego rekordu
    • MovePrevious
      Przejście do następnego rekordu
    • Open
      otwieranie zestawu rekordów
    • Update
      zapisanie rekordu

 

Sukcesywnie będą się tu pojawiać linki do notek im poświęconym. 


A tu możesz mi postawić kawę: 

buycoffee.to/marzatela