在 ms access 2010 中将嵌入式宏转换为 vba 后,代码不再起作用

Posted

技术标签:

【中文标题】在 ms access 2010 中将嵌入式宏转换为 vba 后,代码不再起作用【英文标题】:Codes does not work anymore after converting embedded macros to vba in ms access 2010 【发布时间】:2014-03-07 12:45:26 【问题描述】:

我已在 ms access 2010 中将嵌入式宏转换为 VBA,但根本无法使用。举一个具体的例子。我使用向导制作了一个 添加记录 按钮,并且工作正常,但是在使用内置功能 Convert Form's Macros to Visual Basic 将其转换为 VBA 时,该按钮不会做任何事了。我实际上不知道自己做错了什么,因为我是 MS Access 2010 的新手。但我曾经在 MS Access 2007 中这样做过,而且它完美无缺。

有人可以告诉我我做错了什么吗?提前致谢。

这是 MS Access 2010 将宏转换为 VBA 后生成的代码

Private Sub cmd_AddRecord_Click()
    On Error GoTo cmd_AddRecord_Click_Err

    On Error Resume Next
    DoCmd.GoToRecord , "", acNewRec
    If (MacroError <> 0) Then
        Beep
        MsgBox MacroError.Description, vbOKOnly, ""
    End If

    cmd_AddRecord_Click_Exit:
    Exit Sub

    cmd_AddRecord_Click_Err:
    MsgBox Error$
    Resume cmd_AddRecord_Click_Exit
End Sub

【问题讨论】:

请显示一些代码。另外,您是否尝试过不转换任何内容? Office 2010 在很大程度上是向后兼容的(据我目前所知)。 感谢您的评论。由于某种原因,该按钮在将其转换为 vba 后实际上不会做任何事情。但是如果你查看代码,代码就在那里。 嗨,伯纳德,我刚刚尝试了你关于宏和转换为 vba 的问题。转换为宏的按钮不起作用,宏上的按钮起作用。 【参考方案1】:

确保按钮“OnClick”属性设置为[Event Procedure]。这可能是你的问题。

此外,这段代码在其自动生成的状态下非常复杂。试试这个:

Private Sub cmd_AddRecord_Click()
    On Error GoTo cmd_AddRecord_Click_Err

    DoCmd.GoToRecord , "", acNewRec


    Exit Sub

    cmd_AddRecord_Click_Err:
        Beep
        MsgBox err.Description, vbOKOnly, ""

End Sub

【讨论】:

谢谢。非常感谢。

以上是关于在 ms access 2010 中将嵌入式宏转换为 vba 后,代码不再起作用的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MS Access 2010 中将 ACCDB 转换为 MDB

MS Access 2010 宏生成器:父窗体上控件的 SetProperty

在 ms access 2010 中将查询结果插入表中

如何在拆分数据库中将表从前端链接到后端(MS Access 2010)

如何在 MS Access 的追加查询中将数据类型从文本转换为是/否?

在 MS Access 中触发