我想将提示用户输入的单独查询合并为单个查询。在用户输入的IIF中的SQL
Q1提示用户输入9位数ITEM(PN):
SELECT
STUFF,
MORE_STUFF
FROM dbo_X
WHERE (RIGHT(dbo_X.ITEM, 9)=[PN:])
ORDER BY dbo_X.COMPONENT
Q2提示用户输入ItemDesc的一些部分(描述):
SELECT
STUFF,
MORE_STUFF
FROM dbo_X
WHERE dbo_x.ItemDesc LIKE '*'&[Description:]&'*'
ORDER BY dbo_X.COMPONENT
我的想法是使用I如果到根据用户输入执行单个WHERE语句:
SELECT
STUFF,
MORE_STUFF
FROM dbo_X
IIf ([Description{D}PartNumber{P}:]='D',
WHERE dbo_X.ItemDesc LIKE '*'&[Desc:]&'*',
WHERE (RIGHT(dbo_X.ITEM, 9)=[PN:]))
ORDER BY dbo_X.COMPONENT
当前不工作而不是s如果我有语法问题或正在尝试使用IIf /如果不正确。
试过了,但它仍然会提示所有3个输入。想要根据第一个输入'D'或'P'只提示1个Desc或PN。 (注意:在[PN]后删除第二个逗号) – cixelsyd
无论逻辑如何,要运行查询,Access引擎需要知道所有命名参数的值,因此需要全部三个提示。 – Parfait
@cixelsyd。 。 。 Parfait是正确的。 MS Access在查询的编译阶段提示输入值,而不是执行阶段。 –