Menu

Tự động lấy dữ liệu Excel từ SQL Server mà không cần Power Query?

Hàn Thịnh Xuyến 09/06/2026 08:58 179 lượt xem 2 trả lời

Chào các anh em trong diễn đàn,

Dạo này mình đang làm việc với một hệ thống dùng SQL Server để lưu trữ dữ liệu. Thông thường, mình hay dùng Power Query để kết nối và lấy dữ liệu vào Excel, cũng khá tiện. Tuy nhiên, gần đây mình có một yêu cầu là làm sao để tự động cập nhật dữ liệu từ SQL Server vào Excel mà không cần mở Power Query, tức là file Excel có thể tự động load dữ liệu mới khi mở lên hoặc theo một lịch trình nhất định.

Mình đã thử tìm hiểu qua VBA nhưng chưa có kinh nghiệm nhiều về việc kết nối trực tiếp đến cơ sở dữ liệu SQL Server bằng VBA. Mình có xem qua một vài ví dụ về ADODB.Connection nhưng khá phức tạp.

Có anh em nào đã từng làm qua việc này chưa ạ? Xin chia sẻ kinh nghiệm hoặc một đoạn code mẫu để mình tham khảo với.

Mình đang tìm kiếm giải pháp cho các trường hợp sau:

  • Tự động kết nối đến SQL Server.
  • Thực thi một câu lệnh SQL để lấy dữ liệu.
  • Load dữ liệu vào một Sheet cụ thể trong file Excel.
  • Có thể thiết lập để tự động chạy khi mở file.

Cảm ơn mọi người đã đọc bài!

5

Chào bạn,

Về yêu cầu tự động lấy dữ liệu từ SQL Server vào Excel mà không cần mở Power Query, mình nghĩ bạn có thể cân nhắc dùng VBA kết hợp với ADO (ActiveX Data Objects). Đây là một phương pháp khá phổ biến để làm việc này.

Bạn có thể viết một đoạn code VBA để kết nối tới SQL Server, thực thi câu truy vấn bạn cần, sau đó đổ kết quả trực tiếp vào một sheet trong file Excel của bạn. Việc này có thể được kích hoạt khi mở file Excel (sử dụng sự kiện Workbook_Open) hoặc bạn có thể thiết lập một nút bấm để chạy thủ công.

Nếu bạn chưa quen với VBA và ADO, có thể tìm kiếm các ví dụ về "VBA ADO Excel SQL Server" sẽ có rất nhiều tài liệu hướng dẫn chi tiết.

Chúc bạn thành công!

2

Cảm ơn bạn đã chia sẻ cách dùng VBA kết hợp ADO nhé! Mình cũng đang tìm hiểu về phương pháp này.

Ngoài VBA, mình thấy có một số add-in của bên thứ ba hoặc các công cụ ETL chuyên dụng khác cũng có khả năng tự động hóa việc này. Tuy nhiên, nếu muốn giữ mọi thứ trong "nội bộ" Excel thì VBA có vẻ là lựa chọn tối ưu nhất.

Bạn có thể chia sẻ thêm về cách xử lý lỗi khi kết nối hoặc khi câu truy vấn trả về dữ liệu rỗng không? Cái này mình thấy khá quan trọng để đảm bảo file Excel luôn ổn định.

2

Bạn cần đăng nhập để trả lời chủ đề này.

Đăng nhập Đăng ký