Thao tác với Sqlite3 bằng Excel mà không cần ODBC

Đã thực nghiệm trên Win 10 64bit và Office 2016 64bits.
Trong chủ đề này tôi sẽ giới thiệu các bạn phương pháp thao tác với Sqlite3 bằng VBA Excel mà không cần tiến hành cài đặt gì. Điều này rất có lợi khi các bạn phân phối Tool cho người dùng mà người dùng không phải thao tác gì thêm.
Bài viết này tôi dựa trên .
Đầu tiên bạn hãy download mã nguồn sau: .
Sau khi download SQLiteForExcel-1.0.zip, bạn hãy giải nén ra.
Truy cập vào folder \Distribution bạn sẽ thấy như sau:
Bạn cần đăng nhập để thấy đính kèm

Bạn hãy mở file SQLiteForExcel_64.xlsm hoặc SQLiteForExcel.xls.
Tôi đang dùng Office 64bits nên tôi sẽ mở file SQLiteForExcel_64
Bạn cần đăng nhập để thấy đính kèm

Nếu như bạn muốn chuyển code này sang file của bạn thì chỉ cần chuyển Module Sqlite3. Đây là nơi chứa các đoạn code quan trọng để thao tác với Sqlite.
Lần này tôi chỉ muốn test code nên tôi sẽ vào Sqlite3Demo, đây là nơi chứa các đoạn code mẫu để test nhanh.
Đối với thủ tục Public Sub AllTests(), ta sẽ cần sửa một chút.
Hãy tìm tới dòng code:
Mã:
TestFile = Environ("TEMP") & "\TestSqlite3ForExcel.db3"
Và sửa thành:
Mã:
TestFile = ThisWorkbook.Path & "\TestSqlite3ForExcel.db3"
Bây giờ hãy tiến hành chạy thử thủ tục này.
File database mới đã được tạo ra.
Bạn cần đăng nhập để thấy đính kèm


Các bài viết trên các trang blog này còn khá lộn xộn, có lẽ cần thơi gian để biên tập lại, nên em tạm đưa các link lên đây cho anh chị em nghiên cứu và chia sẻ kết quả tìm tòi của các anh chị trong các topic này:
Link tham khảo 1 :
Link tham khảo 2:
Link tham khảo 3:
Link tham khảo 4:
 
Đọc tiêu đề bài viết nhiều người có lẽ sẽ hỏi không cần ODBC nghĩa là thế nào?
Nói ngắn gọn là máy tính của bạn không cần cài đặt thêm Sqlite3 ODBC Driver.
ODBC là gì thì các bạn tham khảo thêm .
Ở bài viết #1, code VBA thông qua DLL đã tạo ra database, bên trong đã có table và dữ liệu.
Các bạn có thể tìm thấy đoạn code sau:
Sub TestBackup():
SQLite3ExecuteNonQuery myDbHandle, "CREATE TABLE MyTestTable (Key INT PRIMARY KEY, Value TEXT)"
    SQLite3ExecuteNonQuery myDbHandle, "INSERT INTO MyTestTable VALUES (1, 'First')"
    SQLite3ExecuteNonQuery myDbHandle, "INSERT INTO MyTestTable VALUES (2, 'Second')"
    SQLite3ExecuteQuery myDbHandle, "SELECT * FROM MyTestTable"
Nếu các bạn cài DB Browser thì có thể thấy tên Table, data :
Bạn cần đăng nhập để thấy đính kèm

Nhưng vì đã nói là không dùng ODBC nên thực ra chúng tôi không muốn các bạn cài đặt gì lên máy tính để thực nghiệm topic này được rõ ràng hơn.
 
Top