Hướng dẫn tạo báo cáo tổng hợp siêu tốc bằng kết hợp SQL và VBA trong Excel

Ngày tạo 21/03/2022

 -  2.208 Lượt xem

Nâng cấp kỹ năng tự động hóa báo cáo trên Excel bằng sự kết hợp giữa ngôn ngữ truy vấn SQL (ADODB) và lập trình VBA: trích xuất dữ liệu liên file, tổng hợp đa điều kiện và xuất báo cáo động chỉ trong 1 giây.

Trong Video này ERX Việt Nam sẽ hướng dẫn các bạn cách làm thế nào để có thể tạo ra 1 báo cáo siêu tốc trên Excel bằng cách sử dụng ngôn ngữ SQL trên nền Excel. Với ngôn ngữ SQL bạn có thể lấy được số liệu và tổng hợp lên báo cáo ngay cả khi File dữ liệu nguồn không được mở. Tốc độ để bạn tạo ra báo cáo được tính bằng giây. Không những thế mình sẽ hướng dẫn các bạn tạo ra 1 giao diện nhập liệu và setup thật sự đơn giản để bất cứ ai cũng có thể sử dụng công cụ mà bạn cung cấp. Và đây là cách để bạn có thể gây ấn tượng với bất kỳ ai trong công ty của bạn.

Link File đính kèm: Download

Mẹo Tối ưu Truy vấn SQL trong Excel VBA & Xử lý Lỗi Thường gặp

Khi triển khai câu lệnh truy vấn SQL thông qua kết nối ADODB.Connection trên nền tảng Microsoft Excel, bạn cần lưu ý 3 quy tắc vàng sau để đảm bảo tốc độ và độ chính xác tuyệt đối:

CHUỖI KẾT NỐI & CÚ PHÁP CHUẨNMicrosoft ACE OLEDB 12.0
'' Chuỗi kết nối chuẩn hỗ trợ cả cột trộn kiểu dữ liệu Số và Văn bản (IMEX=1):
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & filePath & _
        ";Extended Properties=""Excel 12.0 Xml;HDR=YES;IMEX=1"";"

'' Quy tắc bọc tên Sheet và tên Cột có khoảng trắng hoặc tiếng Việt:
strSQL = "SELECT [Mã Hàng], [Tên Sản Phẩm], SUM([Thành Tiền]) AS TongTien " & _
         "FROM [Data_BanHang$A1:G50000] " & _
         "WHERE [Thành Tiền] IS NOT NULL " & _
         "GROUP BY [Mã Hàng], [Tên Sản Phẩm]"
  • Luôn thêm tham số IMEX=1: Giúp trình điều khiển OLEDB không tự ý biến các mã hàng vừa có số vừa có chữ thành giá trị Null.
  • Giới hạn vùng dữ liệu khi Sheet có định dạng thừa: Thay vì gọi [Sheet1$], bạn có thể chỉ định rõ [Sheet1$A1:Z50000] để bỏ qua các dòng rác cuối bảng.
  • Đóng kết nối sau khi CopyFromRecordset: Luôn gọi rs.Close và cn.Close để giải phóng bộ nhớ RAM và tránh khóa file nguồn.
Web Admin

 
 
Gọi (028) 3514 2046