2016-03-14 224 views
1

我在MS Access中有一個表,我試圖選擇數據。該表中有一個用戶標識,所以我只是試圖選擇具有特定用戶標識的信息。我正在做的事情是將用戶ID傳遞給訪問中的窗體,所以我希望能夠在查詢中引用frm字段。當我在下面運行這個代碼時,它告訴我這些參數太少了。MS ACCESS vba select

dim rs1 as DAO.recordset 
strSQL = "Select * from [dbo_tempDetail] where [userID] = [Forms]![frmUserInfo]![txtCLIENTID];" 

Set rs1 = CurrentDb.OpenRecordset(strSQL, , dbOpenDynamic) 

rCount = rs1.RecordCount 

這裏有什麼問題

EDIT 2

strSQL = "Select * from [dbo_tempDetail] where userID = '" & [Forms]![frmUserInfo]![txtClientID] & "' " 

Set rs1 = CurrentDb.OpenRecordset(strSQL, , dbOpenDynamic) 

rCount = rs1.RecordCount 
+0

的[基於表單字段的查詢條件](http://stackoverflow.com/questions/21063326/query-criteria-based-on-form-field) – Duston

+0

數字(int)的我是可能的複製從SQL服務器拉到Access(與鏈接管理器),但我工作出Access – FatBoySlim7

+0

謝謝,發佈爲答案@ hansup對不起,Jeeped第一個得到它的權利! – FatBoySlim7

回答

4

SELECT語句必須是使用表格值(S)一個連接字符串。 VBA可能知道什麼是[Forms]![frmUserInfo]![txtCLIENTID],但是SELECT不。

strSQL = "Select * from [dbo_tempDetail] where [userID] = " & _ 
      [Forms]![frmUserInfo]![txtCLIENTID] & ";" 
'might have to quote the txtCLIENTID value 
strSQL = "Select * from [dbo_tempDetail] where [userID] = '" & _ 
      [Forms]![frmUserInfo]![txtCLIENTID] & "';" 
+0

我把它放在引號中,但它給了我錯誤3464「標準表達式中的數據類型不匹配」您可以在編輯2中看到我的查詢是什麼樣的。謝謝 – FatBoySlim7

+1

您是否嘗試過沒有引號?無論VBA認爲txtCLIENTID是字符串還是int。重要的是,字符串在SQL SELECT中被引用,而ints不會。 – Jeeped

+1

它正在使用「」查詢的單個實例 – FatBoySlim7