Использование функций для обработки событий

Реферат - Компьютеры, программирование

Другие рефераты по предмету Компьютеры, программирование

End Sub

 

  1. Если открыть форму Orders и нажать кнопку Сведения о покупателе, то откроется форма Customers, в которой выводятся сведения о данном покупателе. При выборе на форме Orders заказа другого клиента форма Customers не обновляется до тех пор, пока повторно не будет нажата кнопка Сведения о покупателе.
  2. Для реализации механизма синхронизации форм необходимо создать процедуру обработки события для синхронизации формы Customers при смене записи в форме Orders. При переходе к другой записи используется событие Current Текущая запись формы Customers. Для определения, открыта ли форма Customers, процедура обработки события Form_Current для формы Orders использует функцию пользователя IsLoaded()

 

Private Sub Form_Current()

Dim strForm As String

Dim strWhere As String

strForm = "Customers"

strWhere = "CustomerID = Forms!Orders!CustomerID"

If IsLoaded(strForm) Then

DoCmd.OpenForm FormName:=strForm, wherecondition:=strWhere

End If

End Sub

Function IsLoaded (ByVal strFormName As String) As Boolean

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

 

 

 

 

 

 

 

  1. При закрытии формы Orders необходимо закрыть форму Customers (если она открыта). Процедура обработки события Close в форме Orders, закрывает форму Customers, если она открыта.

 

Private Sub Form_Close()

Dim strForm As String

strForm = "Customers"

DoCmd.Close acForm, strForm

End Sub

 

 

Метод SysCmd может возвращать сведения о состоянии объекта БД (не открыт или не существует, открыт, новый, изменен, но не сохранен). Вызывая SysCmd метод с аргументами acSysCmdGetObjectState, objecttype (acТable, acQuery, acForm, acReport и т. п.) и objectname, мы получим информацию о состоянии определенного объекта БД (по указанному имени объекта).

 

Метод SysCmd с аргументом acSysCmdGetObjectState может возвращать только следующие константы.

КонстантаСостояние объектаЗначениеacObjStateOpenОткрыт1acObjStateDirtyИзменен, но не сохранен2acObjStateNewНовый4

Если объект не открыт или не существует, метод SysCmd возвращает значение 0.

Свойство CurrentView применительно к объектам формы определяет ее вид представления в текущий момент и возвращает число типа Integer.

expression.CurrentView

expression применительно к формам может быть: Forms!formname,

Forms![form name], Forms("formname")

Свойство CurrentView принимает следующие значения.

0Режим конструктора1Режим формы2Список БД

 

 

Метод Visual Basic MoveSize изменяет положение или размеры активного окна. Его можно использовать для удобного с точки зрения пользователя расположения синхронизированных форм.

DoCmd.MoveSize 1440, 2400, , 2000

 

DoCmd.MoveSize (Right, Down, Width, Height)

Right новое положение верхнего левого угла окна (по горизонтали) относительно левого края содержащего его окна.

Downновое положение верхнего левого угла окна (по вертикали) относительно верхнего края содержащего его окна

Width новая ширина окна.

Height новая высота окна.

 

Задание №2

Создать процедуру обработки события, которая будет открывать форму Организаторы, и синхронизировать ее с формой Мероприятия. Закрытие формы Организаторы должно вызывать закрытие и формы Мероприятия.

 

 

 

 

 

Выполнение операций с записями.

 

Семейство Recordsets.

 

Объекты Recordset представляют собой наборы записей, являющихся результатом выполнения запроса или инструкции SQL на выборку данных, или просто все записи в таблице. Новый объект Recordset создается с помощью метода OpenRecordset объекта Database и автоматически добавляется в семейство Recordsets .

Существует 5 типов объектов Recordset:

Таблица1

ТипКонстантаОписаниеТаблицаdbOpenTableЭтот тип может быть создан только на основе локальной таблицы ACCESS. Он содержит все записи этой таблицы. Можно изменять данные в этом объекте и добавлять и удалять записи.Статистический набор записейdbOpenSnapshotНабор записей, создаваемый на основе таблицы, запроса или инструкции SQL. Обеспечивает только просмотр данных без его модификации.Динамический набор записейdbOpenDynasetНабор записей, создаваемый на основе таблицы, запроса или инструкции SQL. Однако он является изменяемым и обновляемым.Статический набор записей с последовательным доступомdbOpenForwardOnlyАналогичен статистическому набору записей во всем, кроме того, что он позволяет просматривать записи набора только вперед, т. е. один раз.ДинамическийdbOpenDynamicПохож на динамический. Отличие заключается в том, что он отображает все изменения, сделанные другим пользователем, после того, как этот объект был создан, в том числе добавленные и удаленные записи.

 

Чтобы создать объект Recordset, нужно сначала создать объектную переменную. После этого выполняется присвоение значений этой переменной с помощью метода OpenRecordset. Метод имеет аргументы:

 

Источник данных для данного набора записей (таблица, запрос).

Тип создаваемого объекта (одна из констант из Таблицы1).

Комбинация констант, которые определяют некоторые характеристики создаваемого объекта.