Code SQL trên Excel

hoahuongduong1986

Thành viên thường trực
Tham gia ngày
14 Tháng mười một 2018
Bài viết
254
Được thích
19
Điểm
185
Tuổi
33
Dear Anh chị

Em có Code VBA chạy SQL như sau:
sql = "SELECT 1 AS [STT],[Tháng],[PS No],[PS Co] FROM RangeName WHERE [TK]='1014'"

Chỗ điều kiện WHERE [TK]='1014' giờ em muốn linh động TK = 1014 thành bất kỳ tại ô A1 tại Sheet1 thì em viết lại thế nào ạ. Tức em chọn A1 thì nó tự hiểu ạ. Em thử làm thế này mà không được

sql = "SELECT 1 AS [STT],[Tháng],[PS No],[PS Co] FROM RangeName WHERE [TK]='Sheet1.Range("A1").Value'"
 

snow25

Thành viên gắn bó
Tham gia ngày
24 Tháng bảy 2018
Bài viết
2,718
Được thích
2,669
Điểm
360
Dear Anh chị

Em có Code VBA chạy SQL như sau:
sql = "SELECT 1 AS [STT],[Tháng],[PS No],[PS Co] FROM RangeName WHERE [TK]='1014'"

Chỗ điều kiện WHERE [TK]='1014' giờ em muốn linh động TK = 1014 thành bất kỳ tại ô A1 tại Sheet1 thì em viết lại thế nào ạ. Tức em chọn A1 thì nó tự hiểu ạ. Em thử làm thế này mà không được

sql = "SELECT 1 AS [STT],[Tháng],[PS No],[PS Co] FROM RangeName WHERE [TK]='Sheet1.Range("A1").Value'"
Bạn thử thế này xem.
Mã:
Sql = "SELECT 1 AS [STT],[Tháng],[PS No],[PS Co] FROM RangeName WHERE [TK]=' " & Sheet1.Range("A1").Value & "'"
 

giaiphap

==(^o^)==
Tham gia ngày
12 Tháng ba 2007
Bài viết
5,238
Được thích
4,877
Điểm
860
Dear Anh chị

Em có Code VBA chạy SQL như sau:
sql = "SELECT 1 AS [STT],[Tháng],[PS No],[PS Co] FROM RangeName WHERE [TK]='1014'"

Chỗ điều kiện WHERE [TK]='1014' giờ em muốn linh động TK = 1014 thành bất kỳ tại ô A1 tại Sheet1 thì em viết lại thế nào ạ. Tức em chọn A1 thì nó tự hiểu ạ. Em thử làm thế này mà không được

sql = "SELECT 1 AS [STT],[Tháng],[PS No],[PS Co] FROM RangeName WHERE [TK]='Sheet1.Range("A1").Value'"
Thử thế này xem. sql = "SELECT 1 AS [STT],[Tháng],[PS No],[PS Co] FROM RangeName WHERE [TK]=" & Sheet1.Range("A1").Value
 

ongke0711

Thành viên tiêu biểu
Tham gia ngày
7 Tháng chín 2006
Bài viết
765
Được thích
880
Điểm
860
Nơi ở
HCM
sql = "SELECT 1 AS [STT],[Tháng],[PS No],[PS Co] FROM RangeName WHERE [TK]='Sheet1.Range("A1").Value'"
- Sao lại đặt tên cột có dấu tiếng Việt vậy?
- RangeName: là tham số truyền vào hay bạn đã đặt tên cái Range trong Sheet là "RangeName"?
- Truyền tham số theo cách bạn snow25 là đúng nếu [TK] có kiểu dữ liệu là TEXT, nếu dạng Number thì bỏ cặp nháy đơn như bạn giaiphap.
 

hoahuongduong1986

Thành viên thường trực
Tham gia ngày
14 Tháng mười một 2018
Bài viết
254
Được thích
19
Điểm
185
Tuổi
33
- Sao lại đặt tên cột có dấu tiếng Việt vậy?
- RangeName: là tham số truyền vào hay bạn đã đặt tên cái Range trong Sheet là "RangeName"?
- Truyền tham số theo cách bạn snow25 là đúng nếu [TK] có kiểu dữ liệu là TEXT, nếu dạng Number thì bỏ cặp nháy đơn như bạn giaiphap.
Da, TK của em nó dạng Text vì em xuất ra từ hệ thống kế toán ạ. Em đã thử
- sql = "SELECT 1 AS [STT],[Month],[PS No],[PS Co] FROM RangeName WHERE [TK]='1014'" => Ra kết quả
- sql = "SELECT 1 AS [STT],[Month],[PS No],[PS Co] FROM RangeName WHERE [TK]=" & Sheet8.Range("A1").Value
- sql = "SELECT 1 AS [STT],[Month],[PS No],[PS Co] FROM RangeName WHERE [TK]=' " & Sheet8.Range("A1").Value & "'"

Cách trực tiếp thì ra kêt quả ạ. Em thử cách 2 hoặc 3 đều khộng ra kết quả. Em thấy các anh trợ giúp rất hợp lý ạ mà thử nó không ra ạ.
 
Top Bottom