首页 > 解决方案 > 有没有我可以用来消除运行时错误的代码?

问题描述

在我的数据库(访问 2010)中,有一个“主菜单”表单,在从未绑定的文本框中搜索后,它会打开一个由事件表提供的事件表单。直到 2019 年 4 月 10 日的最新 Windows 更新之前,代码都可以完美地在事件表单中创建新记录。现在我收到运行时错误 2427(您输入了一个没有值的表达式)。应该对代码进行哪些更改以消除错误?

调试器在引用真/假控件的第一个 If 语句中的事件表单的 Private Sub Form Load() 中中断。

我试过没有运气1.将值更改为(真/假),2.添加我。到 if 语句的开头, 3. 从表单加载中完全删除 if 语句,并将焦点设置到表单上的另一个控件,以及 4. 使用之前在表单加载事件中的代码添加一个表单当前事件。

此代码关闭“主菜单”表单并以添加模式打开事件表单。

Private Sub cmdAddEvent_Click()
    cmdAddEvent.SetFocus
    cboEvent.Value = ""
    blnAddEvent = True
On Error GoTo Err_cmdAddEvent_Click
    DoCmd.Close

    ' wipe out event variables when finding or adding another event
    strSaveYearCode = "": strSaveProjectCode = "": strSaveActivityCode = "":strSaveProposalCode = ""
    g_strEventYear = "": g_strEventProject = "": g_strEventActivity = "": g_strEventProposal = ""
    ' end of wipe-out

    DoCmd.OpenForm "frmEvents", , , , acFormAdd
    'DoCmd.GoToRecord , , acNewRec

Exit_cmdAddEvent_Click:
    Exit Sub

Err_cmdAddEvent_Click:
    MsgBox Err.Description
    blnAddEvent = False
    Resume Exit_cmdAddEvent_Click
End Sub

这是在运行时错误出现之前调试器中断的事件表单中的代码。

Private Sub Form_Load()
    If proContentApprove = -1 Then ---This line
        proDescription.Locked = True
        proAudience1.Locked = True
    Else
        If proContentApprove = 0 Then
            proDescription.Locked = False
            proAudience1.Locked = False
        End If
    End If

当记录已经在源表中时,事件表单将毫无意外地打开。我希望事件表单在尝试添加新记录时也能像往常一样打开。

标签: vbams-accessruntime-error

解决方案


推荐阅读