Zdarzenie formularza: przy załadowaniu

Przy załadowaniu to jedno ze zdarzeń uruchamiających się automatycznie po załadowaniu danych w formularzu. Dostępne jest w arkuszu właściwości formularza oraz w module VBA formularza. 
Zdarzenie to działa jako drugie po zdarzeniu otwarcia formularza. 

W edytorze VBA jest to procedura o nazwie Form_Load.

Procedura Przy załadowaniu(OnLoad) jest podobna do procedury Przy otwarciu (OnOpen), ale następuje po całkowitym załadowaniu formularza i jego elementów. Wykorzystuje się ją do inicjalizacji danych, ustawiania wartości domyślnych czy dynamicznego formatowania elementów formularza.

Linki do innych zdarzeń formularza:

Najczęściej używane zdarzenia formularza


A tu możesz mi postawić kawę: 

buycoffee.to/marzatela

Odświeżanie rekordu

Do odświeżania rekordów w bazie danych służy metoda obiektu docmd RefreshRecord
Metoda ta ma szczególne znaczenie w przypadku edycji danych za pomocą formularza, w którym jednocześnie mogą pracować inni użytkownicy albo w wyniku makr/procedur VBA. Powoduje ona zapisanie rekordu i odświeżenie danych w formularzu.

W praktycznym zastosowaniu – wykorzystuję je najczęściej w formularzach ciągłych. Szczególnie wtedy, gdy w ramach jednego rekordu np. w jednym polu zmieniam dane bezpośrednio, a w innej kolumnie tego samego rekordu za pomocą procedury VBA. Wówczas na ekranie pojawia się komunikat o konflikcie zapisu.

kliknij, aby powiększyć

Jeżeli jednak do pól formularza dodamy zdarzenie po aktualizacji:

Private Sub NazwaPola_AfterUpdate()
DoCmd.RefreshRecord
End Sub

wówczas konflikt się nie pojawi.
W ten sposób zabezpieczymy się również przed takim konfliktem, gdy zmiany wprowadzi jednocześnie inny użytkownik.

Polecam do praktycznego wykorzystania.


 

Egzamin Specjalista MS Access

Zamykanie obiektu

Do zamykania obiektów (np.formularzy,  raportów) w VBA służy metoda docmd Close.

kliknij, aby powiększyć

Metoda Docmd.Close ma 3 argumenty:

      • ObjectType – typ zamykanego obiektu
      • ObjectName – nazwa zamykanego obiektu
      • Save – zapis zmian

Wszystkie te argumenty są opcjonalne. Jeżeli pierwszy i drugi argument zostaną opuszczone, domyślnym obiektem jest ten, który jest aktywny.  Trzeci argument jest związany z zapisem zmian w zamykanym obiekcie – wartość domyślna to acSavePrompt czyli monit.

W swoich projektach często stosuję tę metodę, również do poruszania się między formularzami. Jeżeli chcę np. po naciśnięciu przycisku polecenia zamknąć formularz i otowrzyć inny – robię to najczęściej tak:

Private Sub PolecenieDoSpisu_Click()
DoCmd.Close
'(…)
End Sub

Jeżeli w kolejnym kroku ma zostać otwarty inny formularz – najpierw zamykamy ten aktywny, a w kolejnych liniach kodu dopiero otwieramy nowy.
Jeżeli ten nowy formularz ma być otwarty z parametrem, którego źródłem jest jakieś pole z zamykanego formularza – konieczne jest przypisanie tej wartości do zmiennej w procedurze  jeszcze przed zamknięciem formularza.
Np.

Private Sub PolecenieDoSpisu_Click()
Dim JParam
JParam=Me.PoleP
DoCmd.Close
DoCmd.OpenForm „SpisKsiazek”, , , , , , JParam
'(…)
End Sub

 


Kurs Access 2013 od podstaw

 

Kwerenda aktualizująca w widoku SQL

Kwerenda aktualizująca  w kodzie SQL zaczyna się zawsze od słów UPDATE …. SET
Pełen kod SQL takiej kwerendy można podejrzeć w widoku SQL projektu kwerendy:

kliknij, aby powiększyć
UPDATE TabelaKsiazki SET TabelaKsiazki.Cena = 0.9*[CENA];

Cała procedura uruchamiająca taką kwerendę dołączającą:

Public Sub MojaProcedura()
Dim Kwera As String
Kwera = „UPDATE TabelaKsiazki SET ” & _
„TabelaKsiazki.Cena = 0.9*[CENA];”

DoCmd.SetWarnings False
DoCmd.RunSQL Kwera
DoCmd.SetWarnings True
End Sub

We wpisie na blogu  może to różnie wyglądać, ale na wszelki wypadek zwracam uwagę na łamanie linii w zapisie kodu SQL w edytorze VBA – jest to ciąg tekstowy, więc koniec linii musi być zakończony znakami & _  (w środku jest spacja).


Kurs SQL w analizie danych - zaawansowane techniki

 

Kwerenda dołączająca w widoku SQL

Kwerenda dołączająca w kodzie SQL zaczyna się zawsze od słów INSERT INTO ….
Pełen kod SQL takiej kwerendy można podejrzeć w widoku SQL projektu kwerendy:

kliknij, aby powiększyć

Wygląda to np. tak:

INSERT INTO TabelaArchiwum ( NumerKatalogowy, Autor, Tytul, Cena, Dzial, Bestseller, DataArchiwizacji )
SELECT TabelaKsiazki.NumerKatalogowy, TabelaKsiazki.Autor, TabelaKsiazki.Tytul, TabelaKsiazki.Cena, TabelaKsiazki.Dzial, TabelaKsiazki.Bestseller, Date() AS DataArchiwum
FROM TabelaKsiazki;

Cała procedura uruchamiająca taką kwerendę dołączającą:

Public Sub MojaProcedura()
Dim Kwera As String
Kwera = „INSERT INTO TabelaArchiwum ( NumerKatalogowy,  ” & _
„Autor, Tytul, Cena, Dzial, Bestseller, DataArchiwizacji )  ” & _
„SELECT TabelaKsiazki.NumerKatalogowy, TabelaKsiazki.Autor,  ” & _ „TabelaKsiazki.Tytul, TabelaKsiazki.Cena, ” & _
„TabelaKsiazki.Dzial, TabelaKsiazki.Bestseller, Date() AS DataArchiwum ” & _
„FROM TabelaKsiazki;”
DoCmd.SetWarnings False
DoCmd.RunSQL Kwera
DoCmd.SetWarnings True
End Sub

We wpisie na blogu  może to różnie wyglądać, ale na wszelki wypadek zwracam uwagę na łamanie linii w zapisie kodu SQL w edytorze VBA – jest to ciąg tekstowy, więc koniec linii musi być zakończony znakami & _  (w środku jest spacja).


Kurs SQL w analizie danych - zaawansowane techniki