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 语句的字段?

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

4

1 回答 1

0

这是来自 VBForums 的直接剪切和粘贴。它是一个社区 wiki,只打算从“没有答案”中删除这个问题。可酌情删除或修改。


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

BY: si_the_geek

这是不可能的,你只能使用参数来设置值,你不能用它们做其他事情(比如字段/表名、函数等)。

如果要更改查询的其他部分,则需要使用其他方法(例如字符串构建)。在帖子末尾的示例中,您应该将其添加到查询字符串中,并通过参数添加值。

于 2012-11-01T12:32:34.230 回答