Nina 13.07.2001 | Можно как-нибудь запретить вызов отчета? Отчет вызывается из формы. Можно как-нибудь запретить вызов отчета из отчетов? |
Nina 13.07.2001 | Подробнее Если форма не открыта отчет открываться не должен, т.к. из формы туда параметры передаются. Т.е. если пытаться открыть отчет не открывая формы, то отчет требует ввести параметры. Я пробовала завести какую-нибудь общую переменную, которая при открытии формы становится TRUE, а если не открыта FALSE. Потом на открытие отчета ее проверяю. Если FALSE отчет не открывать. Но почему-то ничего не выходит. Отчет все равно запрашивает параметры из формы. |
MonstrAccessa :)) 13.07.2001 | Re: Подробнее а ты перед открытием отчета смотри - загружена форма или нет напиши функцию например RepOpen(repnam,howopen) :)) и в ней проверяй! вот тебе функция :)) Public Function IsFormLoaded!(FrmName$) As Boolean Dim c As Object On Error GoTo errIsFormLoaded
'Для каждой из форм For Each c In Forms
'Проверяем открыта ли форма If c.name Like FrmName Then IsFormLoaded = True: Exit Function Next For Each c In Reports
'Проверяем для одноименного отчета If c.name Like FrmName Then IsFormLoaded = True: Exit Function
Next 'Если что-то не срослось - всё нафих... IsFormLoaded = False Exit Function errIsFormLoaded: MsgBox Err.Description IsFormLoaded = False Exit Function End Function
|
|
Nina 13.07.2001 | Поясните Что-то не совсем понимаю. В какой момент должна вызываться функция RepOpen(repnam,howopen)? Ведь если я из окна базы данных вызываю отчет(например двойн. щелчком мыши) происходит событие OpenReport! Как же перед открытием отчета смотреть открыта ли форма!? |
MonstrAccessa :)) 13.07.2001 | If Not IsFormLoaded("НУЖНАЯ ВАМ ФОРМА") Then Cancel = True
|
напишите это в отчете на событии OnOpen (Открытие) а саму функцию "затусуйте" в модуль |
ДиД 13.07.2001 | Вариант Возьмите функцию IsLoaded из примерной базы "Борей" вставьте себе в модуль (она в дальнейшем пригодится). Как сказано выше "запихните" варажение на событие OnOpen : If IsLoaded("НУЖНАЯ ВАМ ФОРМА") Then Else If MsgBox("Для открытия отчета необходимо задать параметры в форме 'Нужная Вам форма', vbCritical+vbOKOnly,"Ошибка!")=vbOK Then Cancel = True End If End If
|
|