Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Форма для задания периода никак не хочет работать... / 25 сообщений из 27, страница 1 из 2
28.11.2003, 14:46
    #32337866
Rimbombo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма для задания периода никак не хочет работать...
Есть запрос, выдающий количество готовых договоров по районам за период:
Код: plaintext
1.
2.
3.
4.
SELECT [Контроль договоров].№района, Count([Контроль договоров].№района) AS [Count-№района]
FROM Сотрудники INNER JOIN [Контроль договоров] ON Сотрудники.№сотр = [Контроль договоров].№сотр
WHERE ((([Контроль договоров].[Договор оформлен]) Is Not Null
And ([Контроль договоров].[Договор оформлен]) Between [Forms]![Даты]![НачальнаяДата] And [Forms]![Даты]![КонечнаяДата])
GROUP BY [Контроль договоров].№района;


На его основе создан соот. отчет РайоныДата куда это все выводится + поля, где =[НачальнаяДата] и =[КонечнаяДата]
Свойства:
Открытие
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Private Sub Report_Open(Cancel As Integer)
' Открытие формы "Даты".
' Функция IsLoaded (из модуля  "Служебные функции" ) определяет,
' открыта ли конкретная форма.
    
    Dim strDocName As String

    strDocName = "Даты"
    ' Задание для общей переменной значения True, чтобы
    ' сообщить форме, что для отчета выполняется событие
    '  "Открытие"  (Open).
    blnOpening = True
    
    ' Открытие формы.
    DoCmd.OpenForm strDocName, , , , , acDialog
    
    ' Если форма не загружена, невозможен просмотр или печать отчета.
    ' (Пользователь нажал в форме кнопку "Отмена".)
    If IsLoaded(strDocName) = False Then Cancel = True
    
    ' Задание для общей (public) переменной значения False,
    ' указывающее, что событие  "Открытие"  (Open) завершено.
    blnOpening = False
End Sub


Закрытие
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Private Sub Report_Close()
' Закрывает форму  "ПоискДата" .

    Dim strDocName As String

    strDocName =  "ПоискДата" 

    DoCmd.Close acForm, strDocName

End Sub


И есть форма Даты, где есть 2 поля в именах которых прописано соот. НачальнаяДата и Конечная дата
по кнопке ОК происходит:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
Private Sub Кнопка5_Click()
On Error GoTo Err_Кнопка5_Click

    Dim strMsg As String, strTitle As String
    Dim intStyle As Integer
    
    ' Если отчет о РайоныДата не был открыт для просмотра или печати,
    ' возникает ошибка. (Переменная blnOpening имеет значение True, только если
    ' для отчета произошло событие Open.)
    If Not Reports![РайоныДата].blnOpening Then Err.Raise 0
    
    ' Скрытие формы.
    Me.Visible = False

Exit_OK_Click:
    Exit Sub

Err_Кнопка5_Click:
    strMsg =  "По ходу дела еще какую-н фигню нужно доработать! Удачи!" 
    intStyle = vbOKOnly
    strTitle =  "ВНИМАНИЕ!!! Подкрался северный пушной зверек!" 

    MsgBox strMsg, intStyle, strTitle
    Resume Exit_Кнопка5_Click

End Sub

На текст Msg не обращайте внимание это для поднятия настроения, - потом уберу!
Модуль "Служебные функции" есть
Подскажите, пожалуйста, что именно здесь неправильно? Что нужно поправить чтобы все заработало? Т.е по запуску отчета выскакивала форма Даты, куда вписываются 2 даты, жмется оки оттбор записей в отчете соот. по заданному периоду.
...
Рейтинг: 0 / 0
28.11.2003, 14:58
    #32337884
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма для задания периода никак не хочет работать...
А что именно не работает?
...
Рейтинг: 0 / 0
28.11.2003, 14:58
    #32337885
Rimbombo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма для задания периода никак не хочет работать...
в закрытии естественно Даты - не тот кусок кода копирнул...
...
Рейтинг: 0 / 0
28.11.2003, 15:00
    #32337892
Rimbombo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма для задания периода никак не хочет работать...
2 Владимир Саныч
Не запускается отчет, где выводятся данные за требуемый период.
Соот. врубается обработчик ошибок и выскакивает меседж
...
Рейтинг: 0 / 0
28.11.2003, 15:02
    #32337893
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма для задания периода никак не хочет работать...
Я не вижу, где сама команда, которая открывает отчет.
...
Рейтинг: 0 / 0
28.11.2003, 15:08
    #32337906
Rimbombo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма для задания периода никак не хочет работать...
вот кусок кода из Борея, на основе которого я все делал и там отчет запускается!
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Private Sub Report_Open(Cancel As Integer)
' Открытие формы "Продажи по годам".
' Функция IsLoaded (из модуля  "Служебные функции" ) определяет,
' открыта ли конкретная форма.
    
    Dim strDocName As String

    strDocName = "Продажи по годам"
    ' Задание для общей переменной значения True, чтобы
    ' сообщить форме, что для отчета выполняется событие
    '  "Открытие"  (Open).
    blnOpening = True
    
    ' Открытие формы.
    DoCmd.OpenForm strDocName, , , , , acDialog
    
    ' Если форма не загружена, невозможен просмотр или печать отчета.
    ' (Пользователь нажал в форме кнопку "Отмена".)
    If IsLoaded(strDocName) = False Then Cancel = True
    
    ' Задание для общей (public) переменной значения False,
    ' указывающее, что событие  "Открытие"  (Open) завершено.
    blnOpening 
= False
End Sub
...
Рейтинг: 0 / 0
28.11.2003, 15:11
    #32337909
Rimbombo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма для задания периода никак не хочет работать...
Т.е сначала запускается двойным кликов или из под кнопки отчет, во время его открыти выскакивает форма Даты куда вписываются даты, жмется ОК отчет открывается, а форма с датами закрывается, в Закрытие формы все в порядке т.к в 1 сабджекте я не тот кусок кода поставил
...
Рейтинг: 0 / 0
28.11.2003, 15:22
    #32337931
Rimbombo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма для задания периода никак не хочет работать...
перепроверил кнопки вроде все правильно, но все равно пахать не хочет!
...
Рейтинг: 0 / 0
28.11.2003, 16:35
    #32338034
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма для задания периода никак не хочет работать...
для проверки в чем проблема обычно пользуются пошаговым режимом отладки.

а твоя проблема вот в чем:

' Открытие формы.
DoCmd.OpenForm strDocName, , , , , acDialog - после такого открытия данный код прервет выполнение до того пока ты не закроешь диалоговую форму


If IsLoaded(strDocName) = False Then Cancel = True - если код дошел до этого места то форма уже закрыта
...
Рейтинг: 0 / 0
28.11.2003, 16:42
    #32338044
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма для задания периода никак не хочет работать...
2 АлексейК

DoCmd.OpenForm strDocName, , , , , acDialog - после такого открытия данный код прервет выполнение до того пока ты не закроешь диалоговую форму
Или невидима!

If IsLoaded(strDocName) = False Then Cancel = True - если код дошел до этого места то форма уже закрыта
Или невидима!
...
Рейтинг: 0 / 0
28.11.2003, 16:47
    #32338051
Rimbombo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма для задания периода никак не хочет работать...
что то не догнал...
кнопку на форме поиска я еще не сделал, шут с ней, запускаю отчет из окна базы.
открывается не отчет, а форма Даты, туда вводятся НачальнаяДата и КонечнаяДата в соот. поля, нажимаем кнопку Ок и вуаля - отчет открылся в нужном периоде. В Борее работает именно так.
Я скопировал код из Борея один к одном, поменял названия в коде везде вроде бы и в отчете и в форме...
Дык, почему в Борее то работает?
...
Рейтинг: 0 / 0
28.11.2003, 16:49
    #32338054
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма для задания периода никак не хочет работать...
Владимир Саныч давным давно писал:Я не вижу, где сама команда, которая открывает отчет.
Вот и я не вижу.
...
Рейтинг: 0 / 0
28.11.2003, 16:54
    #32338059
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма для задания периода никак не хочет работать...
DoCmd.OpenForm strDocName, , , , , acDialog - после такого открытия данный код прервет выполнение до того пока ты не закроешь диалоговую форму !!!!
<здесь код остановился и продолжится после закрытия диалога>

If IsLoaded(strDocName) = False Then Cancel = True - если код дошел до этого места то форма уже закрыта

форма на этот момент именно закрыта потамушта она ДИАЛОГ а ДИАЛОГ -МОДАЛНЬНЫЙ и НЕАСИНХРОННЫЙ так же как MSGBOX "" пока его не закроешь - код останавливается..

или я что то не так понимаю ????
...
Рейтинг: 0 / 0
28.11.2003, 16:56
    #32338066
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма для задания периода никак не хочет работать...
да у него отчет окрывается вручную, после загрузки запускается форма параметров, после выгрузки формы отчетпроверяет что форма закрыта и выгружается
...
Рейтинг: 0 / 0
28.11.2003, 17:01
    #32338075
Rimbombo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма для задания периода никак не хочет работать...
вернее должен выгружаться (как в Борее), но фиг выгружается...
щелкаю по отчету, а открываться должна форма! Она и открывается, вношу даты, а этот гад запускает дальше не отчет с закрытием формы, а обработчик ошибок! Для примера зайдите в Борей Продажи по годам форма запускается при запуске отчета...
...
Рейтинг: 0 / 0
28.11.2003, 17:04
    #32338080
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма для задания периода никак не хочет работать...
АлексейК писал:или я что то не так понимаю ????
Именно так. То есть не так. То есть понимаешь ты не так. Ну ты меня понимаешь.
Я красным цветом в своем посте выделил то, что ты недо понимаешь

У Римбомбо в форме "Даты" стоит именно
Код: plaintext
1.
    ' Скрытие формы.
    Me.Visible = False

после которого код пойдет дальше.
Или как ты себе это представляешь? Модальную форму похайдили - и все?
Код дальше не идет патамушта модальная форма открыта, а закрыть ее руками не получится патамушта ее невозможно увидеть глазами?
...
Рейтинг: 0 / 0
28.11.2003, 17:05
    #32338081
Rimbombo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма для задания периода никак не хочет работать...
Вот кстати, модуль Служебные функции из Борея, поставил его себе:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Function IsLoaded(ByVal strFormName As String) As Boolean
 ' Возвращает значения True, если форма открыта в режиме формы или таблицы.
    
    Const conObjStateClosed =  0 
    Const conDesignView =  0 
    
    If SysCmd(acSysCmdGetObjectState, acForm, strFormName) <> conObjStateClosed Then
        If Forms(strFormName).CurrentView <> conDesignView Then
            IsLoaded = True
        End If
    End If
    
End Function
...
Рейтинг: 0 / 0
28.11.2003, 17:09
    #32338088
Rimbombo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма для задания периода никак не хочет работать...
2 ЛП
В свете твоего/вашего (можно на ты?) последнего ответа вопрос: какой кусок кода и куда поставить, чтобы он не переходил к обработчику ошибок, а работал...?
...
Рейтинг: 0 / 0
28.11.2003, 17:18
    #32338103
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма для задания периода никак не хочет работать...
2 Rimbombo
Так ты пальцем ткни в строку, с которой он в обработчик ошибок сваливается.
А то это... я хоть из отпуска и вышел, но телепяты еще в отпуске.
...
Рейтинг: 0 / 0
28.11.2003, 17:22
    #32338109
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма для задания периода никак не хочет работать...
А, я понял. Это видимо строка
Код: plaintext
    If Not Reports![РайоныДата].blnOpening Then Err.Raise  0 

А зачем она нужна???
В отчете на посреди события Open открываешь модальную форму, которая закрывается (хайдится) только по нажатию Кнопки5, а при нажатии кнопки5 проверяешь, доработало ли до конца событие Open у отчета? Да разумеется не доработало, у тебя ж эта же форма его и тормозит!
...
Рейтинг: 0 / 0
28.11.2003, 17:33
    #32338125
Rimbombo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма для задания периода никак не хочет работать...
2 ЛП
А ведь заработало!!! Странно, на кой эта строка была в Борее? Ну да это фиг с ним.
Изв. за подгрузку! Я ведь в этом отчете добавил 2 поля где написал =[НачальнаяДата] и =[КонечнаяДата]
дык, перед открытием отчета он меня просит эти даты еще раз ввести! Как сделать, чтобы он их прямо из формы Даты брал? Я же их туда ввел, а дважды даты вводить это же извращение!
...
Рейтинг: 0 / 0
28.11.2003, 17:43
    #32338134
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма для задания периода никак не хочет работать...
А ты эти контролы сделай свободными, а значения в них пихай после на том же самом событии Open. Бери их, соответственно, из формы "Даты".
Что-нить типа такого:
Код: plaintext
1.
2.
3.
4.
5.
If IsLoaded(strDocName) = False Then 
    Cancel = True
Else
    Me![НачальнаяДата].value = Forms![Даты]![НачальнаяДата]
    Me![КонечнаяДата].value = Forms![Даты]![КонечнаяДата]
End If
...
Рейтинг: 0 / 0
28.11.2003, 18:15
    #32338171
Rimbombo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма для задания периода никак не хочет работать...
Поставил так. Без Else - ругается на него потому как:

If IsLoaded(strDocName) = False Then Cancel = True

Me![НачальнаяДата].Value = Forms![Даты]![НачальнаяДата]
Me![КонечнаяДата].Value = Forms![Даты]![КонечнаяДата]
' Задание для общей (public) переменной значения False,
' указывающее, что событие "Открытие" (Open) завершено.
blnOpening = False

Добавил в отчет 2 свободных поля вписал в имя НачальнаяДата и соот. КонечнаяДата не схавал, написал =НачальнаяДата и соот. =КонечнаяДата тоже не схавал, написал =[НачальнаяДата] и соот. =[КонечнаяДата] и этим не доволен. Пишет, что не удается найти поле Начальная дата в указанном выражении... Может быть я не туда вписываю?
...
Рейтинг: 0 / 0
28.11.2003, 19:18
    #32338223
Rimbombo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма для задания периода никак не хочет работать...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
If IsLoaded(strDocName) = False Then Cancel = True
    
    
    Me![НачальнаяДата].Value = Forms![Даты]![НачальнаяДата]
    Me![КонечнаяДата].Value = Forms![Даты]![КонечнаяДата]
    
    ' Задание для общей (public) переменной значения False,
    ' указывающее, что событие  "Открытие"  (Open) завершено.
    blnOpening = False

В контролах в имени написал соот. НачальнаяДата и КонечнаяДата
Пишет невозможно присвоить значение объекту!
...
Рейтинг: 0 / 0
28.11.2003, 19:35
    #32338239
Rimbombo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма для задания периода никак не хочет работать...
это тоже не хавает
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
If IsLoaded(strDocName) = False Then Cancel = True
    
    
    Reports![РайоныДата]![НачальнаяДата].Value = Forms![Даты]![НачальнаяДата]
    Reports![РайоныДата]![КонечнаяДата].Value = Forms![Даты]![КонечнаяДата]
    
    ' Задание для общей (public) переменной значения False,
    ' указывающее, что событие  "Открытие"  (Open) завершено.
    blnOpening = False
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Форма для задания периода никак не хочет работать... / 25 сообщений из 27, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]