Błąd ten pojawia się w sytuacji, gdy następuje odwołanie do pliku lub folderu, który nie istnieje. Wystąpi także przy próbie utworzenia folderu, który już jest zapisany.
Najlepszym zabezpieczeniem kodu jest tu po prostu wcześniejsze sprawdzenie, czy dany plik/folder istnieje.
Przykładowy kod może wyglądać tak:
Public Sub NowyKatalog() If Dir(“C:\ABCD”, vbDirectory) = “” Then ‘(1)
MkDir (“C:\ABCD”) ‘(2) End If` ‘(3) End Sub
W linii (1) następuje sprawdzenie, czy istnieje katalog. Jeżeli nie – następuje przejście do linii (2), jeżeli tak – do (3).
Funkcja DIR() to funkcja VBA zwracająca wartość tekstową będącą nazwą pliku lub folderu. Bardzo pożyteczna i często stosowana.
Argumenty funkcji to:
PathName– wartość tekstowa odpowiadająca pełnej nazwie pliku lub folderu
Attributes – wartość stała lub liczbowa określająca wyszukiwane pliki. Składa się ona z sumy wartości liczbowych z tabeli poniżej.
Atrybuty mogą przyjmować wartości:
Stała
Wartość liczbowa
Opis
vbNormal
0
Pliki bez właściwości. Wartość domyślna.
vbReadOnly
1
Pliki bez właściwości i pliki tylko do odczytu
vbHidden
2
Pliki bez właściwości i pliki ukryte
vbSystem
4
Pliki bez właściwości i pliki systemowe
vbVolume
8
Etykiety
vbDirectory
16
Foldery
W praktycznym wykorzystaniu funkcja Dir najczęściej stosowana jest do sprawdzania czy istnieje dany folder lub plik oraz do sporządzania listy takich plików.
Moduły VBA w aplikacji Access to obiekty VBA, w których są zapisane wszystkie procedury i funkcje stworzone w kodzie VBA.
Dwukrotne kliknięcie w moduł powoduje automatyczne przejście do okna eksploatora projektu. Oczywiście można tam wejść również poprzez przycisk w grupie opcji Makra i kod na karcie Tworzenie czy też naciśnięcie przycisków Alt+F11.
Każdy z obiektów Accessa typu formularz czy raport ma swój własny moduł, w którym są zapisywane wszystkie zdarzenia z nim związane. Oprócz tego w projekcie są moduły ogólne, do których trafiają wszystkie przekonwertowane makra. Moduły ogólne mogą być też wstawiane poprzez menu edytora VBA:
Wykorzystując kod VBA – możliwości jest już naprawdę mnóstwo. Nawet sam Microsoft zaleca konwersję makr na kod VBA. Warto.
Przy otwieraniu aplikacji zbudowanych w Accessie (choć nie tylko, w Excelu jest podobnie), bardzo często pojawiają się komunikaty ostrzegające przed zagrożeniem wynikającym z uruchomienia potencjalnie niebezpiecznej zawartości. Jest to z pewnością bardzo pożyteczne działanie, ale w sytuacji aplikacji znanych i sprawdzonych, z pewnego źródła – często uciążliwe. Jak się pozbyć tych komunikatów? Przynajmniej w stosunku do tych treści, których jesteśmy pewni? Służy do tego jedna z opcji Centrum Zaufania.
Karta Plik –> Opcje
Wybieramy opcje, a następnie przechodzimy do ustawień Centrum Zaufania:
W nowym formularzu wybieramy Zaufane lokalizacje i naciskamy przycisk Dodaj nową lokalizację…
Otworzy się formularz, w którym wskazujemy folder do oznaczenia jako zaufany:
Warto też pamiętać o zaznaczeniu checkboxa Podfoldery tej lokalizacji są także zaufane
Na koniec wystarczy pozatwierdzać wszystkie kolejne okienka przyciskiem OK. I już.
Od tej pory ilość komunikatów ostrzegających zdecydowanie się zmniejszy.
Makra w aplikacji Access to zdefiniowane procedury automatyzacji. Tworzenie nowych makr dostępne jest na karcie Tworzenie, w grupie opcji Makra i kod.
Po kliknięciu tu przycisku Makro wchodzimy do tworzenia nowego makra w widoku projektu.
W przypadku już zapisanych makr przejście do widoku projektu i edycji następuje po kliknięciu prawym przyciskiem myszy na makrze w panelu nawigacji i wybraniu z menu podręcznego opcji Widok projektu.
Każde makro w widoku projektu wygląda tak:
Warto tu zwrócić uwagę na grupę opcji Pokazywanie/ukrywanie. Są tam dwa przyciski:
– Wykaz akcji
– Pokaż wszystkie akcje – domyślnie wyłączony. Po jego naciśnięciu poszerza się lista dostępnych akcji, choć warto pamiętać, że niektóre z nich mogą ingerować w strukturę bazy danych, a więc mogą być niebezpieczne z punktu widzenia całego projektu.
Samo tworzenie makra polega na definiowaniu kolejnych kroków poprzez wybieranie ich z listy rozwijalnej:
W dalszej kolejności definiujemy poszczególne parametry wybranej akcji:
I dodajemy kolejne akcje
Makro trzeba zapisać i można wykorzystywać w bazie.
Każde makro można uruchomić przypisując je do dowolnego zdarzenia formularza, kontrolki czy formantu.
Warto też zwrócić uwagę na dostępną w widoku projektu makra możliwość konwersji makra na procedurę VBA:
W pewien sposób jest to działanie podobne do nagrywania makra w Excelu. Może być przydatne dla początkujących użytkowników VBA.
Raporty w aplikacji Access to obiekty przedstawiające dane w formie przeznaczonej głównie do drukowania. Podobnie jak formularze, mogą być oparte o tabele lub kwerendy.
Raporty nie są przeznaczone do wstawiania czy edycji danych, a jedynie do ich prezentacji w zaprojektowanym układzie.
Podstawowe widoki raportów, dostępne na karcie Narzędzia główne-> Widok to:
widok raportu
raport w formie przeznaczonej do wyświetlenia na ekranie komputera. W tym widoku widoczne są także np.przyciski uruchamiające makra i/lub procedury VBA.
podgląd wydruku
czyli raport tak, jak będzie drukowany.
widok projektu
raport w formie możliwej do projektowania, zmian, wstawiania formantów.
Przy tworzeniu raportów wykorzystywane są przyciski dostępne na karcie Tworzenie -> Raporty.
Formularze Accessa służą o odczytu, edycji, wprowadzania i usuwania danych. Użytkownik aplikacji zbudowanej w Accessie nie powinien w zasadzie robić tego bezpośrednio w tabelach, a właśnie w formularzach. Tym bardziej, że pozwalają one nie tylko na znacznie przyjaźniejszą formę graficzną, ale przede wszystkim – umożliwiają wprowadzanie danych jednocześnie do kilku różnych, powiązanych z sobą tabel. Formularze można także oprogramować (czy to makrami czy procedurami VBA), dzięki czemu otwiera się cały szereg możliwości ułatwiających pracę w aplikacji.
Podstawowe typy formularzy:
formularz pojedynczy – na ekranie widoczny jest jeden rekord
formularz ciągły – na ekranie widocznych jest wiele rekordów
formularz dzielony – w jednej części formularza widoczne są pola jednego rekordu, w drugiej części – wszystkie rekordy
Tworząc formularze – z reguły nigdy nie opieram ich bezpośrednio o tabelę. Nigdy nie wiadomo, czy nie pojawi się potrzeba rozbudowy, więc zdecydowanie lepszym rozwiązaniem jest wykorzystanie tu kwerend.
Formularz może być też niezwiązany czyli bez źródła danych. Taką formę stosuję bardzo często do wprowadzania nowych danych. Przed zapisaniem ich potem do tabel – mam możliwość dokładnego ich sprawdzenia i przy stwierdzeniu błędów, wyświetlenia komunikatu i przerwania procedury. Sprawdza się się w praktyce.
To podstawowy podział, choć w każdym typie kwerendy możliwe są różnego rodzaju podtypy np. kwerendy parametryczne.
Generalnie kwerendy są tworzone w oknie siatki kwerendy, choć można podejrzeć je w widoku SQL.