Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Событие Current формы вызываеться происходит 2(!) раза.  [new]
Рачаев Олег
Member

Откуда: Самара
Сообщений: 115
Всем привет.

Форма на основе таблицы без подчиненных. Код:

    Private Sub Form_Load()
        Call utils.toLastRecord(Me)
        isCurrentFormDone = False
    End Sub

Private Sub Form_Current()
    If Not isCurrentFormDone Then
        If Not Me.NewRecord Then
            If Not IsNull(Me!geo_id) Then
                geo_plasts.RowSource = utils.plastIdsListToPlastNamesList(geo_plasts, MULTI_SEQ_SEPARATOR)
            End If
            geo_plasts = geo_plasts.RowSource
            Call calculateWaterComponents
        Else
            geo_plasts.RowSource = ""
        End If
        isCurrentFormDone = True
    End If
End Sub

Public Sub toLastRecord(theForm As Form)
    On Error GoTo err1
    If Not theForm.NewRecord And theForm.RecordsetClone.RecordCount > 0 Then
        theForm.RecordsetClone.MoveLast
        If Not (theForm.RecordsetClone.NoMatch) Then
            theForm.Bookmark = theForm.RecordsetClone.Bookmark
        End If
    End If
    Exit Sub
err1:
    MsgBox Err.Description, , theForm.Name
End Sub


Загвоздка в toLastRecord, повидимому он вызывает Requery формы, КАК ПОБОРОТЬ?

Заранее спасибо.
27 окт 04, 12:29    [1064307]     Ответить | Цитировать Сообщить модератору
 Re: Событие Current формы вызываеться происходит 2(!) раза.  [new]
Рачаев Олег
Member

Откуда: Самара
Сообщений: 115
Кстати и флажок isCurrentFormDone , который я ввел для предотвращения повторного срабатывания события Current, НЕ ПОМАГАЕТ! Вот такой ахтунг.
27 окт 04, 12:35    [1064338]     Ответить | Цитировать Сообщить модератору
 Re: Событие Current формы вызываеться происходит 2(!) раза.  [new]
paparome
Member

Откуда: Москва
Сообщений: 4312
Может я чтого не понял, но:

OnCurrent срабатывает первый раз при открытии формы (для первой записи - если есть, конечно)
второй раз по вашему MoveLast

нет?
27 окт 04, 12:37    [1064344]     Ответить | Цитировать Сообщить модератору
 Re: Событие Current формы вызываеться происходит 2(!) раза.  [new]
Kelme
Member

Откуда: Riga, Latvia
Сообщений: 1488
а если так:
isCurrentFormDone = True
 
 Call utils.toLastRecord(Me)

 isCurrentFormDone = False
27 окт 04, 12:50    [1064401]     Ответить | Цитировать Сообщить модератору
 Re: Событие Current формы вызываеться происходит 2(!) раза.  [new]
Alexey Sh
Member

Откуда: SPB
Сообщений: 1930
Флажок выставлять лучше в OnOpen
27 окт 04, 12:52    [1064409]     Ответить | Цитировать Сообщить модератору
 Re: Событие Current формы вызываеться происходит 2(!) раза.  [new]
Geo
Member

Откуда:
Сообщений: 6883
paparome
OnCurrent срабатывает первый раз при открытии формы (для первой записи - если есть, конечно)


И если нет тоже.
27 окт 04, 12:55    [1064428]     Ответить | Цитировать Сообщить модератору
 Re: Событие Current формы вызываеться происходит 2(!) раза.  [new]
Рачаев Олег
Member

Откуда: Самара
Сообщений: 115
Че то я совсем запутался. Выставляю флажок в onOpen. И все работает нормально, т.е. флажковая защита срабатывает. Смотрю в дебагере сколько раз выполняеться onLoad - 1 раз (!), значит он не мог скидывать флажок.... Тогда как он скидывался? Экземпляр формы 1 (!), поток обработчика событий 1 (!). Так кто же ? Мистика...

2 Paparome:

Ну собственно верно, 1-ый раз onCurrent срабатывает на первой записи, второй после

theForm.Bookmark = theForm.RecordsetClone.Bookmark
27 окт 04, 13:07    [1064517]     Ответить | Цитировать Сообщить модератору
 Re: Событие Current формы вызываеться происходит 2(!) раза.  [new]
paparome
Member

Откуда: Москва
Сообщений: 4312
Geo
paparome
OnCurrent срабатывает первый раз при открытии формы (для первой записи - если есть, конечно)


И если нет тоже.

Возможно - как-то не проверял :)
27 окт 04, 13:42    [1064747]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить