Na tej stronie...



DAO a ADO - co lepsze?góra

Jak wielu jest programistów, tak wiele jest opinii.
Jedni twierdzą, że lepsze jest DAO (Data Access Object). Inni, że lepsze jest ADO (ActiveX Data Object).
Ja od wielu lat programuję przy użyciu technologii dostępu do obiektów bazy danych DAO. Ty używaj tego, co jest lepsze Tobie.
Poniżej znajdziesz przykłady dla DAO.

Wyliczanie obiektów bazy w kodziegóra

Wyliczanie obiektów bazy danych nie jest trudne i możliwe jest co najmniej na 2 sposoby:
 - w pętli for each danego obiektu (formularza, raportu, tabeli) lub...
 - w pętli for each danego kontenera (container) dokumentów (document).
Pierwszy sposób zawiera tylko jedną wadę: w przypadku formularzy i raportów możliwe jest wyliczenie wyłącznie otwartych formularzy lub raportów
Drugi zaś wylicza wszystkie obiekty bazy danych!

Sposób 1:

(w bieżącej bazie danych)

Tabele
Kwerendy
Formularze
Raporty

Sposób 2:

(w bieżącej lub innej bazie danych)



Dynamiczne tworzenie/zmiana kwerendgóra

O ile kwerenda jest obiektem bazy danych Accessa przechowującym zapytanie SQL, o tyle jej nazwa jej bardziej przyjazna niż stwierdzenie "zapytanie SQL".
Tworzenie kwerendy w oknie projektu lub za pomocą kreatora jest równie przyjemne, co łatwe, bo sam użytkownik nie musi przejmować się techniczą stroną zapytania (składnią).
Tu i teraz dowiesz się, jak budować kwerendy w kodzie.

Z przykrością stwierdzam, że nie będę się zajmował składnią SQL(...może z czasem...).

Tworzenie i modyfikacja istniejącej kwerendy w kodzie nie jest niczym trudnym.
Należy pamiętać tylko o dwóch rzeczach:
 - nieistniejącej kwerendy nie da się zmodyfikować,
 - nie da się dodać nowej kwerendy, jeśli kwerenda pod taką samą nazwą już występuje w kolekcji.
Pamiętając o powyższym, spróbujmy napisać kawałek uniwersalnego kodu:
Wywołanie może odbywać się tak: Uruchomienie zapisanej kwerendy, to już pestka. Wszystko zależy od tego jakiego typu jest to kwerenda.
Otóż, najogólniej rzecz biorąc, kwerendy mogą wybierać rekordy lub je modyfikować.
Do wybierania rekordów służy słowo SELECT, dodawania INSERT, zmiany UPDATE, usuwania DELETE.
Dla SELECT będzie to np.: DoCmd.OpenQuery "nazwaKwerendy_LUB_tekstSQL", acViewNormal
Dla INSERT, UPDATE, DELETE będzie to np.: DoCmd.RunSQL "tekstSQL", lub CurrentDb.Execute "nazwaKwerendy_LUB_tekstSQL"
Czas na przykłady...
Załóżmy, że w bazie danych jest tabela PRACOWNICY. Zawiera ona pola:
Nazwa polaTypRozmiar
PESELtekst11
Imietekst30
Nazwiskotekst50
DataUrdata 

Z tabeli PRACOWNICY chcesz wybrać Imiona i Nazwiska tych pracowników, których data urodzenia jest mieści się w zakresie 01-01-1970 do 31-12-1980: Do tabeli PRACOWNICY chcesz dodać rekord: W tabeli PRACOWNICY chcesz zmienić rekord: Z tabeli PRACOWNICY chcesz usunąć określony rekord:

Import/Eksport danych do/z Accessagóra

Eksport i import danych z i do Accessa możliwy jest za pomocą standardowych narzędzi Accessa, ale... Nie zawsze to zaspakaja potrzeby aplikacji. Poniżej przedstawione są sposoby na eksport danych do pliku tekstowego, arkusza Excela i dokumentu Worda (do tabeli).
UWAGA! W kodzie wykorzystano funkcję ChangeQuery(), która została zaprezentowana wcześniej oraz funkcję MyFileExists() z myślą o tych, co korzystają z Access'a 97.




Pozdrawiam
Maciej Łoś