2016-09-01 46 views
1

我在访问链接的SQL Server表,我通过用户输入使用SQL:在Access中继查询到SQL Server输入提示

WHERE (RIGHT(dbo.qryrptWhereUsed.ITEM, 9)=[INPUT_PROMPT:]) 

工作查询我想继续使用Access存储类似的简单查询需要用户输入,但希望通过直通查询直接访问SQL Server数据库,从而消除Access中的镜像表。

我该如何做到这一点?

+0

你不这样做,直接。使用SQL Server语法创建传递查询,然后将运行时参数应用于构建于其上的Access查询。或者,如果您确实希望将其限制嵌入到传递SQL中,则需要使用VBA修改传递查询的SQL。 – Beth

回答

1

您可以使用下面的代码:如果您运行报告

Dim strPrompt  As String 

    strPrompt = InputBox("Enter where used >") 

    With CurrentDb.QueryDefs("qryPass") 
    .SQL = "select * from dbo.qryWhereUsed where ITEM = '" & strPrompt & "'" 
    .Execute 
    End With 

,然后只是去:

Dim strPrompt  As String 

    strPrompt = InputBox("Enter where used >") 

    With CurrentDb.QueryDefs("qryPass") 
    .SQL = "select * from dbo.qryWhereUsed where ITEM = '" & strPrompt & "'" 
    End With 

    DoCmd.OpenReport "myreport", acViewPreview