2012-10-23 35 views
5

Chữ thập được đăng ở đây:Sử dụng biến để thêm lĩnh vực tham số

http://www.vbforums.com/showthread.php?696163-Use-variable-to-append-field-parameter&p=4264077#post4264077

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

Trả lời

0

Đây là một cắt-và-dán trực tiếp từ VBForums. Đây là một wiki cộng đồng và chỉ có ý định xóa câu hỏi này khỏi "không có câu trả lời". Nó có thể bị xóa hoặc sửa đổi khi thích hợp.


TỪ: http://www.vbforums.com/showthread.php?696163-Use-variable-to-append-field-parameter&p=4264077#post4264077

THEO: si_the_geek

Nó không phải là có thể, bạn chỉ có thể sử dụng các thông số để thiết lập giá trị, bạn không thể làm những việc khác với họ (ví dụ dưới dạng tên trường/bảng, hàm, v.v.).

Nếu bạn muốn thay đổi các phần khác của truy vấn, bạn sẽ cần sử dụng các phương pháp khác (chẳng hạn như xây dựng chuỗi). Trong ví dụ ở cuối bài đăng của bạn, bạn nên thêm nó vào chuỗi truy vấn và thêm các giá trị thông qua thông số.

Các vấn đề liên quan