2016-03-15 5 views
0

Этот вопросMS Access формы маскарад

У меня есть предварительно существующий отчет, что мне нужно бежать, что относится к коду

Forms!frm_report1_selection!ddlState 

Я пытаюсь получить доступ к отчету от формы frm_report3, и поэтому Отчет не сможет найти запись, указанную выше.

Я могу переписать отчет, но он имеет около 30 подотчетов, что бы все должны быть скопированы и обновлены, чтобы найти формы! Frm_report3_selection! DdlState

Вопрос

Можно ли создать псевдонима (или маскарадная) переменная, чтобы установить значение форм! frm_report1_selection! ddlState при публикации от frm_report3_selection?

+0

Попробуйте создать Получить свойство в Report1 –

+0

Где указано значение поля? Не могли бы вы установить переменную в открытии отчета, которая указывает, какая форма открыла ее? Или вы могли бы открыть form_report1 в фоновом режиме одновременно? Существует несколько способов борьбы с этим, это зависит только от вашей настройки – GavinP

ответ

0

Настройте переменную в своем отчете и установите для нее значение формы, загружаемой при открытии отчета.

Используйте такую ​​функцию, чтобы увидеть, какая форма открыта;

Function IsFormLoaded(strForm As String) As Boolean 

Dim frm As Form 
Dim bln As Boolean 

For Each frm In Forms 
    If frm.Name = strForm Then 
     IsFormLoaded = True 
    End If 
Next 

End Function 

затем установите переменную в зависимости от того, который открыт при загрузке отчета

Dim ddlState as String 

If IsFormLoaded("frm_report1_selection") then 
    ddlState = Forms!frm_report1_selection!ddlState 
ElseIf IsFormLoaded("frm_report3_selection") then 
    ddlState = Forms!frm_report3_selection!ddlState 
End if 

Затем используйте переменную в отчете.

Смежные вопросы