Temat: Książka SQL w Excelu
Zgodnie z instrukcją na stronie projektu:
1. Download the release archive.
2. Unzip the download to a convenient location.
3. Open the Distribution\SQLiteForExcel.xls file.
4. Open the VBA Editor (Alt+F11).
5. Find the example test code in the SQLite3Demo module.
No to po kolei, z kilkoma dodatkowymi krokami.
1. Pobrać, otworzyć ZIP, przejść do katalogu Distribution, wypakować gdzieś zawartość (potrzebne są tylko 3 pliki: 2 DLLki i 1 EXEk).
2. Otworzyć plik SQLiteForExcel.xls
3. Włączyć makra
4. Otworzyć edytor makr
5. Otworzyć moduł Sqlite3Demo i tam mamy przykłady.
W module Sqlite3 są importy funkcji z biblioteki sqlite3.dll i tego nie należy ruszać.
5. Należy wyświetlić okno "Immediate Window", ponieważ tam będą wyświetlane komunikaty debuggera.
6. WAŻNE!
Przed wykonaniem makra, trzeba pozamieniać wszędzie w kodzie odwołanie do pliku w katalogu "C:\" (na Viście czy Seven spowoduje to problemy z dostępem) na jakiś inny, istniejący katalog. Np. na ten, do którego wypakowane zostały pliki z archiwum.
Chodzi o dwa wyrażenia"
*
testFile = "C:\TestSqlite3ForExcel.db3"
*
testFileBackup = "C:\TestSqlite3ForExcel_Backup.db3"
U mnie po podmianie jest:
*
testFile = "E:\temp\TestSqlite3ForExcel.db3"
*
testFile = "E:\temp\TestSqlite3ForExcel_Backup.db3"
W przeciwnym razie próba otwarcia pliku spowoduje błąd nr 14 (wyświetlony w oknie Immediate):
SQLITE_CANTOPEN As Long = 14 ' Unable to open the database file
7. U mnie makro rzuca wyjątek "Type mismatch" na wyrazeniu
startDate = DateValue("1 Jan 2000"). Pomogła zmiany daty wszędzie w pliku na datę w formacie "yyyy-MM-dd". Ustawiłem sobie "2000-01-01".
8. Przejść krok po kroku makro
AllTests, patrząc co i jak jest wywoływane oraz śledząc wyniki w oknie Immediate.
----------------------------------
UWAGA! Każda funkcja testowa "sprząta po sobie", zamykając na koniec plik z bazą danych i usuwając go (
kill testfile). Jeśli zostanie rzucony jakikolwiek wyjątek, zanim plik z bazą zostanie zamknięty i usunięty, to pozostanie on w katalogu w stanie otwartym. Przy ponownym uruchomieniu makra, gdy interpreter dojdzie do momentu, gdzie plik jest zamykany, nie zamknie go (plik jest "ze starej sesji") i przy próbie usunięcia niezamkniętego pliku, otrzymamy kolejny wyjątek "Permission denied".
Po każdym wyjątku należy zamknąć arkusz, przejść do katalogu, gdzie tworzony jest plik bazy danych i ręcznie go usunąć.
----------------------------------
Przy okazji -
katalog "managerów" dla SQLite.
Adrian Olszewski edytował(a) ten post dnia 11.09.10 o godzinie 21:37