2012-10-23 30 views
5

跨张贴在这里:使用可变附加字段参数

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

我使用ADO检索从MS Access到Excel中的数据,我想一个IIF语句添加到我的查询的SELECT部分。我的SQL字符串存储在一个文本文件中,并且通过ADO附加了任何参数。

我知道如何添加参数在WHERE子句中,甚至可以在SELECT语句这样的附加参数:

SELECT BA, Iif(QA=[@somestring],[@somestring2], [@somestring3]) 
FROM myData 
WHERE BA = 'some person' 

但是我想做到的是改造一个占位符[@somestring]为一个可变长度IIF语句,如:

SELECT BA, [@somestring]  

而且占位符转化为我所用内置函数的字符串:

Iif(QA='Jon Doe', 'Jon', Iif(QA='Jane Doe', 'Jane', 'Nobody')). 

现在,我得到的结果是我传递给填充整个字段的参数的文字字符串。因此,Iif语句是为每个记录逐字写出的,而不是由SQL进行评估。

正在尝试甚至做什么,或者SQL是否需要在初始命令中预定义Iif语句的Field?

即IIF(QA = [@ somestring],[@ sometstring2],[@ somestring3])

回答

0

这是一个从直切VBForums和粘贴。这是一个社区维基,只打算从“没有答案”中删除这个问题。它可以根据需要删除或修改。


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

BY:si_the_geek

这是不可能的,你只能用参数来设定值,则 不能做其他的事情与他们(例如作为字段/表格名称,功能, 等)。

如果你想改变查询的其他部分,你需要使用 其他方法(如建立字符串)。在 结尾处的示例中,您应该将其添加到查询字符串中,并通过参数添加值 。