2015-07-06 3 views
0

Я создал форму с некоторыми полями, которые я хочу передать в новую форму с использованием переменных. Параметры для кода формы: «Option Compare Database» и «Option Explicit». Я объявил четыре общедоступных переменных чуть ниже этого:MS Access VBA - переменная неопределенная ошибка при объявлении переменных

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 

Когда я нажимаю кнопку, я получаю сообщение об ошибке "Compile Error: Переменная не определена. У меня есть другая база данных с несколькими формами, которые делают то, что я хочу, чтобы эта форма делала без проблем. Код точно такой же, за исключением того, что событие происходит в событии After Update вместо On Click, поэтому я в тупике. Я попытался переместить объявления переменных в фактическую процедуру sub с инструкциями Dim вместо Public, но это тоже не сработает. Я думаю, что есть настроение или что-то, что я забываю. Заранее спасибо!

ответ

0

Если форма вы открываете это: «frmInvestorDefects» Тогда попробуйте:

frmInvestorDefects.LoanNumber.Value = LnNum 

Не знаю, почему требуется префикс «Form_» ...
Не уверен, почему часть .Value требуется либо

frmInvestorDefects.LoanNumber = LnNum 

или

[frmInvestorDefects].[LoanNumber] = LnNum