我知道在使用Access(或一般的OleDb)时,以正确的顺序提供参数非常重要,即使您为它们命名,因为无论名称如何,它们总是被订单选中。
但是在此查询中:
SELECT Comments.ID, Users.Nom, CommentsHelpfulness.Helpful
FROM (Comments INNER JOIN Users
ON Comments.UserID = Users.ID)
LEFT JOIN CommentsHelpfulness
ON (CommentsHelpfulness.CommentID = Comments.ID
AND (CommentsHelpfulness.UserID = [enter userid]))
WHERE (Comments.GameID = [enter gameid])
为什么在提示我输入用户ID之前,Access会提示我输入gameid?事实证明,在我的asp.net网站上使用它,我还必须首先添加gameid。
如何实际确定订单,我必须在其中添加参数?我以为它只是从左到右。 (我不想知道如何更改订单,我真的只对如何确定订单感兴趣)
答案 0 :(得分:0)
OleDB确实忽略参数 names ,并且要求必须按照它们在SQL命令文本中出现的确切顺序声明参数。但是,当您从Access应用程序本身运行已保存的参数查询时,您使用OleDb 不;你(隐含地)使用DAO和DAO 注意参数名称。
因此,Access提示您输入参数的顺序严格取决于您或您的用户。如果要定义提示出现的特定顺序,可以使用如下的PARAMETERS子句:
PARAMETERS MinAccounts Long, SelectedPosition Text ( 255 );
SELECT Agents.*
FROM Agents
WHERE (((Agents.Position)=[SelectedPosition])
AND ((Agents.[Number of Accounts])>=[MinAccounts]));