Access 2010 更新查询错误
Posted
技术标签:
【中文标题】Access 2010 更新查询错误【英文标题】:Access 2010 Update Query Error 【发布时间】:2012-07-30 17:24:13 【问题描述】:我正在尝试创建一个更新查询,该查询接受需要更新的值的参数。我的查询:
PARAMETERS FirstName Text ( 255 ), LastName Text ( 255 ), AccessLevel Short;
UPDATE
tblUser SET tblUser.FName = [FirstName],
tblUser.LName = [LastName],
tblUser.AccessLevelID = [AccessLevel]
WHERE (((tblUser.UserID)=[Forms]![frmEditUser]![subfrmUsers].[Form]![UserID]));
当用户按下编辑按钮时,我的 VBA 代码运行:
If valid Then
DoCmd.SetParameter "FirstName", Forms!frmEditUser!txtFName
DoCmd.SetParameter "LastName", Forms!frmEditUser!txtLName
DoCmd.SetParameter "AccessLevel", Forms!frmEditUser!cmbAccessLevel
DoCmd.OpenQuery ("qryEditUserRecord")
MsgBox "Success: Record edits have been applied", _
vbOKOnly, "Record Edits Success"
Me.Refresh
End If
valid 只是一个布尔值,当所有控件都有数据时为真。错误是:
The object does not contain the Automation object "Drew"
其中 Drew 是当前记录的 FName 值。此错误发生在第一个 SetParameter 命令中,我不知道该问题或如何解决它。如果我在 VBA 代码之外提示,则查询会按预期运行,但这正是我需要这样做的。
【问题讨论】:
将子表单中的值更改为主表单中的值似乎是一个非常漫长而复杂的方法,我不明白您为什么要这样做。跨度> 【参考方案1】:原来我在这里找到了一个非常不直观的解决方案http://social.msdn.microsoft.com/Forums/en-ZA/accessdev/thread/8538bd05-abc3-4cad-b284-bcbf7fa3dd69
处理字符串参数时DoCmd.Parameter "para", """" & Me.txtName & """"
我不知道为什么它需要四个双引号和一个 & 但确实如此。
【讨论】:
您的查询没有用引号括住字符串参数(FName 和 LName)。这意味着您需要在参数中包含引号。您正在使用与号(VB/VBA 运算符)连接输入字符串周围的引号。当您在字符串中添加双引号时,您需要在 VB/VBA 中使用另一个双引号将它们转义。希望这是有道理的。以上是关于Access 2010 更新查询错误的主要内容,如果未能解决你的问题,请参考以下文章
使用 c# 和 oledb 查询更新 Ms-Access 2010 中的列值
是啥导致 Access 2010 中出现“在任何记录中未找到搜索键”错误?