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
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 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ọirs.Closevàcn.Closeđể giải phóng bộ nhớ RAM và tránh khóa file nguồn.
Bài viết liên quan
Thông báo
© 2021 CÔNG TY TNHH ERX VIỆT NAM
Địa chỉ văn phòng: 46/4 Nguyễn Cửu Vân, Phường 17, Quận Bình Thạnh, TP.HCM
share
tweet