MS ACCESS vba select

问题描述:

我在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://*.com/questions/21063326/query-criteria-based-on-form-field) – Duston

+0

数字(int)的我是可能的复制从SQL服务器拉到Access(与链接管理器),但我工作出Access – FatBoySlim7

+0

谢谢,发布为答案@ hansup对不起,Jeeped第一个得到它的权利! – FatBoySlim7

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