Bazy Danych Wykład VII Makropolecenia Copyright by Arkadiusz Rzucidło 1
Wprowadzenie W ujęciu MS Access, makropolecenie jest prostym językiem programowania, który umożliwia automatyzację podstawowych zadań aplikacji Jest zbiorem akcji wykonywanych w odpowiedzi na zdarzenie lub przy wystąpieniu pewnych warunków, zaistniałych po zdarzeniu Są szeregiem prostych instrukcji zbudowanych z akcji dostępnych w SZBD Access Przykładowe użycie makropoleceń: Oprogramowanie przycisków seria akcji Ustalanie i usuwanie filtrów lub sortowanie danych w formularzach i raportach Zmiana własności lub wartości formantu podczas działania akcji Sprawdzanie wprowadzanych danych Automatyzacja często wykonywanych zadań Copyright by Arkadiusz Rzucidło 2
Tworzenie makropoleceń Makropolecenia tworzone są za pomocą siatki projektowej Etap projektowania jest wyborem z listy dostępnych poleceń (akcji) oraz definiowania kryteriów i warunków ich wystąpienia Akcje makr są ich sercem Nie wszystkie akcje wymagają definicji parametrów Copyright by Arkadiusz Rzucidło 3
Grupy makropoleceń Copyright by Arkadiusz Rzucidło 4
Makropolecenia warunkowe Działanie akcji jest zależne od spełnienia lub nie zdefiniowanego warunku Copyright by Arkadiusz Rzucidło 5
Dołączanie makr do formantów Powiązanie makropoleceń z formularzami Wybór odpowiedniego formanta w formularzu Wybór zdarzenia dla jakiego utworzono makropolecenie Opisanie jako makra jako właściwości zdarzenia Copyright by Arkadiusz Rzucidło 6
Makra zmieniające właściwości Zmieniają własności formantów Przykład: Zmiana wartości widoczności formanta Kropki i wykrzykniki: Formularze![panel]![Etykieta0].Visible=true Copyright by Arkadiusz Rzucidło 7
Ograniczenia makropoleceń Makro nie ma możliwości dodania mechanizmów obsługi błędów Profesjonalni programiści z tego powodu nie zalecają używania makropoleceń Bez obsługi błędów Access nie wie co ma robić w chwili pojawienia się błędu Systemy bez zabezpieczania danych (kontrola błędów) są bardziej podatne na załamania, utratę danych i inne zagrożenia związane z danymi. Lepszym sposobem na obsługę akcji w aplikacji bazy danych jest użycie kodu Visual Basic a Copyright by Arkadiusz Rzucidło 8
Programowanie w Accessie Visual Basic (Visual Basic for Application) jest w pełni funkcjonalnym językiem programowania dla Accessa Wyższy stopień trudności podczas stosowania VBA W większości prac aplikacji obsługi baz danych wystarczają narzędzia podstawowe Kiedy stosować VBA: Konieczność stworzenia własnej funkcji (nie pozwala na to makro) Narzędzia obsługi skomplikowanych danych Konieczność utworzenia pętli warunkowej - While (dopóki warunek) Wend (spełnienie warunku ozn. Zakończenie pętli) Obsługa błędów (nieprzewidzialne rezultaty błędów dla makr) Konieczność wywołania funkcji API systemu Windows (Application Program Interface rozszerzają środowisko Accessa) Copyright by Arkadiusz Rzucidło 9
Własne funkcje Składnia: Function Powtorzenie(DowolnePole) Powtórzenie=Długie_wyrażenie End Function Nazwa funkcji Powtórzenie Funkcja związana z wartością pola reprezentowanego jako parametr DowolnePole Wartości funkcji to Długie_wyrażenie A=2+3+4+5 B=A+3=17 Copyright by Arkadiusz Rzucidło 10
Złożone dane wejściowe Makropolecenia pracują z danymi już wprowadzonymi do bazy danych Nie można dodawać nowych informacji Konieczność modyfikacji ilości wprowadzanych danych przez użytkowników Np. kwerendy parametryczne VBA rozszerza tego typu możliwości o specjalne procedury, które np. pytają użytkownika o dane a później je stosują. Copyright by Arkadiusz Rzucidło 11
Pętle warunkowe Makra stosują proste pętle warunkowe (test statyczny) Wykonują wyrażenia w pętli jeśli warunek jest, lub nie jest spełniony VBA stosuje pętle zaawansowane np. (testy dynamiczne) Sprawdzany jest warunek np. liczby z przedziału 1-30 Jeśli jest 1-10 wykonuje ciąg instrukcji Jeśli jest 11-20 wykonuje inny ciąg instrukcji Pętla warunkowa Wykonuje pętle dopóki warunek jest spełniony Np. Dopóki użytkownik nie przerwie pętla wykonuje instrukcje Reakcja na zdarzenia Pozwala znaczenie bardziej uszczegółowić sposoby reakcji (więcej opcji) Copyright by Arkadiusz Rzucidło 12
Procedura panelu głównego bazy Biblioteka Private Sub tekst_mousedown(button As Integer, Shift As Integer, X As Single, Y As Single) Dim lngczerwony As Long Dim lngbialy As Long lngczerwony = QBColor(4) lngbialy = QBColor(7) If tekst.backcolor = lngczerwony Then tekst.backcolor = lngbialy Else tekst.backcolor = lngczerwony End If End Sub Copyright by Arkadiusz Rzucidło 13
Funkcje Podprocedury (subprocedure) VBA posiadają ograniczenia: Nie można korzystać z nazw procedur w wyrażeniach Nie może zwracać żadnej wartości Obsługa błędów Wskazówki co należy zrobić, w przypadku napotkania błędu Etykieta On Error skok do procedury lub funkcji, którą należy wykonać Utworzenie procedur obsługujących błędy Globalna procedura obsługi Problemy: Zaawansowane - zróżnicowanie procedur obsługi błędów If Err.Number=11 then MsgBox Błąd dzielenia przez 0 Else MsgBox Nieprzewidziany Błąd EndIf Copyright by Arkadiusz Rzucidło 14
Zarządzanie i ochrona baz danych Naprawa uszkodzonej bazy danych Defragmentacja bazy danych Ochrona bazy danych Replikacja Copyright by Arkadiusz Rzucidło 15
Naprawa uszkodzonej bazy danych Baza danych może zostać uszkodzona z wielu powodów Autokontrola bazy danych podczas jej uruchamiania, replikacji lub archiwizacji Access sugeruje automatycznie naprawienie bazy danych Niektóre błędy nie są wykrywane symptomem tego może być dziwne zachowywanie się bazy danych Naprawa bazy danych Menu>>Narzędzia>>Narzędzia bazy danych >>Kompaktuj i napraw bazę danych W trybie wyłączności Proces naprawy to: Weryfikacja wszystkich tabel i indeksów Dane nie możliwe do naprawienia są usuwane Metoda naprawy bazy danych w kodzie VBA DBEngine.RepairDatabase nazwa_bazy_danych Copyright by Arkadiusz Rzucidło 16
Defragmentacja bazy danych Czemu sprzyja (kompaktowanie)? Zmniejsza rozmiar pliku bazy danych na dysku Umożliwia szybszy dostęp do danych (kwerendy) Wzrasta szybkość działania aplikacji Wykonywane jest na bieżącym pliku bazy danych W systemach NTFS nowa wersja po kompaktowaniu posiada domyślne prawa dostępu Problemy w kompaktowaniu bazy danych Brak praw dostępu (otwórz/uruchom, otwórz z wyłącznością) Współużytkowanie bazy danych Brak miejsca na dysku Copyright by Arkadiusz Rzucidło 17
Ochrona bazy danych plik MDE Zapisanie bazy danych jako pliku MDB uniemożliwia: Modyfikację formularzy, raportów i modułów Tworzenie, importowanie i eksportowanie formularzy, raportów i modułów Zmienianie kodu Visual Basic Jeśli aplikacja bazy danych współpracuje z kilkoma bazami danych konieczne jest tworzenie plików MDB w łańcuchu powiązań zgodnie z kolejnością baz danych Uaktywnienie konwersji: DB1 DB2 DB3 Menu>>Narzędzia >> Narzędzia bazy danych>> Utwórz plik MDE u5 DB1.MDE p4 u3 p2 DB2.MDE u1 DB3.MDE Copyright by Arkadiusz Rzucidło 18
Ochrona bazy danych plik MDE Plik MDE zachowuje ustawienia zabezpieczenia: Hasła dostępu do bazy danych Ochrona na poziomie użytkownika Włączyć do bazy danych plik grupy roboczej Prawo do otwarcia bazy danych w trybie wyłączności i prawo do wczytywania projektu wszystkich obiektów bazy danych Prawo do modyfikacji tabel lub status administratora dla tabel bazy danych Usunięcie w/w mechanizmów ochrony z pliku MDE wykonuje się w źródłowej bazie danych i tworzy się ponownie plik MDE Copyright by Arkadiusz Rzucidło 19
Zabezpieczenia poziomu użytkownika Access udostępnia kreator zabezpieczeń na poziomie użytkownika Kreator: Tworzy nowy plik grupy roboczej dla bazy danych Standardowy plik grupy roboczej należy zamienić na nowy Ustanawia wszelkie prawa dostępu do danych i obiektów bazy danych Copyright by Arkadiusz Rzucidło 20
Szyfrowanie bazy danych Szyfrowanie bazy danych zabezpiecza przed przeglądaniem jej narzędziami innymi niż Access Podczas szyfrowania/odszyfrowania bazy danych tworzona jest jej zaszyfrowana/odszyfrowana kopia Szyfrowanie i odszyfrowanie nie może być przeprowadzone podczas użytkownika w trybie wielodostępu Rozłączenie wszystkich użytkowników Otworzenie bazy danych w trybie wyłączności Zaszyfrowanie bazy danych nie zabezpiecza przed użytkownikami mających prawo dostępu do obiektów bazy danych Problemy z szyfrowaniem bazy danych Brak miejsca na dysku Brak uprawnień właściciela/administratora Copyright by Arkadiusz Rzucidło 21
Ustawienie hasła bazy danych Podstawowe (najprostsze) zabezpieczenie bazy danych Zalecane kiedy: baza danych na pojedynczym komputerze Mała liczba użytkowników Nie ma potrzeby kontroli zaawansowanej (poza wspólnym hasłem dostępu) Nie wskazane Jeśli baza danych będzie poddana replikacji (problemy z synchronizacją replikacji ze źródłem) W przypadku włączonego zabezpieczenia na poziomie użytkownika nałożenie hasła dostępu do bazy danych wymaga posiadania prawa administratora do wszystkich obiektów bazy Konieczne utworzenie kopii bezpieczeństwa Copyright by Arkadiusz Rzucidło 22
Replikacja bazy danych Replikacja bazy danych polega na Skopiowaniu bazy danych ze wszystkimi obiektami Utworzenie procesu synchronizacji oryginalnej bazy danych z replikami i na odwrót w ramach zbioru replikacji Zmiany dokonane w bazach danych wchodzących w skład zbioru replikacji zostaną zsynchronizowane zastosowane we wszystkich pozostałych bazach zbioru Replikacja: Całej bazy danych Częściowo jest podzbiorem rekordów ze źródłowej bazy danych Zalety: krótsza synchronizacja, organizacja ochrony bazy danych (mniej danych) Copyright by Arkadiusz Rzucidło 23
Integracja Accessa z narzędziami Office Korespondencja seryjna MS Word Publikacja danych MS Word Eksport danych do formatu HTML Analiza danych MS Excel Copyright by Arkadiusz Rzucidło 24
KONIEC Copyright by Arkadiusz Rzucidło 25