【问题标题】:MS Access VBA - Variable not defined error when variables have been declaredMS Access VBA - 声明变量时变量未定义错误
【发布时间】:2015-07-06 19:02:03
【问题描述】:

我创建了一个包含一些字段的表单,我想使用变量将这些字段转移到新表单。表单代码的设置是“选项比较数据库”和“选项显式”。我在下面声明了四个公共变量,如下所示:

Option Compare Database
Option Explicit
Public LnNum As Long
Public InvLnNum As String
Public Inv As String
Public DefID As Long

再往下是打开表单的代码。我在第一个表单上设置了一个按钮,当它打开时,我希望将一些字段复制到新表单(这些字段具有相同的名称)。这是该特定事件的代码:

Private Sub cmdNewDefect_Click()

LnNum = Me.LoanNumber.Value
InvLnNum = Me.InvestorLoanNumber.Value
Inv = Me.Investor.Value
DefID = Me.ID.Value

DoCmd.OpenForm "frmInvestorDefects"
DoCmd.GoToRecord acDataForm, "frmInvestorDefects", acNewRec
Form_frmInvestorDefects.LoanNumber.Value = LnNum
Form_frmInvestorDefects.InvestorLoanNumber.Value = InvLnNum
Form_frmInvestorDefects.Investor.Value = Inv
Form_frmInvestorDefects.ID.Value = DefID

End Sub

当我单击按钮时,我收到错误消息“编译错误:未定义变量。”我有另一个数据库,其中包含多个表单,这些表单可以完成我希望此表单毫无问题地完成的事情。代码完全相同,只是事件发生在 After Update 事件而不是 On Click 上,所以我很难过。我尝试使用 Dim 语句而不是 Public 将变量声明移动到实际的子过程中,但这也不起作用。我在想有一个设置或我忘记的东西。提前致谢!

【问题讨论】:

    标签: ms-access vba


    【解决方案1】:

    如果您打开的表格是:“frmInvestorDefects” 然后试试:

    frmInvestorDefects.LoanNumber.Value = LnNum
    

    不确定为什么需要“Form_”前缀...
    也不知道为什么需要 .Value 部分

    frmInvestorDefects.LoanNumber = LnNum 
    

    [frmInvestorDefects].[LoanNumber] = LnNum
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-14
      相关资源
      最近更新 更多