CÔNG TY CỔ PHẦN BLUESOFTS

Kết nối CSDL bên ngoài vào Excel qua DBKEY

 
Khi bạn muốn lấy dữ liệu từ file Excel đang đóng hoặc kết nối tới CSDL bên ngoài như Access, SQL Server, MySQL Oracle,... vào Excel bạn cần tạo DBKEY trong Add-in A-Tools. Mã DBKEY là khóa để A-Tools kết nối tới cơ sở dữ liệu (CSDL) mà nó quản lý. Việc sử dụng DBKEY cũng như lợi ích khi ứng dụng nó tôi sẽ trình bày phía dưới bài viết này. Đầu tiên ta học cách tạo DBKEY.

Tạo DBKEY

- Bước 1: Vào menu A-Tools, nhóm lệnh bên trái chọn DBKEY ta có màn hình dưới đây

  
Bấm nút "Add" để tạo mới, "Edit" để sửa, "Remove" để gỡ bỏ. Khi bạn chọn "Add" xuất hiện menu để chọn loại CSDL mà bạn muốn tạo DBKEY. Bạn nên chọn những loại CSDL ở menu có tên cụ thể. Với mọi loại CSDL mà Windows máy tính bạn cho phép bạn chọn "ODBC/ConnectionString". 

Ví dụ tạo DBKEY cho CSDL Access, từ menu "Add" tôi chọn "MS Access" ta có màn hình dưới đây. Tiếp sau bạn phải chọn đến file Access (nếu chọn menu MS Excel thì chọn file Excel). Và ta sẽ có màn hình dưới đây:


+ DBKEY: bạn khai báo mã DBKEY. Hãy viết ngắn gọn để tiện sử dụng. Ví dụ MDB.
+ DB Type: A-Tools tự gợi ý loại CSDL, nếu chưa đúng bạn có thể chọn lại. Hiện nay A-Tools cho phép chọn một trong 12 loại CSDL ứng với các hằng số:

0 - dbUnknown
1 - dbExcel
2 - dbAccess
3 - dbFoxpro
4 - dbVFP
5 - dbSQLserver
6 - dbParadox
7 - dbMySQL
8 - dbInterbase
9 - dbODBC
10 - dbGoogleSheets
11 - dbOracle
12 - PostgreSQL

Với CSDL Excel, Access A-Tools tự động nhận dạng. Các loại CSDL khác bạn nên chỉ định đúng vì đặc tính mỗi loại CSDL khác nhau nên việc chỉ định DBType giúp A-Tools làm việc đúng với loại CSDL đó hơn. 

+ Database Name: là đường dẫn đến tập tin dữ liệu nguồn hoặc chuỗi Connection String.

+ Password: Là mật khẩu để mở CSDL nếu có. 

Với loại CSDL Client- Server như SQL Server, MySQL, Oracle,... thường bạn phải khai báo ba thông tin:

+ Server/Host: Có thể là IP, tên máy tính hoặc Domain
+ Port: Cổng kết nối, ví dụ MySQL thông thường là 3306
+ User: Là user CSDL cho phpes kết nối.

Sử dụng DBKEY

Các hàm có dùng đến câu lệnh SQL như BS_SQL, BS_JOIN, BS_TABLE, BS_DLOOKUP, BS_DSUM,... cho phép khai báo DBKEY ở tham số Options. Cú pháp như sau:

"DBKEY=MyDBKEY;" 

Nếu cần chỉ định loại CSDL thì thêm DBType

"DBKEY=MyDBKEY; DBType=n;"

n: là một trong 12 hằng số loại CSDL trình bày phía trên.

Ví dụ:
=BS_SQL("SELECT ... FROM... " , "DBKEY=YourDbKey; DBType=5)
(5 ở đây là hằng số loại CSDL SQL Server)

Ví dụ lấy tất cả dữ liệu trong bảng KHO nằm trong CSDL Access được quản lý bởi DBKEY có mã "MDB", câu lệnh như sau:

=BS_SQL("SELECT * FROM KHO", "DBKEY=MDB;")

Ưu điểm dùng DBKEY là:

- Tốc độ mở file và chạy lệnh SQL nhanh:
File Excel không cần phải mở. File dữ liệu nguồn để một file và file báo cáo để một file khác. Từ file báo cáo tạo câu truy vấn mà dữ liệu nguồn lấy từ file đang đóng.

Theo cách làm thông thường, người làm Excel thường để dữ liệu nguồn và các báo cáo chung một file nên khi mở file để xem báo cáo Excel phải mở toàn bộ dữ liệu nguồn dẫn đến tiêu tốn nhiều dung lượng RAM. Với cách tạo DBKEY bạn nên chia dữ liệu nguồn ở một file, báo cáo một file sau đó tạo DBKEY để khai báo bên file báo cáo, người xem báo cáo chỉ mở file báo cáo mà không phải mở toàn bộ dữ liệu nguồn nên tốc độ mở file nhanh, máy tính không bị chiếm dụng RAM.

- Linh hoạt khi đổi nguồn dữ liệu:
Giả sử bạn làm báo cáo cho 10 công ty, bạn có 10 file dữ liệu giống nhau về cấu trúc, bạn chỉ cần tạo một DBKEY ví dụ "MyDB" trỏ đến một file dữ liệu công ty A. Các báo cáo bạn dùng hàm BS_SQL hay BS_JOIN như sau:

=BS_SQL("SELECT ... " , "DBKEY=MyDB") 

Ok. Sua này khi bạn muốn file báo cáo cho Công ty B bạn chỉ cần vào DBKEY sửa Database Name trỏ đến nguồn dữ liệu Công ty B là xong.

- Dữ liệu nguồn có thể lưu trên máy chủ - Kết nối qua mạng LAN, Internet:
DBKEY là yêu câu bắt buộc phải tạo nếu bạn muốn từ máy khách lấy dữ liệu lưu trên máy chủ chạy A-Tools. Ví dụ trong máy chủ có file Excel cần cho phép phía máy khách truy vấn SQL để lấy dữ liệu. Phía máy chủ bạn cần tạo DBKEY trỏ đến file nguồn đó. Phía máy khách bạn chỉ cần khai báo:

=BS_SQL("SELECT * FROM KHO", "DBKEY=XLS; SVR=YES;")

Để làm được việc này phía máy chủ phải chạy chức năng "Tạo máy chủ". Bạn hãy đọc về "Chia sẻ Excel qua mạng bằng Add-in A-Tools".

Mô hình ứng dụng DBKEY

Nếu thiết kế phần mềm trên Excel ứng dụng A-Tools với DBKEY hệ thống file Excel cảu bạn sẽ rất khoa học và gọn gàng, tốc độ nhanh. Bạn hãy xem mô hình ứng dụng DBKEY trong Excel tôi trình bày dưới dây:

Các video hướng dẫn tạo DBKEY

Kết nối tới tập tin Excel đang đóng




Kết nối tới CSDL SQL Server để Tạo báo cáo động trên Excel
 


Kết nối đến phần mềm kế toán MISA


Kết nối tới CSDL Oracle để Tạo báo cáo động trên Excel


Kết nối đến CSDL Foxpro