Access 2013:尝试使用表单中的数据填充文本框时收到错误消息“对象'_Recordset'的方法'打开'失败”
Posted
技术标签:
【中文标题】Access 2013:尝试使用表单中的数据填充文本框时收到错误消息“对象\'_Recordset\'的方法\'打开\'失败”【英文标题】:Access 2013: Getting error message "Method 'Open' of object' _Recordset' failed " when trying to populate text boxes with data in a formAccess 2013:尝试使用表单中的数据填充文本框时收到错误消息“对象'_Recordset'的方法'打开'失败” 【发布时间】:2013-11-27 18:32:02 【问题描述】:我对这段 VBA 代码有疑问。我正在尝试使用名为 Module 的表中的数据填充 Access 2013 中表单上的文本框。一旦用户从组合框中选择可用模块并单击名为“btnSelectmodule”的按钮,相关数据应输入文本框。相反,我得到了一个错误; "对象'_Recordset'的方法'打开'失败"
Private Sub btnSelectmodule_Click()
Dim strmoduleid As String
Dim rstmodule As New ADODB.Recordset
strmoduleid = CVar(cmbSelectmodule)
rstmodule.Open "SELECT Module.ModuleID, Module.ModuleName,
Module.ModuleShortCode, Module.Level, Module.Semester, Module.CATPoints,
Module.FacultyCode, Module.Active, Module.Type FROM [Module]
WHERE (((CVar([ModuleID]))='" & CVar(strmoduleid) & "'));",
CurrentProject.Connection, adOpenKeyset, adLockOptimistic
If (rstmodule("ModuleID") <> "") Then
txtmoduleid.Value = rstmodule("ModuleID")
txtmodulename.Value = rstmodule("ModuleName")
txtmoduleshortcode.Value = rstmodule("ModuleShortCode")
cmblevel.Value = rstmodule("Level")
cmbsemester.Value = rstmodule("Semester")
cmbcatpoints.Value = rstmodule("CATPoints")
Active.Value = rstmodule("Active")
txttype.Value = rstmodule("Type")
End If
End Sub
此代码在我的其他三个表单上完美运行。他们虽然从不同的表中填充数据。这个问题可能与被称为模块的表有关吗?因为我在 SQL 语句中使用了 [ ] 但仍然不高兴?任何帮助,将不胜感激。谢谢。
【问题讨论】:
【参考方案1】:在 SQL 字符串中,您需要:
a) 将您的表名更改为不是关键字
b) 用方括号将 SQL 中对 Module 的所有引用括起来
c) 使用别名:Select m.* FROM [Module] as m
d) 将您的表名更改为不是关键字。
【讨论】:
非常感谢。我遇到了这个问题,原来我的表名是导致所有这些问题的关键字。以上是关于Access 2013:尝试使用表单中的数据填充文本框时收到错误消息“对象'_Recordset'的方法'打开'失败”的主要内容,如果未能解决你的问题,请参考以下文章