Làm thể nào để MS query trong Excel tự động thay đổi nguồn dữ liệu

Liên hệ QC

nmh_phocu

Thành viên mới
Tham gia
13/7/06
Bài viết
48
Được thích
1
Kính mong các bác chỉ giáo cho em chiêu này với:

Em có tạo 1 file excel trong đó em có sử dụng MS Query làm báo cáo cho file đó, dữ liệu nguồn là lấy từ một sheet trong đó, báo cáo sử dụng là sheet khác. Tất cả nguồn dữ liệu và báo cáo là trong 1 file excel. Tuy nhiên khi em copy file đó ra bất kỳ chỗ khác thì phần dữ liệu nguồn vẫn lấy là dữ liệu ở sheet ở file ở chỗ cũ. Muốn thay đổi thì em lại phải vào mục SQL trong MS Query để đổi lại nguồn lấy dữ liệu.

Các bác có thể giúp em cái cách mà khi làm hàm SQL trong MS Query để khi em copy file excel duy nhất đó ra chỗ khác thì nó thay đổi nguồn dữ liệu tự động theo chỗ mà em copy ra không.

Ví dụ:
Đây là SQL em đã có:
SELECT Ten_1.`Ten 1`, Ten_1.`Ten 2`
FROM `C:\Book1`.Ten_1 Ten_1

Nhưng nếu copy cái Book1 sang ổ D thì SQL không tự thay đổi thành:
SELECT Ten_1.`Ten 1`, Ten_1.`Ten 2`
FROM `D:\Book1`.Ten_1 Ten_1


Chân thành cảm ơn các bác!
 
Trong MS query đó có xác định đường dẫn tới file nguồn trong khai báo kết nối. Bạn gán đường dẫn này cho 1 biến và ta chỉ cần thay đổi biến là được. Tốt nhất ban Record lại quá trình tạo MS Query sau đó mở code ra xem nó làm thế nào.
 
Mình biết vậy, khi mình thay đổi chỗ của file excel thì mình lại phải vào để sửa lại nó, rất mất thời gian. rồi lại phải gán lại toàn bộ ms Query cho file mới. Mình nghĩ nếu có thể có cách nào đó mà mình chỉ cần làm một lần rồi mình copy đi chỗ nào thì SQL sẽ tự thay đổi thì sẽ nhanh chóng hơn rất nhiều. Như kiểu hàm excel đó, nó không quan trọng là file ở đâu, chỉ quan trọng là tên sheet thôi, hoặc khi bạn đổi tên sheet thì nó cũng tự động đổi theo.
 
Mục đích tham gia của mình là như vậy, các động cơ kết nối dữ liệu thường là cố định nhưng mới tài vận dụng của những người lập trình vẫn có thể tuỳ biến. Nhưng cấu trúc Folder phải có nguyên tắc nhất định.
Bạn tham khảo mình tuỳ biến đường dẫn ở đây. Bạn muóm chép nó đi đâu thì chép nhưng chỉ cần 3 file cùng thư mục.
 
Cảm ơn bạn nhưng không được rồi bạn à, khi mình copy thư mục đó đi chỗ khác và mình mở Book1 và thay đổi số liệu ở data trong thư mục đó thì khi cập nhật lại thì nó vẫn lấy nguồn dữ liệu là file data cũ
 
Bạn đặt 1 biến và gán giá trị là Thisworkbook.Filepath & Thisworkbook.name rồi thế vào chỗ From ...
 
đặt biến thế này:
Mã:
Dim Filename As String
FileName = Thisworkbook.Path & "\" & Thisworkbook.Name
SQLStr = "SELECT Ten_1.`Ten 1`, Ten_1.`Ten 2`
FROM `" & FileName & "`.Ten_1 Ten_1"
.....
 
đặt biến thế này:
Mã:
Dim Filename As String
FileName = Thisworkbook.Path & "\" & Thisworkbook.Name
SQLStr = "SELECT Ten_1.`Ten 1`, Ten_1.`Ten 2`
FROM `" & FileName & "`.Ten_1 Ten_1"
.....

Chết,thế cái này mình không biết gì rồi, mình đang trong giai đoạn mò mẫm thấy cái MS query hay nhưng bị lỗi kia nên chưa biết cách khắc phục chứ nhìn cách đặt biến như thế này thì đúng là chả biết nó là cái gì, bạn có thể giải thích cho mình kỹ được không , hay tìm một đường dẫn về cái nơi dậy học đặt biến
 
Theo mình bài của Ptm khá rõ ràng cho người mới học, nếu bạn chưa biết thì cần tham khảo kỹ hơn. Ngay việc tạo File Report cho 1 tệp nguồn cũng là hạ sách. Người ta chỉ cần tạo 1 file Report thôi còn dùng biến năm thay đổi là ta đã đổi nguồn và lập báo cáo cho các năm khác nhau.
 
Web KT
Back
Top Bottom