Code lọc dữ liệu lỗi ở Where .. and (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Excel365

Thành viên tích cực
Tham gia
29/10/10
Bài viết
865
Được thích
127
Giới tính
Nam
[GPECODE=SQL][With adoRS .ActiveConnection = adoConn
.Open "SELECT F1,F2,F4,F16,F17,F18,F22 " & _
"FROM [Cong$B8:W65000]" & _
"Where F16 " & ">0" & _
"' And [F22] like '" & TangKa.Range("H16").Value
End With
[/GPECODE]
Nhờ các anh chị giúp em chỉnh sữa đoạn Code lọc dữ liệu bị lổi ở Where .. and
Trân trọng
 
Lần chỉnh sửa cuối:
[GPECODE=SQL][With adoRS .ActiveConnection = adoConn
.Open "SELECT F1,F2,F4,F16,F17,F18,F22 " & _
"FROM [Cong$B8:W65000]" & _
"Where F16 " & ">0" & _
"' And [F22] like '" & TangKa.Range("H16").Value
End With
[/GPECODE]
Nhờ các anh chị giúp em chỉnh sữa đoạn Code lọc dữ liệu bị lổi ở Where .. and
Trân trọng
Hình như có dấy nháy đơn lạc điệu (' And [F22]) thì phải bạn à?
 
Upvote 0
[GPECODE=SQL][With adoRS .ActiveConnection = adoConn
.Open "SELECT F1,F2,F4,F16,F17,F18,F22 " & _
"FROM [Cong$B8:W65000]" & _
"Where F16 " & ">0" & _
"' And [F22] like '" & TangKa.Range("H16").Value

End With
[/GPECODE]
Nhờ các anh chị giúp em chỉnh sữa đoạn Code lọc dữ liệu bị lổi ở Where .. and
Trân trọng

3 dòng sai hết
dòng 1 sai vì giữa tên bảng và từ khóa Where dòng 2 không có khoảng trắng
dòng 3 "' And là câu lệnh vô nghĩa . chỉ có thể là " And ( dư 1 dấu ')
kết thúc dòng 3 lại thiếu 1 dấu '
 
Upvote 0
Bạn chơi cái này thử xem:

PHP:
With adoRS.ActiveConnection = adoConn
.Open "SELECT F1,F2,F4,F16,F17,F18,F22 FROM [Cong$B8:W65000] Where [F16] >0 AND [F22] like '" & TangKa.Range("H16").Value & "'"
End With
 
Upvote 0
Cách viết SQL string để tránh lỗi:

1. Lúc ngắt câu để xuống hàng, luôn luôn chừa 1 dấu cách ở dòng kế

"SELECT F1,F2,F4,F16,F17,F18,F22 " & _
" FROM [Cong$B8:W65000]" & _
" Where F16 " & ">0" & _

Trước FROm và Where có dấu cách. Nhiều bạn dùng phương pháp đặt dấu cách ở cuối dòng trước, nhưng cách này dễ bị thiếu sót.
Đặt ở đầu dòng, nhin vào là thấy ngay.

2. Nếu câu lệnh có chứa nhiều tham số thì cũng sẽ dễ bị thiếu sót mấy cái chi tiết như dấu ", dấu ', ...
Vì vậy khi gặp câu lệnh nhiều tham số, ta viết nguyên một câu mẫu rồi dùng hàm replace. Chỉ hơi mất công một chút nhưng kiểm soát được nhiều lỗi, và ngwuowif đọc code cũng hiểu rõ cấu trúc của câu lệnh

strSQL = "SELECT F1,F2,F4,F16,F17,F18,F22 " & _ " FROM [Cong$B8:W65000]" & _
" Where F16 >0" & _
" And [F22] like '<tangca>'" ' đọc đến đây, người ta hiểu là được lọc theo tham số <tangca>
.Open Replace(strSQL, "<tangca>", TangKa.Range("H16").Value) ' đọc đến đây, người ta hiểu <tangca> là trtrị của TangKa
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom