Access 2010更新查询错误

时间:2012-07-30 17:24:13

标签: ms-access-2010

我正在尝试创建一个更新查询,该查询接受需要更新的值的参数。我的问题:

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只是一个布尔值,当所有控件都有数据时为true。错误是:

The object does not contain the Automation object "Drew"  

其中Drew是当前记录的FName值。第一个SetParameter命令发生此错误,我不知道问题或如何解决它。如果我在VBA代码之外提示,则查询按预期运行,但这是我需要的工作。

1 个答案:

答案 0 :(得分:0)

事实证明,我在http://social.msdn.microsoft.com/Forums/en-ZA/accessdev/thread/8538bd05-abc3-4cad-b284-bcbf7fa3dd69

找到了一个非常不直观的解决方案

当处理字符串参数时,DoCmd.Parameter“para”,“”“& Me.txtName& “”“”

我不知道为什么它需要四个双引号和一个&但确实如此。