FileDialog czyli okno dialogowe

Application.FileDialog to właściwość obiektu Application odpowiadająca za otwarcie okna dialogowego i wskazanie pliku/folderu. 

kliknij, aby powiększyć

Właściwość ta stosowana jest najczęściej przy konieczności wybrania pliku lub folderu i wykorzystania go w dalszej części kodu procedury. 
W kodzie VBA wygląda to tak:

kliknij, aby powiększyć

Jest jeden argument wejściowy: fileDialogType.  
Może on przyjmować następujące wartości:

      • msoFileDialogFilePicker
        do wskazania pliku
      • msoFileDialogFolderPicker
        do wskazania folderu
      • msoFileDialogOpen
        do otwarcia wskazanego pliku
      • msoFileDialogSaveAs
        do zapisania wskazanego pliku

W praktyce chyba nigdy nie zdarzyło mi się zastosować w projektach te dwie ostatnie wartości argumentu. Za to pierwszą i drugą – bardzo często. Zarówno w Excelu jak i Accessie. 


A tu możesz mi postawić kawę: 

buycoffee.to/marzatela

Obiekt Application

Obiekt Application w VBA w Accessie odnosi się do aktywnej instancji aplikacji Microsoft Access. Umożliwia dostęp do różnych ustawień i funkcjonalności całej aplikacji. Można go używać do manipulowania oknami, bazami danych, a także do uruchamiania akcji, które normalnie wykonuje się za pomocą makr. 

kliknij, aby powiększyć

Ma swoje właściwości i metody, z których wiele wymaga osobnego omówienia. Najczęściej stosowane to:

METODY

WŁAŚCIWOŚCI

 

sukcesywnie będą się tu pojawiać notki poświęcone niektórym z nich.

 


Edytor VBA – prywatne i publiczne

W edytorze  VBA każdy moduły własne obiektów ma charakter prywatny. Oznacza to, że wszystkie zapisane w nim funkcje i procedury są dostępne tylko z poziomu VBA.

Moduły ogólne są domyślnie publicznie. Zdefiniowane w nich procedury i funkcje publiczne są widoczne również z poziomu Accessa (m.in. w kreatorze wyrażeń). Funkcje i procedury prywatne mogą być wykorzystane jedynie z poziomu procedur zapisanych w tym samym module. 

Np. taka funkcje w module ogólnym:

Public Function PierwszyNumer()
   'funkcja publiczna
Pierwszy = DFirst(„NumerKatalogowy”, „TabelaKsiazki”, „DataP is null”)
End Function


Private Function OstatniNumer()
   'funkcja prywatna
OstatniNumer = DLast(„NumerKatalogowy”, „TabelaKsiazki”, „DataP is null”)
End Function

W kreatorze wyrażeń wygląda to tak:

kliknij, aby powiększyć

W bazie Biblioteka, w module ModuleFunction  widoczna jest tylko jedna funkcja – zdeklarowana jako Public. Prywatna funkcja OstatniNumer nie jest tu widoczna, może być wykorzystana tylko w obrębie tego samego modułu. 

Przy bardziej rozbudowanych projektach i  wielu procedurach w kodzie może być więcej modułów ogólnych z różnymi procedurami i funkcjami. Nie wszystkie z nich muszą być widoczne i dostępne również bezpośrednio w Accessie, czasem warto je „utajnić”. Wystarczy na początku modułu ogólnego wstawić Option Private Module

kliknij, aby powiekszyć

Od tej pory – wszystkie funkcje i procedury publiczne w takim module będą dostępne z innych modułów, ale nie w Accessie. 
W praktyce zawsze tak robię, porządkując funkcje i procedury i część z nich umieszczając je modułach prywatnych, a część – publicznych. Zmieniam też nazwy modułów, żeby się nie pogubić i utrzymać porządek w kodzie. 
Np. tak:

kliknij, aby powiększyć

 


A tu możesz mi postawić kawę: 

buycoffee.to/marzatela

Zdarzenie formularza: przy deaktywowaniu

 Przy deaktywowaniu to jedno ze zdarzeń uruchamiających się automatycznie przy deaktywowaniu formularza, czyli dokładnie odwrotnie niż przy aktywowaniu formularza.  Dostępne jest w arkuszu właściwości formularza oraz w module VBA formularza. 

kliknij, aby powiększyć

W edytorze VBA jest to procedura o nazwie Form_Deactivate.  Znajduje się ona w module własnym formularza.  Procedura ta działa w momencie, gdy formularz jest deaktywowany, także, gdy przy otwartych kilku formularzach, przechodzimy do innego.
Działa także tuż przed zamknięciem formularza. 

Linki do innych zdarzeń formularza:

Najczęściej używane zdarzenia formularza


A tu możesz mi postawić kawę: 

buycoffee.to/marzatela

Zdarzenie formularza: przy aktywowaniu

 Przy aktywowaniu to jedno ze zdarzeń uruchamiających się automatycznie przy aktywowaniu formularza. Dostępne jest w arkuszu właściwości formularza oraz w module VBA formularza. 

kliknij, aby powiększyć

W edytorze VBA jest to procedura o nazwie Form_Activate.  Znajduje się ona w module własnym formularza.  Procedura ta działa w momencie, gdy formularz jest aktywowany, także, gdy przy otwartych kilku formularzach, przechodzimy do tego, w którym jest zdefiniowana. 
Działa także po otwarciu, już po otwarciu i załadowaniu formularza. 

Linki do innych zdarzeń formularza:

Najczęściej używane zdarzenia formularza


A tu możesz mi postawić kawę: 

buycoffee.to/marzatela