Свойство «Источник записей» для форм и элементов управления 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Свойство «Источник записей» для форм и элементов управления



Основные объекты доступа к данным, это

RecordSourse (источник данных для форм)

ControlSourse (источник данных для полей и других элементов управления).

Для форм источник записей определяется свойством RecordSourse. Этот источник указывается в свойстве «данные» формы, тогда данные таблиц, запросов, инструкций SQL доступны для формы.

Для элементов управления источник записей определяется свойством ControlSourse. Этот источник указывается в свойстве «данные» полей или других элементов управления, тогда данные полей таблиц, запросов доступны для элементов управления, размещенных на форме (отчете).

Элемент управления «поле» получает данные непосредственно из полей таблиц (запросов). Элемент управления «список» может получать данные из таблиц (посредством запроса), или из перечня данных.

В программе на VBA значение этого свойства легко можно изменить, и неоднократно, таким образом, форма (элемент управления) может получать данные из разных источников.

Синтаксис:

Me.RecordSourse = "Имя_источника" //Текстовая строка

Значением свойства RecordSource может быть имя таблицы, имя запроса или инструкция SQL, и если форма открыта, выводимые данные автоматически обновляются.

Например:

Me.RecordSourse = "Группы" //Это имя таблицы

ControlSourse, это источник записей для элемента управления. Из VBA это свойство можно задать, например, так:

Me.RecordSource = "Имя_таблицы_активнойБД"

Me.Имя_эл_упр.ControlSourse = "Строка_доступа"

Конкретно:

Me.Поле7.ControlSourse = "Имя_поля" //Таблицы – источника данных формы.

Me.Список0.RowSource = "Имя_источника"

Например, чтобы выводить и редактировать в форме данные из таблицы «Слова», в свойстве формы RecordSource нужно указать имя этой таблицы, после чего в форме можно создавать элементы управления, присоединенные к конкретным полям таблицы «Слова». В свойстве ControlSource каждого элемента управления следует указать имена полей таблицы. Например, для присоединения элемента управления к полю «Слово» из таблицы «Слова», необходимо задать значение ControlSource = «Слово» (имя поля таблицы).

Дополнительные сведения.

Для изменения источника данных следует изменить значение свойства RecordSource. RecordSource обеспечивает многократное использование макета документа. Если создана форма со стандартным макетом, то для того чтобы вывести в этой форме данные из другого источника, можно скопировать форму и изменить в ней значение свойства RecordSource на другой источник данных.

Семейство RecordSets и Объект RecordSet – таблицы в оперативной памяти

Семейство RecordSets с одержит все открытые объекты RecordSet из объекта DataBase. При работе с объектами доступа к данным почти все операции выполняются с помощью объектов Recordset. Новый объект Recordset автоматически добавляется в семейство Recordsets при открытии объекта и автоматически удаляется из семейства при закрытии объекта.

Доступ в приложении к объекту Recordset выполняется через объектные переменные:

Dim DB As DataBase

Set DB = CurrentDB

Dim Rst As RecordSet

Далее применяется метод Set для присваивания значения объекту Rst,

Set Rst = DB.OpenRecordset ("Имя_Источника") //Имя таблицы текущей БД

Для доступа к объекту Recordset используют его порядковый номер в семействе или значение свойства Name (имя):

Recordsets (0)

Recordsets ("Имя")

Recordsets![Имя]

Примечание. Для одного источника данных или базы данных допускается открытие нескольких объектов Recordset, что приводит к образованию повторяющихся имен в семействе Recordsets. В этом случае необходимо присваивать объекты Recordset объектным переменным и ссылаться на них по именам переменных.

Пример, как:

Объект Recordset представляет набор записей в таблице или набор записей, полученный в результате выполнения запроса.

Объекты Recordset используются для обработки данных в БД на уровне записи. При работе с объектами доступа к данным (DAO) почти все операции выполняются с помощью объектов Recordset. Каждый объект Recordset состоит из записей (строк) и полей (столбцов).

Существуют объекты Recordset пяти типов:

1) Таблица – программное представление основной таблицы. Используется для добавления, изменения или удаления записей из отдельной таблицы базы данных (только в рабочей области Microsoft Jet).

2) Динамический набор записей – набор обновляемых записей, полученный в результате выполнения запроса. Позволяет добавлять, изменять или удалять записи в основной таблице или таблицах. В объекте Recordset этого типа могут содержаться поля из одной или нескольких таблиц базы данных. Этот тип объектов соответствует указателю ключевого набора записей ODBC.

3) Статический набор записей – статическая копия набора записей, используемая для поиска данных или создания отчетов. Объект Recordset этого типа может содержать поля из одной или нескольких таблиц базы данных, но не допускает обновления полей, соответствует указателю статического набора записей ODBC.

4) Статический набор записей с последовательным доступом. Аналогичен статическому набору записей, но в нем отсутствует указатель, следовательно, имеется возможность прокручивать записи только вперед, что повышает быстродействие, когда достаточен однократный проход по набору записей. Соответствует указателю набора записей с последовательным доступом ODBC.

5) Динамический объект – результирующий набор записей запроса по одной или нескольким основным таблицам, в котором допускается добавление, изменение или удаление записей. В таком объекте Recordset отображаются записи, добавляемые, удаляемые или изменяемые в основных таблицах другими пользователями. Соответствует динамическому указателю ODBC (только в рабочей области ODBCDirect).

При создании нового объекта Recordset тип объекта определяется с помощью аргумента «тип» метода OpenRecordset.

Если аргумент «тип» не задан:

В рабочей области Microsoft Jet механизм DAO пытается создать тип объекта Recordset с максимально возможными функциональными характеристиками, начиная с таблицы. Если таблицу создать не удается, делается попытка создать динамический набор записей, затем статический набор записей и, наконец, набор записей с последовательным доступом.

В рабочей области ODBCDirect, механизм DAO пытается создать тип объекта Recordset, обеспечивающий максимально быстрое выполнение запроса, начиная с набора записей с последовательным доступом. Если объект этого типа создать невозможно, механизм DAO делает попытку создать статический набор записей, затем динамический набор записей, и, наконец, объект Recordset динамического типа.

При создании объекта Recordset на основе не присоединенного объекта TableDef в рабочей области Microsoft Jet создаются объекты Recordset типа таблицы. На основе присоединенных таблиц или таблиц в базах данных ODBC, подключенных к ядру Microsoft Jet, могут быть созданы только объекты Recordset типа динамического набора записей или статического набора записей.

Объекты Recordset типа динамического набора записей, статического набора записей и статического набора записей с последовательным доступом сохраняются в локальной оперативной памяти. Если в оперативной памяти не хватает места, ядро базы данных Microsoft Jet сохраняет избыточные данные в каталоге временных файлов на диске. Если и этот объем окажется недостаточным, возникает перехватываемая ошибка.

Cемейство Fields

Объекты Recordset по умолчанию помещаются в семейство Fields.

Основное свойство объекта Field, это свойство Value (значение), используется по умолчанию.

Если созданный объект Recordset содержит записи, то текущей записью становится первая запись. Если записи в объекте отсутствуют, свойство RecordCount получает значение 0, а свойства BOF и EOF значение True.

Изменить положение указателя текущей записи позволяют методы MoveNext, MovePrevious, MoveFirst и MoveLast. (Для объектов Recordset типа статического набора записей с последовательным доступом поддерживается только метод MoveNext). При выполнении цикла по всем записям с помощью методов Move («проход» по объекту Recordset) свойства BOF и EOF используются для проверки начальной и конечной границы объекта Recordset.

Для объектов Recordset типа динамического набора записей в рабочей области Microsoft Jet допускается также использование методов группы Find, таких как FindFirst, позволяющих найти запись, удовлетворяющую определенным условиям. Если запись не обнаруживается, свойство NoMatch получает значение True. Для объектов RecordSet типа таблицы допускается сканирование записей с помощью метода Seek.

Тип созданного объекта RecordSet задается свойством Type, а возможность изменения записей в объекте определяется свойством Updatable. Сведения о структуре основной таблицы, такие как имя и тип данных каждого поля (объект Field) и индекса (объект Index) сохраняются в объекте TableDef.

Dim DB As DataBase

Set DB = CurrentDB

Dim Rst As RecordSet

Set Rst = DB.OpenRecordset ("Имя_Источника")

Метод OpenRecordset

Создает новый объект Recordset и добавляет его в семейство Recordsets.

Синтаксис для объекта Database:

Set НаборЗаписей = Объект.OpenRecordset (источник, тип, параметры, блокировки)

НаборЗаписей – это объектная переменная, представляющая открываемый объект Recordset.

Объект – это объектная переменная, представляющая существующий объект, используемый при создании нового объекта Recordset.

Источник – строковое выражение, определяющее источник записей для Recordset (имя таблицы, запроса, инструкция SQL). Для табличного объекта Recordset в базе данных Microsoft Jet в качестве источника допускается указание только имени таблицы.

Тип – необязательный, константа, указывающая тип открываемого объекта.

Параметры – необязательный, задает характеристики нового объекта Recordset.

Блокировки – необязательный, определяет тип блокировки объекта Recordset.

Тип может быть одним из пяти:

DbOpenTable – табличный объект Recordset (только в рабочей области ядра Microsoft Jet).

DbOpenDynamic – объект Recordset динамического типа, аналогичного динамическому указателю ODBC (только в рабочей области ODBCDirect).

DbOpenDynaset – объект Recordset типа динамического набора записей, аналогичного указателю ключевого набора записей ODBC.

DbOpenSnapshot – объект Recordset типа статического набора записей, аналогичного указателю статического набора записей ODBC.

DbOpenForwardOnly – объект Recordset типа статического набора записей с последовательным доступом.

RecordSet (набор записей для формы).

Свойства

Методы

Refresh

ReQuery



Поделиться:


Последнее изменение этой страницы: 2016-08-12; просмотров: 625; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.206.169 (0.012 с.)