Windows API
01.
09.11.2017
• Windows API. podstawowe informacje o Interfejsie Programowania Aplikacji •
Windows API (WinAPI) to nazwa podstawowego zestawu Interfejsu Programowania Aplikacji dostępnych w systemach operacyjnych Microsoft Windows. Za pomocą interfejsu API, można tworzyć aplikacje, które działają z powodzeniem na wszystkich wersjach systemu Windows ....
02.
11.11.2017
• Instrukcja Declare. Deklarowanie funkcji API •
Instrukcja Declare wykorzystywana jest na poziomie modułu do deklarowania odwołań
do procedur zewnętrznych zawartych w bibliotekach dołączanych dynamicznie (w pliku DLL).
W programie Microsoft Access można użyć instrukcji Declare na poziomie modułu w module standardowym, aby zadeklarować odwołanie
do zewnętrznej procedury w bibliotece dołączanej dynamicznie (DLL). Domyślnie instrukcja Declare jest publiczna ....
03.
14.11.2017
• Instrukcja Type. Deklarowanie Typu użytkownika •
Typ użytkownika
to złożony typ danych, mogący przechowywać wiele wartości w jednej zmiennej.
Cechą odróżniającą typ użytkownika od tablic jest możliwość przechowywania wartości różnych typów.
Zazwyczaj grupuje logicznie powiązane ze sobą dane różnego typu w jednym obszarze pamięci.
Poszczególne elementy typu użytkownika mają swoje unikatowe nazwy i podanie nazwy, pozwala na uzyskanie dostępu do danego elementu ....
04.
18.11.2017
• Wyszukiwanie plików i folderów. Funkcja API FindFirstFile (...) •
Funkcja FindFirstFile wyszukuje pliki i foldery po nazwie pliku,
lub wzorcu z użyciem symboli wieloznacznych "?" oraz "*". W wyszukiwaniu nie można
określić żadnych atrybutów, takich jak data lub typ pliku. Wyszukiwanie obejmuje długie i krótkie nazwy plików.
Próba otwarcia wyszukiwania, gdy podana nazwa pliku zawiera na końcu znak backslash (\),
zawsze kończy się niepowodzeniem ....
05.
20.11.2017
• Wyszukiwanie plików i folderów. Funkcja API FindNextFile (...) •
Funkcja FindNextFile kontynuje wyszukiwanie plików i folderów, z tymi samymi kryteriami z jakimi wywołano funkcję wyszukującą FindFirstFile. Przy powodzeniu (znalezieniu pliku lub folderu), zwraca wartość różną od Zera, a w strukturze WIN32_FIND_DATA informacje o znalezionym pliku lub folderze. By zakończyć wyszukiwanie należy uchwyt wyszukiwania zamknąć za pomocą funkcji FindClose ....
06.
20.11.2017
• Wyszukiwanie plików i folderów. Funkcja API FindClose (...) •
Funkcja FindClose kontynuuje wyszukiwanie plików i folderów, z tymi samymi kryteriami z jakimi wywołano funkcję wyszukującą FindFirstFile. Przy powodzeniu (znalezieniu pliku lub folderu), zwraca wartość różną od Zera, a w strukturze WIN32_FIND_DATA informacje o znalezionym pliku lub folderze. By zakończyć wyszukiwanie należy uchwyt wyszukiwania zamknąć za pomocą funkcji FindClose ....
07.
28.11.2017
• Informacje o pliku lub folderze. Struktura WIN32_FIND_DATA •
Struktura WIN32_FIND_DATA zwracana jest przez m.in. funkcje FindFirstFile i FindFirstFile gdy zostanie znaleziony plik lub folder pasujący do nazwy lub wzorca wyszukiwania z użyciem symboli wieloznacznych "?" oraz "*". Zawiera informacje o znalezionym pliku lub folderze, dotyczących nazwy, atrybutów, wielkości, czasu utworzenia, modyfikacji i ....
08.
30.11.2017
• Informacje o datach dot. plików lub folderów. Struktura FILETIME •
Struktura FILETIME jest to 64 bitowa struktura przechowująca informację o dokładnej dacie utworzenia, dostępu, modyfikcji pliku lub folderu. Określa liczbę 100 nanosekundowych odstępów jakie upłynęły od dnia 1 stycznia 1601 roku według czasu UTC. Element dwLowDateTime struktury FILETIME to młodsze 32 bity daty pliku, a element dwHighDateTime struktury FILETIME to starsze 32 bity daty pliku ....
09.
01.12.2017
• Czy tekst jest w formacie Unicode. Funkcja API IsTextUnicode (...) •
Gdy przy wywoływaniu funkcji API zachodzi konieczność przekazania argumentu typu String w formacie Unicode.
powinniśmy przed przekazaniem go do takiej funkcji, sprawdzić czy format tekstu jest zgodny z wymaganym formatem Unicode.
Windows API, w bibliotece "advapi32", zawiera funkcję IsTextUnicode służącą do testowania tekstu roboczego ....
10.
20.01.2018
• MultiByteToWideChar (...). Konwersja stron kodowych ASCII lub UTF8 na Unicode. •
Jeżeli tekst jest w innym formacie (innej stronie kodowej) niż aktualna strona kodowa systemu Windows to aby go poprawnie wyświetlić powinniśmy tekst ten przekonwertować za pomocą funkcji API MultiByteToWideChar(...) na format Unicode (ciąg znaków UTF-16). System zapewni jego prawidłowe wyświetlenie, zgodnie z domyślną stroną kodową systemu Windows ....
11.
20.01.2018
• WideCharToMultiByte(...). Konwersja Unicode na stroną kodową ASCII lub UTF8. •
Funkcja WideCharToMultiByte(...) konwertuje ciąg znaków z formatu Unicode na jednobajtowy ciąg znaków zgodny z określoną stroną kodową ASCII, lub na ciąg znaków w formacie wielobajtowym np. UTF8. W typowych „Accessowych” operacjach konwersja zazwyczaj nie stwarza problemów. Należy się jednak liczyć z pewnym kłopotami przy konwersji bardziej złożonych tekstów. Ciąg znaków w formacie Unicode może zawierać kilkadziesiąt tysięcy znaków, a ciąg znaków ASCII tylko 256 znaków ....
12.
09.01.2019
• Styl okna i inne dodatkowe informacje o oknie. Funkcja API GetWindowLong(...). •
Funkcja GetWindowsLong(...) zwraca informacje o określonym oknie o uchwycie hwnd, jak również wartość z określonego przesunięcia do dodatkowej pamięci okna. Bardzo często używana jest z argumentem GWL_STYLE w celu uzyskania informacji o stylu okna (czy okno jest nieaktywne, jakie posiada obramowanie, czy ma pasek tytułowy, czy posiada pionowy i poziomy pasek przewijania (scrollbar), czy widoczny jest przycisk maksymalizacji i minimalizacji) ....
13.
10.01.2019
• Opisowy styl okien MS Access. Funkcja accGetWindowStyle(...) •
Podczas projektowania interfejsu bazy danych potrzebujemy niektórych danych o oknie głównym MS Access, bądź jego okna potomnych (dzieciach). Potrzebna nam może być informacja jakie okno posiada obramowanie, czy ma pasek tytułowy, i posiada pionowy i poziomy pasek przewijania (scrollbar), czy widoczny jest przycisk maksymalizacji i minimalizacji oraz jeszcze kilkanaście innych elementów stylu. Potrzebny nam może być także uchwyt okna rodzica, bądź uchwyt do instancji programu ....
14.
11.01.2019
• Szukanie okien potomnych w oknie nadrzędnym. Funkcja API FindWindowEx(...). •
Czasami potrzebujemy przeszukać okno nadrzędne (rodzica), by dowiedzieć się jakie okna potomne (dzieci) zawiera przeszukiwane okno (rodzica), a raczej jakie uchwyty mają szukane okna potomne. Mając uchwyt okna możemy pobrać za pomocą innych funkcji API interesujące nas właściwości okna. Funkcja FindWindowEx(...) umożliwia nam takie wyszukiwanie okien potomnych ....
15.
15.01.2018
• Paski przewijania okna roboczego MS Access. Funkcja accScrollBars(...) •
Chcąc programowo zmienić położenie formularza, a zwłaszcza jeżeli chcemy go dosunąć do prawej lub dolnej krawędzi okna roboczego musimy wiedzieć, czy paski przewijania są widoczne. Gdy formularz znajdzie się kilka pikseli pod np. pionowym paskiem wtedy pojawi się poziomy pasek przewijania, który przesłoni elementy formularza np. Przyciski nawigacyjne. ....
16.
29.01.2019
• Funkcje zarządzania kontekstem urządzenia HDC. Funkcja GetDeviceCaps(...) •
Kontekst urządzenia zawiera informację opisującą urządzenie wyjściowe (ekran, drukarka itp.). Przed wykonaniem operacji graficznych w kontekście urządzenia (DC) często musimy pobrać niektóre atrybuty (właściwości) kontekstu urządzenia. Atrybuty te możemy pobrać za pomocą funkcji GetDeviceCaps(...), która dla określonego kontekstu urządzenia o uchwycie hdc zwraca atrybut (właściwość) odnoszącą się do wartości określanej przez argument nIndex. ....
17.
29.01.2019
• Funkcje zarządzania kontekstem urządzenia HDC. Funkcja CreateCompatibleDC(...) •
Jeżeli chcemy wykonać jakąkolwiek operację graficzną na bitmapie, musimy wcześniej utworzyć pamięciowy kontekst urządzenia (DC) zgodny z wzorcowym kontekstem urządzenia o uchwycie hdc. Pamięciowy kontekst urządzenia możemy utworzyć za pomocą funkcji CreateCompatibleDC(...), która ....
• Usuwanie pamięciowego kontekstu urządzenia. Funkcja DeleteDC(...) •
Po zakończeniu wykonywania operacji graficznych w pamięciowym kontekście urządzenia, musimy zwolnić ten kontekst (DC) za pomocą funkcji DeleteDC, która usuwa pamięciowy kontekst urządzenia (DC) o określonym uchwycie hdc ....
18.
29.01.2019
• Plik graficzny z zasobów dyskowych do pamięci. Funkcja LoadImage(...) •
Jeżeli chcemy załadować do pamięci bitmapę, ikonę lub kursor z zasobów systemowych (instancji modułu, biblioteki DLL, pliku wykonywalnego) lub skorzystać z zasobów dyskowych zawierających tego typu obrazy, powinniśmy skorzystać z funkcji LoadImage(...), która ....
19.
29.01.2019
• Wybór obiektu kontekstu urządzenia (DC). Funkcja SelectObject(...) •
Jeżeli chcemy wykonywać operacje na obiekcie w kontekście urządzenia (DC) musimy uaktywnić dany obiekt za pomocą funkcji SelectObject(...), która wybiera obiekt w określonym kontekście urządzenia, zwracając uchwyt aktywnego obiektu tego samego typu, który przestaje być wyróżnionym obiektem kontekstu urządzenia ....
• Usuwanie z pamięci nieużywanych obiektów. Funkcja DeleteObject(...) •
Po zakończeniu wykonywania operacji graficznych na roboczym obiekcie w pamięciowym kontekście urządzenia, musimy usunąć używany obiekt (logiczne pióro, pędzel, czcionkę, bitmapę, region lub paletę) aby zwolnić wszystkie zasoby systemowe związane z usuwanym obiektem. W tym celu powinniśmy skorzystać z funkcji DeleteObject(...), która ....
20.
29.01.2019
• Bitmapa kompatybilna z kontekstem urządzenia. Funkcja CreateCompatibleBitmap(...) •
Jeżeli chcemy wykonać jakąkolwiek operację graficzną na bitmapie, w utworzonym wcześniej pamięciowym kontekście urządzenia (DC) musimy bitmapę załadować z zasobów (najczęściej dyskowych) lub ją samemu utworzyć. Bitmapę możemy utworzyć za pomocą funkcji CreateCompatibleBitmap(...), która: ....
21.
29.01.2019
• Uchwyt kontekstu urządzenia roboczego obszaru okna. Funkcja GetDC(...) •
Jeżeli chcemy wykonać operację graficzną na roboczym obszarze okna Windows, musimy znać uchwyt kontekstu urządzenia (hdc) odnoszący się do obszaru roboczego okna. Uchwyt ten możemy pobrać za pomocą funkcji GetDC(...), która: ....
• Uchwyt kontekstu urządzenia całego obszaru okna. Funkcja GetWindowDC(...) •
Jeżeli chcemy wykonać jakąkolwiek operację graficzną na dowolnym obszarze okna Windows, łącznie z paskiem tytułowym, menu i paskami przewijania, musimy znać uchwyt kontekstu urządzenia (hdc) odnoszący się do całego obszaru okna. Uchwyt ten możemy pobrać za pomocą funkcji GetWindowDC(...) ....
• Zwalnianie kontekstu urządzenia (DC). Funkcja ReleaseDC(...) •
Po zakończeniu wykonywania operacji graficznych na dowolnym obszarze okna Windows, musimy zwolnić utworzony kontekst urządzenia (DC) za pomocą funkcji ReleaseDC(...)
22.
31.01.2019
• Niektóre właściwości obiektu graficznego. Funkcja GetObject(...) •
Operując na obiektach graficznych, musimy znać przynajmniej niektóre, istotne właściwości obiektu, by prawidłowo zrealizować zaplanowane operacje graficzne. Właściwości obiektu graficznego możemy pobrać za pomocą funkcji GetObject(), zwracającej w buforze lpObject informacje o obiekcie graficznym ....
23.
31.01.2019
• Informacje o pliku graficznym. Struktura. BITMAP •
Struktura BITMAP zawiera informacje o typie pliku graficznego, jego szerokości i wysokości, o liczbie warstw kolorów, liczbie bitów koloru na pojedynczy piksel oraz wskaźnik do tablicy bajtów obrazu bitmapy ....
24.
05.02.2019
• Kopiowanie jednego bloku pamięci do drugiego. Funkcja CopyMemory(...) •
Jeżeli chcemy szybko przenosić dane z jednego obszaru pamięci do drugiego obszaru pamięci, powinniśmy użyć funkcji CopyMemory(...), która kopiuje ciąg bajtów z jednego obszaru pamięci do drugiego obszaru tej pamięci. Źródłowy i docelowy obszar pamięci muszą być oddzielnymi obszarami (nie mogą nakładać się na siebie) ....
25.
12.02.2019
• Długość tytułu okna lub tekstu okna. Funkcja GetWindowText(...) •
Aby pobrać tytuł okna, powinniśmy znać długość tekstu, by przygotować wielkość bufora na tekst. Co prawda, możemy utworzyć nadmiarowy bufor, ale metoda taka może zakończyć się błędnym odczytem tekstu (jego ucięciem), jeżeli wielkość buforu okaże się jednak zbyt mała. Długość tekstu w oknie możemy pobrać za pomocą funkcji GetWindowTextLength ....
• Tytuł okna (tekst na pasku tytułowym okna. Funkcja GetWindowText(...) •
Jeżeli potrzebujemy np. w celach identyfikacyjnych znać tytuł okna (tekst na pasku tytułowym okna) lub w celach informacyjnych tekst, jaki znajduje się w okno edycyjnym lub kontrolce, to możemy go pobrać za pomocą funkcji GetWindowText(...), która: ....
26.
14.02.2019
• Szukaj okna z tekstem w tytule. Funkcja accFindWindowByTitle(...) •
Gdy zachodzi konieczność sprawdzenia, czy otwarte jest okno którego tytuł (tekst na pasku tytułowym okna) zawiera wzorcowy ciąg znaków, powinniśmy przeszukać wszystkie okna potomne (dzieci) okna nadrzędnego (rodzica) i pobrać ich tytuły celem porównania z wzorcem. ....
Bitmapy
01.
12.11.2017
• Struktura bitmapy 24-bit. Nagłówek BITMAPFILEHEADER i BITMAPINFOHEADER •
W 24-bitowej bitmapie nie jest zdefiniowana paleta kolorów, więc bezpośrednio po nagłówku BITMAPINFOHEADER w pliku BMP zapisane są dane obrazu. Kolejne wiersze obrazu zapisane są (zazwyczaj) w odwrotnej kolejności, niż są wyświetlane na obrazie, tj. „z dołu do góry”. Trzy kolejne bajty (w sumie 24 bitów) określają kolor piksela. Kolor piksela zapisywany jest w kolejności B (blue), G (green), R (red) ....
02.
17.11.2017
• Formant Rysunek (Image). Właściwość .Picture i .PictureData •
Formant Rysunek (Image)
jest najczęściej wykorzystywany w programie Microsoft Access do prezentacji grafiki (rysunku) w formularzu lub w raporcie.
Można go stosować zamiennie z formantem Niezwiązana ramka obiektu, w której można wyświetlać
dowolny obiekt OLE
, który nie jest przechowywany w tabeli.
MS Access przechowuje wyświetlaną bitmapę we właściwości PictureData. Jest ona binarną
reprezentacją wyświetlanej bitmapy i jest do odczytu i zapisu we wszystkich widokach. Możliwych jest kilka sposobów
przechowywania wyświetlanej bitmapy ....
03.
29.01.2019
• GDI. Kontekst urządzenia. Operacje graficzne na kontekście urządzenia. •
Operacje graficzne w systemie Windows wykonywane są na „kontekście urządzenia”. Identyfikowany poprzez swój uchwyt kontekst urządzenia jest strukturą zarządzaną przez system Windows i zawierającą nie tylko obiekt przeznaczony do wykonywanych operacji graficznych, ale przechowującą również wiele informacji o obiektach rysujących i parametrach określających tryby stosowane przez funkcje GDI podczas rysowania w kontekście urządzenia ....
04.
08.02.2019
• GDI. Pamięciowy, kompatybilny kontekst urządzenia. •
By utworzyć pamięciowy kontekst urządzenia (DC), w oparciu istniejący kontekst ekranu skorzystać należy z funkcji API CreateCompatibleDC(hdc), która tworzy kompatybilny pamięciowy kontekst urządzenia (DC) zgodny z kontekstem o przekazanym uchwycie hdc. Do uzyskanego kontekstu, za pomocą funkcji LoadImage(...) załadowana zostanie z zasobów dyskowych przykładowa, 24 bitowa nieskompresowana bitmapa, którą ....
05.
08.02.2019
• Czy plik jest nieskompresowaną 24-bitową bitmapą? Funkcja bmpIsBmp24bit(...) •
Bitmapa zawiera 14 bajtowy nagłówek BITMAPFILEHEADER w który znajduje się dwuznakowa sygnatura pliku 'BM' (w zapisie heksadecymalnym &H424D) i dane o wielkości pliku i przesunięciu (offset) do bajtów bitmapy. Pozostałe informacje, takie jak rozmiar struktury nagłówka, szerokość i wysokość bitmapy, głębia kolorów, typ kompresji, zawarte są w 40 bajtowym nagłówku BITMAPINFOHEADER. Skoro już wiemy gdzie szukać informacji dotyczących bitmapy, to możemy zacząć realizować cel, jakim jest sprawdzenie czy plik *.bmp jest nieskompresowaną bitmapą o 24-bitowej głębi kolorów ....
06.
10.02.2019
• Format przechowywania właściwości obrazów. Funkcja bmpPictureStorageFormat(...) •
- Począwszy od wersji Microsoft Access 2007+ w Menu: „Opcje programu Access”/„Bieżąca baza danych”/ mamy do wyboru jedną z dwu opcji:
- • Zachowaj format obrazu źródłowego (mniejszy rozmiar pliku). Graficzne pliki źródłowe będą przechowywane w ich oryginalnym formacie. Rozmiar bazy powiększy się jedynie o wielkość pliku graficznego ....
- • Konwertuj wszystkie dane obrazu na mapy bitowe (zgodne z programem Access 2003 i wcześniejszymi wersjami). MS Access tworzy kopię oryginalnego pliku obrazu w formacie gotowym do bezpośredniego wyświetlenia na ekranie ....
07.
08.02.2019
• Czy tablica typu Byte() jest tablicą PictureData? Funkcja bmpIsArrayDIB(...) •
Sprawdza, czy jednowymiarowa, zainicjowana tablica typu Byte() zawiera dane odpowiadające nieskompresowanej bitmapie
o 24-bitowej głębi kolorów i kierunku odczytu bajtów obrazu z „z dołu do góry”.
W zależności od wartości właściwości „Format przechowywania właściwości obrazów”,
tablica musi spełniać poniższe warunki:
-
dla opcji: „Zachowaj format obrazu bitowego” zawierać minimum 58 bajtów (14 + 40 + 4).
Dwa pierwsze bajty tablicy muszą zawierać sygnaturę 'BM', a offset do struktury BITMAINFOHEADER wynosi 14 bajtów. -
dla opcji: „Konwertuj wszystkie dane obrazu na mapy bitowe” zawierać minimum 44 bajty (40 + 4),
a offset do struktury BITMAINFOHEADER wynosi 0 ....
DAO. System obiektów dostępu do danych (Data Access Objects
01.
17.02.2018
• Metoda CreateTableDef. Tworzenia tabeli za pomocą kodu VBA. •
Metoda CreateTableDef tworzy nowy obiekt TableDef,
reprezentujący nowo zdefiniowaną tabelę bazową lub tabelę połączoną w obszarze roboczym Microsoft Jet.
Obiekt TableDef reprezentuje zachowaną definicję tabeli bazowej
lub tabeli połączonej
w obszarach roboczych Microsoft Jet. Operowanie na zdefiniowanej tabeli odbywa się
za pomocą obiektu TableDef oraz jego metod i właściwości ....
02.
18.02.2018
• Metoda OpenDatabase. Otwarcie bazy danych za pomocą kodu VBA. •
Metoda
OpenDatabase otwiera bazę danych w obiekcie typu Workspace
i zwraca odwołanie do obiektu Database. Otwierana baza danych jest automatycznie dodawana
do kolekcji Databases. Ponadto, w obszarze roboczym ODBCDirect
tworzony
jest obiekt Connection, odpowiadający nowemu obiektowi Database, który jest dołączany
do kolekcji Connections tego samego obiektu Workspace ....
03.
19.02.2018
• Obiekt Database. Dostęp do otwartej bazy danych. •
Obiekt Database oraz jego metody i właściwości można wykorzystywać do wykonywania
działań na otwartej bazie danych.
W przypadku bazy danych Microsoft Jet
(plik .mdb, .accdb), do wykonywania działań na obiekcie Database,
takich jak tworzenie, modyfikacja lub odczytywanie danych dotyczących jego tabel, kwerend i związków, można
wykorzystywać inne metody, właściwości i kolekcje ....
04.
20.02.2018
• Obiekt TableDef. Dostęp do struktury i danych lokalnej lub połączonej tabeli. •
Za pośrednictwem obiektu TableDef oraz jego metod i właściwości możemy przeglądać strukturę pól i indeksu dowolnej lokalnej, połączonej lub zewnętrznej tabeli bazy danych. Wykorzystać właściwości Connect i SourceTableName do ustawienia lub pobrania informacji o tabelach połączonych, oraz zastosować metodę RefreshLink, aby uaktualnić łącza do tabel połączonych. Zastosować metodę OpenRecordset by utworzyć Rekordset typu ....
05.
21.02.2018
• Obiekt Field. Dostęp do poszczególnych pól lokalnej lub połączonej tabeli. •
Obiekt Field reprezentuje kolumnę danych o wspólnym typie danych i wspólnym zestawie właściwości. Umożliwia m.in.
odczyt i zmianę danych, wykorzystując właściwość Value pola w obiekcie Recordset.
odczyt lub zmianę wartość w polu typu obiekt OLE
lub Memo
obiektu Recordset, wykorzystując
metody AppendChunk i GetChunk oraz właściwość FieldSize,
określić typ danych, które mogą być przechowywane w polu, wykorzystując właściwości Type, Size i Attributes ....
06.
22.02.2018
• Obiekt Index. Indeksowanie pól w tabeli bez duplikatów i duplikaty OK. •
Obiekty Index definiują kolejność rekordów pobieranych z tabel bazy danych oraz określają,
czy mogą powtarzać się takie same rekordy; zapewniają jednocześnie efektywny dostęp do danych.
W aparacie bazy danych Microsoft Jet
indeksy są wykorzystywane podczas sprzęgania tabel
i tworzenia obiektów Recordset. Indeksy określają kolejność, w której obiekty
Recordset typu tabela zwracają rekordy, ale nie określają kolejności, w jakiej aparat bazy danych Microsoft Jet
przechowuje rekordy w tabelach bazowych ....
07.
23.02.2018
• Obiekt QueryDef. Zachowana i tymczasowa kwerenda Microsoft Jet •
Obiekt QueryDef jest w bazie danych zachowaną definicją kwerendy Microsoft Jet.
Możliwe jest tworzenie tymczasowych obiektów QueryDef, które w odróżnieniu od trwałych
obiektów nie są zapisywane na dysk, ani nie są dołączane do kolekcji QueryDefs.
Kwerenda wykonywana na podstawie trwałego obiektu QueryDef działa szybciej niż równoważna
jej instrukcja SQL wykonana z pomocą metody OpenRecordset.
Wynika to z tego, że aparat bazy danych Microsoft Jet
nie kompiluje kwerendy
przed jej wykonaniem ....
08.
24.02.2018
• Metoda CreateField. Utworzenie pola o określanej nazwy, typie danych i rozmiarze •
Metoda
CreateField tworzy nowy obiekt Field,
(tylko w obszarze roboczym Microsoft Jet
).
Metodę CreateField można stosować do tworzenia nowego pola oraz do określania nazwy,
typu danych i rozmiaru tego pola. Jeżeli w wywołaniu metody CreateField zostanie pominięty
jeden lub więcej elementów nieobowiązkowych, to przed dołączeniem nowego obiektu do kolekcji można użyć stosownej
instrukcji przypisania w celu ustawienia lub zmiany wartości odpowiedniej właściwości ....
09.
25.02.2018
• Metoda CreateIndex. Tworzenie indeksów dla pól w tabeli. •
Metoda
CreateIndex tworzy nowy obiekt Index,
(tylko w obszarze roboczym Microsoft Jet)
Obiekty Index określają kolejność pobierania rekordów z tabel bazy danych oraz określają,
czy mogą powtarzać się takie same rekordy, zapewniając jednocześnie efektywny dostęp do danych
Indeksy stosowane są podczas sprzęgania tabel i tworzenia obiektów Recordset. Określają kolejność, w której obiekty Recordset typu tabela zwracają rekordy, ale nie określają kolejności, rekordów w tabelach bazowych, ani kolejności zwracanych rekordów przez inne typy obiektów Recordset ....
10.
26.02.2018
• Metoda CreateQueryDef. Tworzenie trwałej lub tymczasowej kwerendy •
Metoda
CreateQueryDef tworzy nowy obiekt QueryDef,
w określonym obiekcie Database lub Connection.
Trwały obiekt QueryDef można traktować jako skompilowaną instrukcję SQL, która działa
szybciej niż równoważna jej instrukcje SQL
wykonana za pomocą metody OpenRecordset,
gdyż aparat Microsoft Jet
nie kompiluje takiej kwerendy przed jej wykonaniem.
Możliwe jest tworzenie tymczasowych obiektów QueryDef, które
nie są zapisywane na dysk, ani nie są dołączane do kolekcji QueryDefs ....
DoCmd. Metody obiektu DoCmd.
01.
01.12.2017
• Obiekt DoCmd. Uruchamianie akcji za pomocą VBA •
DoCmd to wbudowany obiekt MS Access, zawierający metody
, za pomocą których można wykonać
akcje
programu MS Access, za pomocą kodu języka Visual Basic.
Język VBA udostępnia obiekt DoCmd, który realizuje wiele akcji makr. Obiekt ten w tle uruchamia akcje makra,
aby zrealizować ten sam efekt, co makro odpowiadające metodzie obiektu DoCmd ....
02.
05.12.2017
• Metoda MoveSize - zmiana położenia i rozmiaru aktywnego okna. •
Metoda
MoveSize umożliwia zmianę położenie i rozmiaru aktywnego okna.
Wykonuje akcję
RuchRozmiar
(uruchamianą za pomocą makra) w języku Visual Basic. Działanie metody MoveSize jest podobne
do działania powodowanego przez kliknięcie polecenia Przenieś albo Rozmiar w menu sterowania ....
03.
30.12.2017
• Metoda SelectObject. Wybranie określonego obiektu bazy danych •
Metoda
SelectObject wykonuje akcję
WybierzObiekt (SelectObject) w języku Visual Basic.
Umożliwia wybranie określonego, otwartego obiektu obiektu bazy danych, lub wybranie obiektu w oknie nawigacji.
Działa dla każdego obiektu programu Microsoft Access, który może przyjmować fokus.
Metoda ta przenosi fokus do określonego obiektu i pokazuje obiekt, jeśli jest on ukryty ....
04.
31.12.2017
• Metoda Restore. Przywracanie pierwotnego rozmiaru okna. •
Metoda
Restore służy do przywracania zmaksymalizowanego lub zminimalizowanego
okna do jego poprzedniego rozmiaru. Wykonuje akcję
Przywróć (Restore)
w języku Visual Basic. Działa na zaznaczonym obiekcie
. Jeśli obiekt został zminimalizowany,
można go najpierw zaznaczyć za pomocą metody DoCmd.SelectObject a następnie przywrócić jego poprzedni
rozmiar za pomocą metody DoCmd.Restore ....
Formularze
01.
01.12.2017
• O formularzu. Niektóre właściwości formularza. •
Formularz jest podstawowym obiektem bazy danych MS Access, pozwalającym prezentować zgromadzone w bazie danych informacje
oraz usprawniającym pracę z danymi, umożliwiając edytowanie danych, dodawanie nowych oraz usuwanie istniejących danych,
a także umożliwia sterowanie sposobem przetwarzania zawartych w bazie danych informacji ....
Położenie i rozmiar formularza.
AutoCenter - wyśrodkowany formularz |
AutoResize - pokaż całe rekordy |
DividingLines - linie rozdzielające rekordy |
Akcja
RuchRozmiar - położenie i rozmiar formularza |
02.
05.12.2017
• Zdarzenie Open i Close formularza (raportu) •
Zdarzenie Open występuje, gdy formularz zostaje otwarty, ale przed wyświetleniem pierwszego rekordu. Dla raportu zdarzenie to występuje przed podglądem wydruku, albo przed wydrukowaniem raportu. Zdarzenie Close występuje, gdy formularz albo raport jest zamykany i usuwany z ekranu. Aby uruchomić makro lub procedurę zdarzenia, gdy wystąpią te zdarzenia, należy ustawić właściwość OnOpen lub OnClose na nazwę makra lub na wartość [Event Procedure] ....
03.
07.12.2017
• Zdarzenie Load i Unload formularza (raportu) •
Zdarzenie Load występuje, gdy formularz (raport) zostaje po raz pierwszy otwarty i wypełniane są jego rekordy.
Zdarzenie to może być wykorzystane np. do przydzielania zasobów używanych w formularzu.
Zdarzenie Unload występuje, gdy formularz (raport) jest zamykany, lecz przed jego usunięciem z ekranu.
Gdy formularz (raport) zostaje ponownie załadowany, program Microsoft Access ponownie wyświetla go i ponownie inicjuje zawartość
wszystkich jego formantów ....
04.
31.12.2017
• Niekonwencjonalne otwarcie formularza. Od lewej do prawej strony strony. •
Za pomocą podformularzy możemy prezentować i przetwarzać zgromadzone w bazie dane. Spróbujmy więc otwierać
formularze w niekonwencjonalny sposób. Wizualny efekt procesu otwierania formularza możemy rozłożyć na wiele
pojedynczych prezentacji formularza. Najpierw pokazujemy formularz o małym rozmiarze i za każdym razem
zwiększamy jego rozmiar oraz jeżeli jest to konieczne również jego położenie ....
Właściwości - rozmiar formularza.
WindowHeight (Width) - wysokość (szerokość) formularza w twipach
|
WindowLeft, (Top) - odległość od lewej i górnej krawędzi okna roboczego MS Access |
Visible - pokazanie lub ukrycie formularza, raportu, sekcji i formantu |
05.
02.01.2018
• Dziewięć wizualnych sposobów otwarcia formularza. •
Wizualny efekt procesu otwierania formularza możemy rozłożyć na wiele pojedynczych prezentacji formularza. Najpierw pokazujemy formularz o małym rozmiarze i za każdym razem zwiększamy jego rozmiar oraz jeżeli jest to konieczne również jego położenie. W zależności od kierunku zwiększania rozmiaru formularza w trakcie jego otwierania możemy wyróżnić dziewięć wizualnych efektów otwierania formularza ....
06.
31.12.2018
• Modalny pasek postępu (Progressbar) •
Pasek postępu jest graficznym elementem kontrolnym używanym do wizualizacji postępu operacji wykonywanej przez system, takich jak pobieranie danych, przesyłanie plików, postęp instalacji programu. W MS Access pasek postępu może informować o przetwarzanie kolejnych rekordów, bądź plików ....
07.
02.01.2019
• Trzy dynamiczne, hierarchiczne, powiązane pola kombi •
Często w bazie danych musimy zapisać dane adresowe zawierające lokalizację podmiotu takie jak:
województwo, powiat, gminę, miejscowość oraz ulicę i nr domu.
Samych gmin mamy obecnie ok. 3700, więc umieszczenie danych na jednej liście pola kombi, bardzo by utrudniło
użytkownikowi znalezienie pozycji na takiej liście
Powinniśmy zastosować hierarchiczne (kaskadowe) pola kombi w których
wybór pozycji w pierwszym polu kombi, ogranicza możliwość wyboru w drugim polu kombi do danych powiązanych
z wybraną wcześniej pozycją. Po wyborze elementu w drugim polu kombi, lista pozycji
w trzecim polu kombi zostaje ograniczona do ....
08.
05.01.2019
• Pasek postępu osadzony w formularzu •
Pasek postępu jest graficznym elementem kontrolnym używanym do wizualizacji postępu operacji wykonywanej przez system, takich jak pobieranie danych, przesyłanie plików, postęp instalacji programu. W MS Access pasek postępu może informować o przetwarzanie kolejnych rekordów, bądź plików ....
09.
12.01.2019
• Identyfikacja pasków przewijania formularza •
Chcąc programowo zmienić położenie formantów formularza, a zwłaszcza jeżeli chcemy formant ten dosunąć do prawej lub dolnej krawędzi okna musimy wiedzieć, czy paski przewijania są widoczne. Gdy pasek postępu jest widoczny, formant powinniśmy dosunąć prawą (lub dolną) krawędzią do paska przewijania, a nie do krawędzi okna formularza, gdyż wtedy pasek przewijania częściowo zasłoni przesuwany formant ....
10.
17.01.2019
• Hierarchiczne dane. Formant ComboBox i ListBox w widoku TreeView •
Dane w postaci hierarchicznej możemy zaprezentować wykorzystując kontrolkę TreeView. Każdy węzeł w widoku drzewa może zawierać inne węzły podrzędne. Konieczne jest jednak ustanowienie odwołania do kontrolki ActiveX Microsoft Windows Common Controls 6.0, co może skutkować problemem „zagubionych referencji” (Missing References). Aby ominąć ten problem możemy stworzyć własne pole kombi, tak by na rozwiniętej liście widoczne były poszczególnych węzły, które można zwijać i rozwijać. W podobny sposób można stworzyć z formantu ListBox listę widoku TreeView ....
Funkcje wbudowane MS Access
01.
12.11.2017
• Funkcja Dir. Lista plików lub folderów pasujących do wzorca. •
Funkcja Dir zwraca wartość typu String reprezentującą nazwę pliku, katalogu lub folderu, która odpowiada określonemu wzorcowi,
atrybutowi pliku albo etykiecie dysku. Funkcja Dir pozwala na stosowanie symboli wieloznacznych zastępujących wiele znaków (*) lub pojedynczy znak (?),
umożliwiając w ten sposób wskazanie wielu plików.
Przy pierwszym wołaniu funkcji Dir należy określić argument nazwa_sciezkiki, w przeciwnym razie wystąpi błąd.
Ponadto, nazwa_sciezkiki musi wystąpić, jeżeli podano atrybuty pliku ....
02.
14.11.2017
• Funkcja Shell. Asynchroniczne uruchomienie programu. Identyfikator PID •
Uruchamia program i w przypadku powodzenia zwraca wartość typu Variant podtyp Double reprezentującą identyfikator
zadania (PID) odpowiadający uruchomionemu programowi, natomiast w przypadku niepowodzenia zwraca zero.
Funkcja Shell uruchamia programy w sposób asynchroniczny. Oznacza to, że program
uruchomiony przez funkcję Shell może się nie zakończyć przed rozpoczęciem wykonywania instrukcji
występujących po funkcji Shell ....
03.
28.12.2017
• DoEvents. Przekazuje sterowanie do systemu operacyjnego •
Funkcja DoEvents przekazuje sterowanie do systemu operacyjnego. Sterowanie jest zwracane po obsłudze przez system operacyjny wszystkich zdarzeń z systemowej kolejki oraz po wysłaniu z kolejki SendKeys wszystkich kluczy Funkcji DoEvents warto używać wtedy, gdy wykonywany program (lub jego fragmenty) zajmują dużo czasu procesora. Okresowe wywoływanie tej funkcji pozwoli systemowi operacyjnemu na obsługę bez zbytniego opóźnienia takich zdarzeń, jak naciśnięcia klawiszy czy kliknięcia myszą ....
04.
29.01.2018
• Replace. „Znajdź i Zastąp”. Zamiana w tekście ciągu znaków na inny ciąg znaków •
Bardzo często potrzebujemy w tekście zamienić średniki na przecinki, lub przecinki na średniki, usunąć znaki końca linii, podwójne czy też potrójne spacje zamienić na pojedynczą, zamienić polskie znaki diakrytyczne na ich odpowiedniki bez kropek, kresek i ogonków, bądź po prostu w tekście zrobiliśmy błąd ortograficzny który powieliliśmy w wielu miejscach i chcemy go poprawić. Zrobić to możemy za pomocą funkcji Replace, która wyszukuje w przekazanym ciąg znaków (tekście) określony znak (ciąg znaków) i zastępuje go nowym znakiem lub ciągiem znaków ....
05.
29.01.2018
• InStr. Wyszukiwanie w tekście określonego znaku lub ciągu znaków. •
Aby sprawdzić czy tekst zawiera nieprawidłowe znaki, bądź wyrazy, lub by policzyć ile razy znak, czy wyraz, występuje
w naszym tekście, możemy użyć funkcji InStr, która wyszukuje w przekazanym tekście określony znak lub ciąg znaków
i zwraca jego pozycję w przeszukiwanym tekście. Jeżeli szukany ciąg znaków nie występuje zwraca 0.
Wiedząc, że tekst zawiera szukaną frazę i znając jej pozycję i długość, możemy dokonać poprawek w tekście za pomocą wbudowanych
funkcji Mid, Left, Right lub Replace ....
06.
08.02.2018
• Mid. Pobranie fragmentu tekstu ze zmiennej znakowej. •
Bardzo często mamy tekst, w którym musimy sprawdzić czy nie zawiera nieprawidłowych znaków, bądź wyrazów. Wiedząc, że tekst zawiera szukaną frazę powinniśmy wtedy zastosować funkcję tekstową Mid, za pomocą której możemy wyodrębnić określony ciąg znaków, lub kolejno wyodrębniać fragmenty tekstu, pomijać nie pasujące, dodawać nowe fragmenty i połączyć wszystkie fragmenty w nowy ciąg znaków za pomocą operatora konkatenacji & ....
Instrukcje w VBA
01.
30.11.2017
• Instrukcja Open. Otwarcie pliku dla operacji odczytu i zapisu. •
Instrukcja VBA Open umożliwia wykonywanie operacji wejścia/wyjścia (odczytu i zapisu) na pliku.
Słowo kluczowe tryb (mode) określa sposób otwarcia pliku: Append, Binary, Input, Output lub Random. Jeżeli ten element nie jest
określony, plik jest otwierany w trybie Random.
Słowo kluczowe dostęp (access) określa dozwolone operacje na otwartym pliku: Read, Write lub Read Write ....
02.
11.11.2017
• Instrukcja Declare. Deklarowanie funkcji API •
Instrukcja Declare wykorzystywana jest na poziomie modułu do deklarowania odwołań
do procedur zewnętrznych zawartych w bibliotekach dołączanych dynamicznie (w pliku DLL).
W programie Microsoft Access można użyć instrukcji Declare na poziomie modułu w module standardowym, aby zadeklarować odwołanie
do zewnętrznej procedury w bibliotece dołączanej dynamicznie (DLL). Domyślnie instrukcja Declare jest publiczna ....
03.
14.11.2017
• Instrukcja Type. Deklarowanie Typu użytkownika •
Typ użytkownika
to złożony typ danych, mogący przechowywać wiele wartości w jednej zmiennej.
Cechą odróżniającą typ użytkownika od tablic jest możliwość przechowywania wartości różnych typów.
Zazwyczaj grupuje logicznie powiązane ze sobą dane różnego typu w jednym obszarze pamięci.
Poszczególne elementy typu użytkownika mają swoje unikatowe nazwy i podanie nazwy, pozwala na uzyskanie dostępu do danego elementu ....
04.
24.01.2018
• Instrukcja Get. Odczytuje do zmiennej danych z otwartego pliku dyskowego •
Odczytuje określony rekord z pliku otwartych w trybie Random, lub ciąg bajtów z pliku binarnego począwszy od określonego bajtu i przypisuje go do zmiennej. Dla plików otwartych w trybie Binary zastosowanie klauzuli Len w instrukcji Open nie ma znaczenia. Instrukcja Get odczytuje wszystkie zmienne z dysku w sposób ciągły, czyli bez wypełniania przestrzeni między rekordami ....
Makro (akcja) MS Access
01.
10.12.2017
• Akcja RuchRozmiar (MoveSize) - zmiana położenia i rozmiaru aktywnego okna. •
Akcja
RuchRozmiar (MoveSize) służy do przesuwania lub zmiany rozmiaru aktywnego okna.
Pobiera cztery argumenty: „W prawo”, „W dół”, „Szerokość”,
„Wysokość”. Jeżeli argument pozostawimy pusty, to użyte zostaną bieżące ustawienia okna.
Wymagane jest podanie przynajmniej jednego argumentu ....
Metody obiektów MS Access
01.
28.12.2017
• Metoda Repaint. Odświeżanie formantów formularza •
Czasami program Microsoft Access wstrzymuje odświeżanie ekranu do czasu zakończenia innych zadań. Za pomocą
metody Repaint można wymusić natychmiastowe odświeżanie formantów określonego formularza.
Metoda
Repaint wykonuje wszystkie zaległe aktualizacje ekranu dla określonego
formularza. Gdy metoda Repaint wykonywana jest na formularzu, wykonuje także wszystkie
zaległe obliczenia formantów formularza ....
02.
29.12.2017
• Metoda Echo. Odświeżanie ekranu komputera •
Metoda
Echo określa, czy program Microsoft Access ma odświeżyć ekran
komputera. Wyłączenie odświeżania może być przydatne, jeśli zmiany wykonywane na ekranie nie muszą, lub nie powinny
być widoczne dla użytkownika. Metoda Echo nie wyłącza wyświetlania modalnych okien dialogowych,
takich jak komunikaty o błędach, ani formularzy podręcznych, takich jak arkusze właściwości ....
03.
15.02.2018
• CurrentDb. Odwołanie do aktualnie otwartej bazy danych w oknie MS Access. •
Do operowania strukturą i danymi bazy danych za pomocą języka Visual Basic konieczne
jest użycie obiektów dostępu do danych (DAO).
Metoda
CurrentDb obiektu Applicationzwraca zmienną obiektową
typu Database reprezentującą
aktualnie otwartą bazę danych w oknie programu Microsoft Access.
Po utworzeniu zmiennej wskazującej bieżącą bazę danych można uzyskać dostęp i manipulować innymi obiektami
i kolekcjami w hierarchii DAO ....
Przetwarzanie plików
01.
17.11.2017
• Lista podfolderów w folderze roboczym. Funkcja Dir i komenda DIR •
Wbudowana funkcji Dir, zwraca wartość typu String
reprezentującą nazwę pliku, katalogu lub folderu, która odpowiada określonemu wzorcowi, atrybutowi pliku albo etykiecie dysku.
Funkcja Dir pozwala na stosowanie symboli wieloznacznych zastępujących wiele znaków (*) lub pojedynczy znak (?),
umożliwiając w ten sposób wskazanie wielu plików ....
... Podstawowe informacje o komendzie Dir możemy uzyskać po uruchomieniu w oknie „Immediate”
poniższej instrukcji:
?Shell(Environ$("COMSPEC") & " /k Dir/?") ....
02.
21.11.2017
• Lista podfolderów zwracanych przez FileSystemObject (FSO) •
Skoro ani funkcja Dir ani komenda Dir nie daje sobie rady z pobraniem nazw podfolderów w folderze roboczym,
spróbujemy uzyskać listę podfolderów w folderze roboczym wykorzystując usługę Windows Script
Host (WSH) i jej obiekt FileSystemObject, który zapewnia dostęp do systemu plików komputera ....
... Rekurencyjna funkcja fileListSubFoldersFSO (...) wykorzystuje usługę Windows Script Host (WSH) i jej obiekt
FileSystemObject w celu znalezione wszystkich podfolderów w folderze roboczym ....
03.
26.11.2017
• Lista podfolderów. Unikodowa funkcja API FindFirstFileW i FindNextFileW •
06.
05.01.2018
• Lista podfolderów w folderze. Funkcja API FindFirstFileA i FindNextFileA •
Funkcja FindFirstFile wyszukuje pliki i foldery wyłącznie po nazwie pliku, lub wzorcu z użyciem symboli
wieloznacznych "?" oraz "*". W wyszukiwaniu nie można określić żadnych atrybutów, takich jak
data lub typ pliku. Wyszukiwanie obejmuje długie i krótkie nazwy plików.
Jeżeli wywołanie funkcji FindFirstFile
zakończy się sukcesem (zostanie znaleziony plik lub folder), to funkcja zwróci nam uchwyt wyszukiwania,
a w strukturze WIN32_FIND_DATA
informacje o znalezionym pliku lub folderze. Zwrócony uchwyt wyszukiwania możemy użyć w celu wyszukania kolejnego
wyszukiwania za pomocą funkcji FindNextFile ....
04.
30.11.2017
• Operacje odczytu i zapisu pliku. Instrukcja Open. •
Instrukcja VBA Open umożliwia wykonywanie operacji wejścia/wyjścia (odczytu i zapisu) na pliku.
Słowo kluczowe Tryb (Mode) określa sposób otwarcia pliku: Append, Binary, Input, Output lub Random. Jeżeli ten element nie jest
określony, plik jest otwierany w trybie Random.
Słowo kluczowe Dostep (Access) określa dozwolone operacje na otwartym pliku: Read, Write lub Read Write ....
05.
21.12.2017
• Lista plików w folderze. Unikodowa funkcja API FindFirstFileW i FindNextFileW. •
07.
07.01.2018
• Lista plików w folderze roboczym. Funkcja API FindFirstFileA i FindNextFileA. •
Funkcja tworząca listę plików w folderze roboczym i podfolderach korzysta z funkcji plikListSubFoldersApiW(...)
opisanej w Przykładzie nr 3 „Lista podfolderów
w folderze roboczym”. Używa tych samych funkcji API
FindFirstFile
i FindFirstFile w celu wyszukania plików
o ściśle określonej nazwie, lub zgodnych z maską wyszukiwania utworzonej przy użyciu symboli
wieloznacznych "?" oraz "*".
Gdy zostanie znaleziony plik pasujący do wzorca, możemy skorzystać ze zwracanej struktury WIN32_FIND_DATA, by pobrać więcej
danych o znalezionym pliku. Element dwFileAttributes, zawiera dane o atrybutach pliku.
element (ftCreationTime) zawiera dane dacie utworzenia pliku, datę modyfikacji zawiera element (ftLastWriteTime),
a rozmiar pliku odczytać możemy z elementów (nFileSizeHigh i nFileSizeLow) ....
08.
12.01.2018
• Słów kilka o plikach. Pliki tekstowe i binarne •
Plik danych jest to uporządkowany zbiór danych (bitów, bajtów, rekordów itp.)
o skończonej długości, posiadający szereg atrybutów i stanowiący
dla użytkownika systemu operacyjnego całość. Możemy wyróżnić dwa podstawowe typy plików:
plik tekstowy zawierający dane w postaci alfanumerycznej oraz
plik binarny zawierający po prostu ciąg bajtów, bez względu na rodzaj zapisanej w pliku informacji.
09.
12.01.2018
• Poprawność argumentów otwarcia pliku do odczytu/zapisu. •
Przed pobraniem zawartości pliku do zmiennej typu String bądź tablicy bajtów, lub zapisem danych do pliku powinniśmy wcześniej sprawdzić, czy operacja odczytu/zapisu jest możliwa. Wystąpić może kilka różnych przyczyn, które uniemożliwią nam odczytanie danych z pliku lub zapisanie danych do pliku ....
10.
15.01.2018
• Odczyt danych z pliku do zmiennej typu String. Funkcja plikFileToString(...) •
Aby odczytać dane z pliku możemy pobrać jednorazowo jego całą zawartość lub fragment do zmiennej typu String.
Funkcja plikFileToString (...) otwiera plik w trybie „Do odczytu” i pobiera
kreśloną ilość bajtów lBytes, począwszy od startowego bajtu lStart. Zwraca ilość pobranych bajtów,
a w argumencie ByRef sRetString zwraca pobrane bajty ....
11.
15.01.2018
• Odczyt danych z pliku do tablicy typu Byte(). Funkcja plikFileToArray(...) •
Aby odczytać dane z pliku możemy pobrać jednorazowo jego całą zawartość lub fragment do zmiennej do tablicy Byte().
Funkcja plikFileToArray (...) otwiera plik w trybie „Do odczytu” i pobiera
określoną ilość bajtów lBytes, począwszy od startowego bajtu lStart. Zwraca ilość pobranych bajtów,
a w argumencie ByRef arrRetBytes() zwraca tablicę zawierającą pobrane bajty ....
12.
04.02.2019
• Czy plik istnieje na dysku? Funkcja plikFileExist(...) •
Przy każdej próbie odwołania się do pliku na dysku, powinniśmy upewnić się, czy plik faktycznie znajduje się w miejscu docelowym na dysku. Przed sprawdzeniem za pomocą funkcji DIR, należy sprawdzić, czy ścieżka do pliku nie zawiera zastrzeżonych znaków, które nie mogą występować w nazwach katalogów i plików... Funkcja plikFileExist (...) sprawdza, czy w określonej lokalizacji znajduje się wskazany plik ....
Przetwarzanie tekstu
01.
01.12.2017
• Czy tekst jest w formacie Unicode. Funkcja tekstIsUnicode(...) •
Aby ustrzec się przed nieprawidłowym działaniem funkcji operujących na ciągach znaków w formacie Unicode, powinniśmy napisać funkcję sprawdzającą format tekstu, przed przekazaniem go do funkcji operujących na tekście w formacie Unicode. Windows API, w bibliotece "advapi32", zawiera funkcję IsTextUnicode(...) służącą do testowania tekstu roboczego ....
02.
22.01.2018
• Konwersja tekstu z formatu ASCII na format UTF8. •
UTF-8 to system kodowania Unicode, wykorzystujący od 1 do 6 bajtów do zakodowania pojedynczego znaku, jest w pełni kompatybilny z ASCII. Format ten, w porównaniu do standardu ISO 8859-2 zajmuje nieco więcej miejsca, ale daje o wiele większe możliwości prezentowania tekstu na stronach internetowych. Przykład prezentuje funkcję umożliwiająca konwersję tekstu z formatu Unicode (ASCII) na format UTF8 ....
03.
20.01.2018
• Konwersja tekstu z formatu UTF8 na format ASCII •
By skonwertować tekst z formatu UTF8 na ASCII skorzystamy z funkcji MultiByteToWideChar(...), której opis znajduje się na stronie MultiByteToWideChar Funkcja ta konwertuje tekst wejściowy ze strony kodowej ASCII, lub UTF8 na format Unicode (ciąg znaków UTF-16). Należy zauważyć, że konwertowany tekst wejściowy nie musi być zestawem znaków wielobajtowych ....
04.
03.02.2018
• Konwersja tekstu między różnymi stronami kodowymi (CodePage»»CodePage) •
Strona kodowa – zestaw znaków przypisanych poszczególnym kodom binarnym (kodom znaku). Różne strony kodowe przyjmują dla tego samego kodu
odmienne znaki, a ponadto różnią się samymi zestawami znaków.
Funkcja tekstCodePageToCodePage(...) umożliwia konwersję tekstu pomiędzy różnymi stronami kodowymi,
nie tylko jednobajtowymi zestawami ASCII ale również wielobajtowymi np. UTF8 ....
05.
08.02.2018
• Jak ułatwić sobie pracę z plikami HTML •
Jeżeli mamy kilkadziesiąt pojedynczych stron *.html i trzeba na wszystkich stronach dokonać zmian, to robienie tego
„na piechotę” zajmie strasznie dużo czasu. Przewidując taki problem, powinniśmy wcześniej wyznaczyć strategiczne miejsca na stronie
gdzie najczściej będziemy dokonywać hurtowych zmian i nadać niektórym znacznikom identyfikatory,
bądź oznaczyć te obszary komentarzami o określonej, indywidualnej nazwie ....
Funkcje przetwarzające tekst pliku *.html
Funkcja tekstExtractTextFromHtml(...)
• Pobranie tekstu pomiędzy identyfikatorami (tagami, znacznikami) •
Funkcja tekstInsertTextInHtml(...)
• Zamiana tekstu pomiędzy identyfikatorami (tagami, znacznikami) •
06.
25.02.2018
• Access i funkcja USUŃ.ZBĘDNE.ODSTĘPY •
Jeżeli zdublowane spacje występują na początku i końcu roboczego ciągu, to wbudowana funkcja Trim
usuwająca spacje wiodące i końcowe, a jej odmiany LTrim usuwająca spacje wiodące oraz RTrim usuwajaca spacje końcowe
umożliwiają usunięcie nadmiarowych spacji.
VBA nie oferuje żadnej funkcji pozwalajacej na usunięcie powtórzonych spacji wewnątrz roboczego ciągu.
Aplikacja Excel oferuje funkcję arkuszową USUŃ.ZBĘDNE.ODSTĘPY, niestety w MS Access funkcję taką musimy napisać sami ....
Właściwości obiektów MS Access
01.
28.12.2017
• Właściwość Visible. Ukrywanie, pokazywanie formularzy, raportów, sekcji, formantów •
Właściwości Visible (Widoczny) można użyć do wyświetlenia lub ukrycia formularza
,
raportu
, sekcji
formularza lub raportu albo formantu
.
Właściwości Visible można używać do ukrywania formantu na formularzu lub w raporcie ustawiając właściwość Visible
za pomocą makra lub procedury zdarzenia ....
Istnieje także właściwość Visible obiektu Application.
Gdy obiekt Application jest tworzony za pomocą mechanizmu automatyzacji, właściwości Visible
i UserControl tego obiektu są ustawiane na wartość False aplikacja jest zminimalizowana,
ale nie jest ukryta przed użytkownikiem ....
02.
11.01.2019
• Właściwość ScrollBars. Paski przewijania w formularzu i formantach tekstowych •
Właściwość ScrollBars (PaskiPrzewijania) służy do określania, czy paski przewijania mają pojawiać się
w formularzu
lub w polu tekstowym
Dla właściwości ScrollBars używane są następujące ustawienia.
ScrollBars | Opis |
---|---|
0 | Żaden pasek przewijania nie pojawi się w formularzu lub polu tekstowym. |
1 | Poziomy pasek przewijania może pojawić się w formularzu (tylko formularz). |
2 | Pionowy pasek przewijania może pojawić się w formularzu lub polu tekstowym. |
3 | Pionowy i poziomy pasek przewijania może pojawić się w formularzu (tylko formularz). |
Jeżeli formularz użytkownika jest większy, niż dostępne okno ekranowe, można wykorzystać właściwość ScrollBars, aby umożliwić użytkownikowi obejrzenie całego formularza ....
03.
06.02.2019
• Właściwość SizeMode ramki obiektu i formantu Rysunek (Image). •
Właściwości SizeMode (TrybWymiarowania) można użyć do określenia sposobu dopasowania rysunku lub innego
obiektu do związanej ramki obiektu
, do niezwiązanej ramki obiektu
lub do formantu Rysunek (Image)
. Ustawienie właściwości na wartość "Obetnij" zapewnia najszybsze wyświetlanie.
Wartość "Rozciągnij" zwalnia z konieczności samodzielnego dopasowania ich rozmiarów, ale w wypadku okręgów
i fotografii może powodować zniekształcenia ....
04.
09.02.2019
• Właściwość PictureType. Rysunek połączony lub osadzony. •
Właściwości PictureType (TypRysunku) można użyć, aby określić, czy rysunek, który program
MS Access ma przechowywać w obiekcie, ma być przechowywany jako obiekt połączony
czy jako obiekt osadzony
. Dla wartości "Osadzony", rozmiar bazy danych
powiększa się o rozmiar pliku rysunku i dla niektórych plików rozmiar może wzrosnąć
kilkukrotnie w stosunku do rozmiarów pliku rysunku. Dla wartości "Połączony",
to rozmiar bazy danych nie wzrasta, ponieważ program Microsoft Access przechowuje tylko wskaźnik
do miejsca na dysku, w którym znajduje się rysunek. ....
VBA 7
01.
17.10.2017
• Co wybrać ? Pakiet Microsoft Office 2010+ w wersji 32 bitowej, czy 64 bitowej •
Jeżeli zdecydujemy się na korzystanie z 64 bitowej wersji Microsoft Office, to musimy się liczyć z konsekwencjami migracji
na nowy system, w którym nie będą prawidłowo funkcjonowały biblioteka formantów ActiveX ComCtl
, formanty ActiveX
,
dodatki COM
oraz biblioteki DLL
w wersji 32 bitowej, skompilowane bazy danych programu Access
w postaci plików MDE
oraz ACCDE
oraz Visual Basic for Applications zawierające
instrukcję Declare funkcji API 32 bitowych ....
02.
21.10.2017
• Edytor kodu VBA, okno Immediate, Option Explicit - jawne deklarowanie zmiennych •
Aby stosować jawną deklarację zmiennych w edytorze VBA, należy wybrać polecenie „Tools/Options”.
W oknie „Options”, na zakładce „Editor” zaznaczmy pole wyboru
Require Variable Declaration
. Spowoduje to automatyczne wstawianie dyrektywy Option Explicit
we wszystkich nowo tworzonych modułach VBA aplikacji Accessa i wymusi jawne deklarowanie zmiennych.
We wcześniej utworzonych modułach, należy ręcznie wpisać w sekcji deklaracji modułu dyrektywę Option Explicit ....
03.
31.10.2017
• Zmienne i ich typy. Zasady nadawania nazw zmiennym, procedurom, stałym ... •
Zmienna to fragment pamięci programu, który ma nazwę i jest przeznaczony do przechowywania danych. Zmienną można wykorzystać do przechowywania wyniku obliczeń, albo za jej pomocą udostępnić wartość zmiennej innej procedurze w celu dalszego przetwarzania. Do zmiennej (obszaru pamięci) odwołujemy się za pomocą nazwy zmiennej. Zmienną deklarujemy za pomocą instrukcji Dim ....
04.
04.11.2017
• Deklarowanie zmiennych. Instrukcje Option Explicit, Dim, Public, Private ... •
Instrukcje deklaracji służą do nadawania nazw i definiowania procedur, funkcji, zmiennych, tablic i stałych
Do deklarowania zmiennej zazwyczaj stosowana jest instrukcja Dim. Instrukcja deklaracji może być umieszczona wewnątrz procedury wówczas
zostanie utworzona zmienna na poziomie procedury. Jeżeli natomiast deklaracja zostanie umieszczona na początku modułu,
w sekcji deklaracji, utworzona będzie zmienna na poziomie modułu ....
05.
15.11.2017
• Zasięg i widzialność zmiennej •
Zasięg odnosi się do dostępności zmiennych, stałych lub procedur dla innej procedury. Występują trzy poziomy zasięgów:
poziom procedury, prywatny poziom modułu, publiczny poziom modułu.
Zmienne i stałe na poziomie modułu można definiować w sekcji deklaracji modułu. Zmienne na poziomie modułu mogą być publiczne lub prywatne ....
06.
19.11.2017
Czas, w którym zmienna
zachowuje swoją wartość, jest nazywany jej cyklem życia. Wartość zmiennej może zmienić się
podczas jej cyklu życia, ale w dalszym ciągu zmienna przechowuje pewną wartość. Kiedy wykonanie programu opuszcza zakres
zmiennej,
traci ona swoją wartość. W chwili rozpoczęcia procedury
wszystkie zmienne są inicjowane. Zmienna numeryczna jest inicjowana wartością zero,
ciąg znaków zmiennej długości przyjmuje wartość ciągu długości zerowej (""
) ....
07.
28.01.2019
• PtrSafe - deklarowania funkcji z bibliotek DLL w 64-bitowym VBA 7 •
W 64 bitowym środowisku VBA7 za każdą instrukcją Declare tworzącą odwołanie do zewnętrznej procedury w bibliotece dołączanej dynamicznie (DLL) należy umieścić atrybut (kwalifikator, słowo kluczowe) PtrSafe i zmienić 32 bitowe odwołania do wskaźników i uchwytów na zgodne z typem LongPtr, a 64-bitowym argumentom przypisać nowy typ danych LongLong ....
08.
28.01.2019
• LngPtr - odwołania do wskaźników i uchwytów w VBA 7 •
W 32 bitowym środowisku wszystkie uchwyty okien są liczbą typu Long, a w środowisku 64 bitowym liczbą typu LongLong. W środowisku VBA 7 uniwersalną deklarację uchwytu umożliwia, stworzona w tym celu, nowa liczba typu LongPtr. Przyjmuje ona w 32 bitowym środowisku typ Long (liczba 4 bajtowa), a w 64 bitowej wersji typ LongLong (8 bajtowa liczba). Taki sposób deklaracji umożliwia pisanie przenośnego kodu, który może działać zarówno w 32 jak i 64 bitowym środowisku ....
09.
28.01.2019
• Czy tablica jest zainicjowana i ile ma wymiarów? Funkcja vbaIsArrayAllocated(...) •
Operując na tablicach, nigdy nie wiemy, czy przekazywana lub zwracana przez funkcję (procedurę) tablica jest zainicjowana, a jeżeli jest zainicjowana, to ile ma wymiarów. Bez sprawdzania stanu tablicy, próba pobrania elementu tablicy, lRet = MojaTablica(0) lub próba pobrania dolnego (bądź górnego) indeksu tablicy LBound(MojaTablica) może zakończyć się błędem nr 9 „Indeks poza zakresem” (Subscript out of range). By uniknąć takiego błędu musimy napisać funkcję, która ....
10.
09.02.2019
• Jaki jest numer wersji MS Access? Funkcja vbaVersionAccess(...) •
Gdy uruchamiamy funkcje, procedury w których pobieramy właściwości obiektów, czy też do nich się odwołujemy, musimy być pewni, że używana wersja MS Access obsługuje te obiekty. Błędne wywołanie funkcji bądź metody może skutkować pojawieniem się niezrozumiałego dla użytkownika komunikatu, a w najgorszym przypadku zakończeniem działania naszej Aplikacji. Funkcja vbaVersionAccess(...) sprawdza która ....
11.
14.02.2019
• Szukaj okna z tekstem w tytule. Funkcja accFindWindowByTitle(...) •
Gdy zachodzi konieczność sprawdzenia, czy otwarte jest okno którego tytuł (tekst na pasku tytułowym okna) zawiera wzorcowy ciąg znaków, powinniśmy przeszukać wszystkie okna potomne (dzieci) okna nadrzędnego (rodzica) i pobrać ich tytuły celem porównania z wzorcem. ....
Zdarzenia w MS Access
01.
05.12.2017
Zdarzenie Open występuje, gdy formularz zostaje otwarty, ale przed wyświetleniem pierwszego rekordu. Dla raportu zdarzenie to występuje przed podglądem wydruku, albo przed wydrukowaniem raportu. Zdarzenie Close występuje, gdy formularz albo raport jest zamykany i usuwany z ekranu. Aby uruchomić makro lub procedurę zdarzenia, gdy wystąpią te zdarzenia, należy ustawić właściwość OnOpen lub OnClose na nazwę makra lub na wartość [Event Procedure] ....
02.
07.12.2017
Zdarzenie Load występuje, gdy formularz (raport) zostaje po raz pierwszy otwarty i wypełniane są jego rekordy.
Zdarzenie to może być wykorzystane np. do przydzielania zasobów używanych w formularzu.
Zdarzenie Unload występuje, gdy formularz (raport) jest zamykany, lecz przed jego usunięciem z ekranu.
Gdy formularz (raport) zostaje ponownie załadowany, program Microsoft Access ponownie wyświetla go i ponownie inicjuje zawartość
wszystkich jego formantów ....