在子例程之后,访问VBA变量似乎不清楚,获取过程声明不匹配

时间:2015-03-25 15:57:26

标签: ms-access access-vba

我有一个生产团队用于执行审核的数据库。它包含一系列问题,如果答案是“否”,则大多数问题都需要输入例外。他们目前正在使用组合框完全更新这些字段。我正在尝试对其进行编程,以便在每次回答之后,基于该回答始终相同的异常部分不必更新。我已经开始声明变量(在子例程和顶部都作为公共变量)。我的思维过程是,每次他们回答问题时,都会针对该特定问题声明变量,弹出窗口将根据这些变量填充。我的代码按预期工作,直到我尝试将相同的代码添加到更改变量的不同问题。有一些变量总是相同的,但我并不担心清理它们。我的代码如下:

Option Compare Database
Option Explicit
Public LnNum As Long
Public PCID As Long
Public QCID As String
Public Cat As String
Public ExcDesc As String

Private Sub QCSP15_AfterUpdate()

LnNum = Me.Loan_Number.Value
PCID = Me.PreCloseID.Value
QCID = "QCSP15"
Cat = "Preliminary Application"
ExcDesc = "The initial 1003 was not found in the file."

    If Form_frmPreCloseAudit.QCSP15.Value = "No" Then
        DoCmd.OpenForm "frmTestExceptions"
        DoCmd.GoToRecord acDataForm, "frmTestExceptions", acNewRec
        Form_frmTestExceptions.Loan_Number.Value = LnNum
        Form_frmTestExceptions.PreClose_ID.Value = PCID
        Form_frmTestExceptions.QCSPID = QCID
        Form_frmTestExceptions.QCSP_Category.Value = Cat
        Form_frmTestExceptions.Exception_Text.Value = ExcDesc
    Else
        DoCmd.GoToControl "QCSP160"
    End If

End Sub

Private Sub QCSP154_AfterUpdate(Cancel As Integer)

LnNum = Me.Loan_Number.Value
PCID = Me.PreCloseID.Value
QCID = "QCSP154"
Cat = "Preliminary Application"
ExcDesc = "The DocuSign Certificate of Completion for the initial disclosure package was not uploaded to Doc V."      

     If Form_frmPreCloseAudit.QCSP154.Value = "No" Then
        DoCmd.OpenForm "frmTestExceptions"
        DoCmd.GoToRecord acDataForm, "frmTestExceptions", acNewRec
        Form_frmTestExceptions.Loan_Number.Value = LnNum
        Form_frmTestExceptions.PreClose_ID.Value = PCID
        Form_frmTestExceptions.QCSPID = QCID
        Form_frmTestExceptions.QCSP_Category.Value = Cat
        Form_frmTestExceptions.Exception_Text.Value = ExcDesc
     Else
        DoCmd.GoToControl "QCSP161"
     End If
End Sub

我添加第二个“更新后”'对于下一个问题的子程序,我得到的程序声明不匹配错误。我已经尝试将变量命名为不同的东西,但似乎没有任何工作,并且可能超出了我的能力,无法成为新手。

1 个答案:

答案 0 :(得分:0)

更新后事件不支持

Cancel As Integer。从声明中删除它:

'Private Sub QCSP154_AfterUpdate(Cancel As Integer)
Private Sub QCSP154_AfterUpdate()

通过让Access启动您使用事件过程的代码存根来避免将来出现此问题。从属性表的事件选项卡中执行此操作。找到所需的事件,然后单击相邻输入框最右侧的3点图标。