Chữ thập được đăng ở đây:Sử dụng biến để thêm lĩnh vực tham số
Tôi đang sử dụng ADO để lấy dữ liệu từ MS Access vào Excel, và tôi muốn thêm một tuyên bố IIF vào phần SELECT của truy vấn của tôi . Chuỗi SQL của tôi được lưu trữ trong một tệp văn bản và bất kỳ tham số nào đang được nối qua ADO.
Tôi biết làm thế nào để thêm vào thông số trong mệnh đề WHERE, và thậm chí có thể thêm vào thông số trong câu lệnh SELECT như sau:
SELECT BA, Iif(QA=[@somestring],[@somestring2], [@somestring3])
FROM myData
WHERE BA = 'some person'
Nhưng những gì tôi đang cố gắng để thực hiện là để biến đổi một placeholder [@somestring] thành một chiều dài thay đổi IIf tuyên bố, chẳng hạn như:
SELECT BA, [@somestring]
Và placeholder dịch thành một chuỗi tôi đã xây dựng được sử dụng một chức năng:
Iif(QA='Jon Doe', 'Jon', Iif(QA='Jane Doe', 'Jane', 'Nobody')).
Ngay bây giờ, kết quả tôi nhận được là chuỗi chữ tôi chuyển đến tham số điền vào toàn bộ trường. Vì vậy, câu lệnh IIF được viết ra theo nghĩa đen cho mỗi bản ghi, thay vì được đánh giá bởi SQL.
Là những gì tôi đang cố gắng làm thậm chí có thể, hay không SQL cần trường cho câu lệnh IIF được xác định trước trong lệnh ban đầu?
tức, IIF (QA = [@ someString], [@ sometstring2], [@ somestring3])