Обновление от 15.03.19 для добавления нового кода объявления в разделе общих объявлений:
Option Compare Database
' Access global variables definition
Global bInReportOpenEvent As Boolean
Option Explicit
Я получаю сообщение об ошибке:
"Выражение При открытии вы ввели в качестве свойства событияустановка привела к следующей ошибке: константы, строки фиксированной длины, массивы, определяемые пользователем типы и операторы Declare не допускаются в качестве членов Pubblic объектных модулей. "
Обновление 3/15/19 для добавления кода объявления.Тем не менее значение bInReportOpenEvent потеряно при вызове диалоговой формы.
Option Compare Database
Dim bInReportOpenEvent As Boolean
Function IsLoaded(strNme As String) As Boolean
IsLoaded = CurrentProject.AllForms(strNme).IsLoaded
End Function
Я создаю отчет о доступе, который вызывает диалоговую форму для запроса конкретной записи для отображения в отчете.В отчете в качестве источника записи используется запрос.Я устанавливаю глобальное поле в модуле «Открыть отчет», чтобы диалоговую форму нельзя было выполнить самостоятельно.Если вызывается диалоговая форма и глобальное поле, установленное в отчете, не задано, я хочу выйти с сообщением.Модуль "Открыть мой отчет" выглядит следующим образом:
Public Sub Report_Open(Cancel As Integer)
Dim outCome1 As String
' Set public variable to true to indicate that the report
' is in the Open event
bInReportOpenEvent = True
MsgBox (bInReportOpenEvent)
' Open Appt Query Dialog
DoCmd.OpenForm "craid CMM Client Report Dialog", , , , , acDialog
' Cancel Report if User Clicked the Cancel Button
If IsLoaded("craid CMM Client Report Dialog") = False Then Cancel = True
MsgBox ("Is Dialog Form Loaded?")
MsgBox (IsLoaded("craid CMM Client Report Dialog"))
'outCome1 = (Reports("CMM Client Status Report").Controls("googleoutcome").Value)
'MsgBox (outCome1)
' Set public variable to false to indicate that the
' Open event is completed
bInReportOpenEvent = False
End Sub
Моя форма, открытая для моей диалоговой формы, выглядит следующим образом:
Private Sub Form_Open(Cancel As Integer)
If Not bInReportOpenEvent Then
MsgBox ("In Not bInReportOpenEvent Logic")
MsgBox (bInReportOpenEvent)
' If we're not called from the report
MsgBox "For Use From CMM Client Status Report Only", _
vbOKOnly
Cancel = True
End If
End Sub
Есть идеи, почему?Любая помощь приветствуется.