2016-09-01 83 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