Иллюстрированный самоучитель по Access 2002

       

Синхронизация данных в связанных формах


Пример синхронизации данных в двух связанных формах с помощью процедуры обработки события

Текущая запись

(Current) можно увидеть в модуле формы "Поставщики" (Supplier). В форме есть кнопка

Просмотр товаров

(Review Products), при нажатии на которую выводится форма "Список товаров" (Product List), показывающая товары данного поставщика. Естественно, что при переходе к новой записи в форме "Поставщики" (Supplier), записи в форме "Список товаров" (Product List) тоже должны быть сменены. Процедура выглядит следующим образом:

Private Sub Form_Current()

On Error GoTo Err_Form_Current

' Отображение товаров текущего поставщика при открытии формы "Список ' товаров".

Dim strDocName As String

Dim strLinkCriteria As String

strDocName = "Список товаров"

strLinkCriteria = "[КодПоставщика] = Forms![Поставщики]![КодПоставщика] "

If IsNull(Me![Название]) Then

Exit Sub

Elself IsLoaded("Список товаров") Then

DoCmd.OpenForm strDocName, , , strLinkCriteria

End if

Exit_Form_Current:

Exit Sub

Err_Form_Current:

MsgBox Err.Description



Resume

Exit_Form_Current

End Sub

Если текущая запись в форме "Поставщики" (Supplier) пустая, т. е. добавляется новая запись, то сразу выполняется выход из процедуры. Если текущая запись отображает конкретного поставщика, то проверяется, загружена ли форма "Список товаров" (Product List). Если форма загружена, то меняется набор записей в ней. Делается это с помощью макрокоманды ОткрытьФорму(OpenForm) с соответствующим условием отбора записей. При этом на самом деле форма не открывается, просто повторно запрашивается источник данных.

CompEbook.ru Железо, дизайн, обучение и другие



Содержание раздела