kiến thức [Excel VBA] Thao tác với dữ liệu bằng công thức SQL trực tiếp trên sheet

sweet88

Senior Member
thím so sánh run time khi chạy SQL trên excel và chạy riêng ở ngoài dc ko ? Theo mình nghĩ chạy trong excel sẽ chậm hơn nhiều. vậy nên với data nặng thì chạy trực tiếp bằng SQL luôn cho tiện.
 

NguyenDang95

Senior Member
thím so sánh run time khi chạy SQL trên excel và chạy riêng ở ngoài dc ko ? Theo mình nghĩ chạy trong excel sẽ chậm hơn nhiều. vậy nên với data nặng thì chạy trực tiếp bằng SQL luôn cho tiện.
Mình chưa có điều kiện so sánh thực tế, nhưng về lý thuyết thì Excel sử dụng Microsoft Access Database Engine để xử lý truy vấn SQL (hay nói cách khác là Access SQL, người hay dùng Access và viết macro VBA nhúng vào form, report, ... thì sẽ quen với thằng này hơn) thì sẽ cho tốc độ xử lý kém hơn nhiều khi đưa dữ liệu vào và xử lý trực tiếp trên Microsoft SQL Server hay MySQL chẳng hạn. (Cái này chính Microsoft đã thừa nhận rồi)
Nếu dữ liệu quá lớn thì mình nghĩ theo ý kiến của thím là "chạy trực tiếp bằng SQL luôn cho tiện".
Thật ra, mình thấy trong điều kiện sử dụng bình thường, nếu thực hiện theo cách trong bài viết này thì cũng mang lại một số lợi ích (vd: thao tác trích lọc dữ liệu linh động, kết hợp hai hoặc nhiều vùng dữ liệu khác nhau trong bảng tính (join, left join, right join, self join chẳng hạn).
Vd:
 

anhyeuviolet

Đã tốn tiền
Với tình huống các giá trị tham chiếu đàng sau WHERE lấy từ các Cell thì sao bác @NguyenDang95 ?
62x2VFq.png
 

NguyenDang95

Senior Member
Với tình huống các giá trị tham chiếu đàng sau WHERE lấy từ các Cell thì sao bác @NguyenDang95 ?
62x2VFq.png
Macro trong bài viết này mình lấy tham số là một chuỗi hoàn chỉnh cho nên thím cần phải viết đầy đủ truy vấn SQL chứ không thể tham chiếu riêng mệnh đề WHERE đến các ô trong bảng tính được.
Thật ra có thể tinh chỉnh được macro theo nhu cầu của bác nhưng khi ấy sẽ rất rối và phức tạp. Thay vì vậy mình nghĩ thím nên viết một userform rồi viết macro xử lý rồi đưa kết quả ra bảng tính là ổn nhất.
Ở trang đầu có userform mẫu đó thím, thím có thể tham khảo xem thế nào nhé.
 

anhyeuviolet

Đã tốn tiền
Macro trong bài viết này mình lấy tham số là một chuỗi hoàn chỉnh cho nên thím cần phải viết đầy đủ truy vấn SQL chứ không thể tham chiếu riêng mệnh đề WHERE đến các ô trong bảng tính được.
Thật ra có thể tinh chỉnh được macro theo nhu cầu của bác nhưng khi ấy sẽ rất rối và phức tạp. Thay vì vậy mình nghĩ thím nên viết một userform rồi viết macro xử lý rồi đưa kết quả ra bảng tính là ổn nhất.
Ở trang đầu có userform mẫu đó thím, thím có thể tham khảo xem thế nào nhé.
Mình hiểu vấn đề rồi. Do mình muốn dùng thuần Sql để thử xử lý tình huống của mình xem sao, mà có vẻ chưa phù hợp. Cảm ơn bạn nhiều nhé.
 
Top