Code lọc dữ liệu lỗi ở Where .. and

Chia sẻ bởi:hands
★★★★★
Quảng cáo
[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

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 ) thì phải bạn à?

"FROM [Cong$B8:W65000]" & _
"Where F16 " & ">0" & _
"' And like '" & TangKa.Range("H16").Value

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 '

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 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

Bạn chơi cái này thử xem:

With adoRS.ActiveConnection = adoConn
.Open "SELECT F1,F2,F4,F16,F17,F18,F22 FROM [Cong$B8:W65000] Where >0 AND like '" & TangKa.Range("H16").Value & "'"
End With

www.giaiphapexcel.com/diendan/threads/code-l%E1%BB%8Dc-d%E1%BB%AF-li%E1%BB%87u-l%E1%BB%97i-%E1%BB%9F-where-and.108465/

Khóa học Power PI – Ứng dung trong Nhân sự
Khóa học SprinGO phù hợp

Khóa học Power PI – Ứng dung trong Nhân sự

TỔNG QUAN KHÓA HỌC: POWER BI CHO NGÀNH NHÂN SỰ Khóa học Power BI cho Nhân sự được thiết kế dành riêng cho các...

Xem khóa học
★★★★★ 5 ★ 1 👤 0 ▥ 0
Quảng cáo

Bạn nên đọc

Leave a Reply

Your email address will not be published. Required fields are marked *

Quảng cáo

Cũ vẫn chất

Xem thêm