Strony www BydgoszczProjektowanie stron internetowych w Bydgoszczy.

Accessmaster podstawy - Cała ta reszta

Cała ta reszta? A co to jest i po co to komu??

Makra

 Makro jest akcją lub zestawem akcji, z których każda wykonuje określoną operację, taką jak otwarcie formularza lub wydrukowanie raportu. Makra pomagają zautomatyzować często wykonywane zadania. Można na przykład uruchamiać makro drukujące raport, gdy użytkownik klika przycisk polecenia.

 

Moduły i Visual Basic for Applications

Moduł jest zbiorem deklaracji i procedur języka Visual Basic for Applications przechowywanych razem jako jedna całość.
Istnieją dwa podstawowe typy modułów: moduły klasy i moduły standardowe. Każda procedura w module może być procedurą typu Function lub procedurą typu Sub.

Moduły klasy

Moduły formularzy i moduły raportów są modułami klasy związanymi z określonym formularzem lub raportem. Moduły formularza i raportu często zawierają procedury zdarzeń, które są uruchamiane w odpowiedzi na zdarzenie formularza lub raportu. Procedur zdarzeń można używać do sterowania działaniem formularzy i raportów oraz ich odpowiedziami na akcje użytkownika, takie jak np. kliknięcie przycisku polecenia.

Moduły standardowe

Moduły standardowe zawierają ogólne procedury, które nie są związane z żadnym innym obiektem, oraz często używane procedury, które można uruchamiać z dowolnego miejsca w bazie danych

Procedura jest jednostką kodu języka Visual Basic for Applications. Procedura zawiera szereg instrukcji i metod, które wykonują określone operacje lub służą do obliczania wartości. Na przykład następująca procedura zdarzenia używa metody OpenForm do otwarcia formularza "Zamowienia":

 

Private Sub OpenOrders_Click(
DoCmd.OpenForm "Zamowienia
End Sub

 

Istnieją dwa rodzaje procedur:

1. Procedury typu Sub wykonują operację lub serię operacji, lecz nie zwracają żadnej wartości. Można tworzyć własne procedury Sub lub wykorzystywać szablony procedur zdarzeń zdefiniowane w programie Microsoft Access.

Każdy formularz i raport w bazie danych posiada wbudowany moduł formularza lub moduł raportu, który zawiera szablony procedur. Można dodać kod uruchamiany w odpowiedzi na zdarzenia występujące w formularzu, raporcie lub formantach formularza czy raportu. Kiedy program Microsoft Access rozpoznaje wystąpienie zdarzenia w formularzu, raporcie lub formancie, automatycznie uruchamia procedurę obsługi zdarzenia dla danego obiektu lub zdarzenia. Można na przykład napisać procedurę ustawiającą kursor w polu tekstowym "Nazwisko żony/męża" uruchamianą w momencie zaznaczenia przez użytkownika pola wyboru "Żonaty/zamężna".

Wskazówka: Wiele kreatorów (na przykład Kreator przycisków poleceń) tworzących obiekty tworzy również procedury zdarzeń dla tych obiektów. Zapoznanie się z tymi procedurami zdarzeń ułatwia zrozumienie sposobu działania procedur.

2. Procedury typu Function (często zwane po prostu funkcjami) są to takie procedury, które zwracają jakąś wartość, na przykład wynik obliczenia. Język Visual Basic zawiera wiele wbudowanych funkcji. Na przykład funkcja Now zwraca bieżącą datę i godzinę. Istnieje również możliwość tworzenia własnych funkcji niestandardowych.

Ponieważ funkcje zwracają wartości, są używane w wyrażeniach. Wyrażenia zawierające funkcje są często wykorzystywane w programie Microsoft Access, na przykład w instrukcjach i metodach języka Visual Basic, w wielu ustawieniach właściwości czy w wyrażeniach kryteriów w filtrach i kwerendach.
Oto przykładowa procedura typu Function, FirstOfNextMonth, która zwraca datę pierwszego dnia kolejnego miesiąca (po dacie bieżącej):

 

Function FirstOfNextMonth(
FirstOfNextMonth = DateSerial(Year(Now), Month(Now) + 1, 1
End Function

 

Ta funkcja niestandardowa składa się z jednej instrukcji przypisującej wyniki wyrażenia (po prawej stronie znaku równości [=]) nawie funkcji FirstOfNextMonth (po lewej stronie znaku równości). Wynik jest obliczany za pomocą wbudowanych funkcji języka Visual Basic: DateSerial, Year, Now i Month.
Po utworzeniu tej funkcji, można jej używać w dowolnych wyrażeniach w programie Microsoft Access. Na przykład, aby określić datę pierwszego dnia kolejnego miesiąca jako wartość domyślną dla pola tekstowego, w arkuszu właściwości należy ustawić właściwość DefaultValue pola tekstowego w następujący sposób:

 

=FirstOfNextMonth()

 

Zastosowanie

  • oprogramowanie zdarzeń
  • nietypowe przetwarzanie danych
  • przetwarzanie "transakcyjne" danych

Składnia

  • kod podzielony na moduły
  • obsługa formularza w module zawartym w tym formularzu
  • częściowa obiektowość: predefiniowane klasy do obsługi obiektów Accessa

Przykład: Obsługa pól na formularzu

Procedura obsługi zdarzenia OnCurrent powoduje, że jeśli pracownik ma wpisaną datę zwolnienia, to jego dane nie mogą być zmienione.

 

Sub Form_Current ()
On Error Resume Next
' konieczne - nie wszystkie pola mają własność Enabled
Dim i As Integer
Dim f As Form Set

f = Forms![Pracownicy]
For i = 1 To Me.Count
f(i).locked = Not IsNull(Me![Data zwolnienia])
Next i

End Sub

 

Pokazano:

  • celowe ignorowanie błędów
  • sposoby odwołania do formularza: Forms![nazwa], Me;
  • istnieje jeszcze sposób: Screen.ActiveForm
  • sposób odwołania do pola na formularzu: f![nazwa pola], f(i)
  • obsługę przez wykorzystanie kolekcji: domyślną kolekcją formularza jest kolekcja jego wszystkich pól

Inne ciekawe możliwości języka:

  • wykonywanie akcji i wywoływanie poleceń z menu
  • obsługa DDE
  • sterowanie innymi aplikacjami przez OLE2
  • wykorzystanie bibliotek DLL
  • prosta grafika na raportach
  • kolekcje
  • manipulowanie obiektami na formularzach, raportach itp.
  • definiowanie tablic, indeksów, zapytań itd.