【问题标题】:MS ACCESS vba selectMS ACCESS vba 选择
【发布时间】:2016-03-14 18:54:54
【问题描述】:

我在 MS Access 中有一个表,其中包含我正在尝试选择的数据。该表中有一个用户 ID,因此我只是尝试选择具有特定用户 ID 的信息。我正在做的是将用户 ID 传递给访问中的表单,所以我希望能够在我的查询中引用 frm 字段。当我在下面运行这段代码时,它告诉我参数太少。

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

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

rCount = rs1.RecordCount

这里有什么问题

编辑 2

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

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

rCount = rs1.RecordCount

【问题讨论】:

  • numeric (int) 我将它从 sql server 拉到 Access(使用链接管理器),但我正在使用 Access
  • 谢谢,作为答案发布@hansup 抱歉 Jeeped 先做对了!
  • 不,他和你做对了,我在 tempTable 中有多个 UserID 的数据 - 我只需要为特定 ID 提取数据并编辑其中的一些。谢谢@HansUp

标签: sql ms-access select


【解决方案1】:

SELECT 语句必须是使用表单值的连接字符串。 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] & "';"

【讨论】:

  • 我把它放在引号中,但它给了我错误 3464“条件表达式中的数据类型不匹配”您可以在 EDIT 2 中看到我的查询是什么样的。谢谢
  • 你试过不带引号吗? VBA 认为 txtCLIENTID 是字符串还是 int 并不重要。重要的是字符串在 SQL SELECT 中被引用,而 int 没有。
  • 它使用单个“”实例来处理查询
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多