Программирование в ACCESS 2000, страница 22

2.   Вносятся изменения в поля записи.

3.   Вызывается метод Update для сохранения изменений.

Например, изменить программно значение поля в одной из записей таблицы Авторы можно с помощью следующей процедуры (листинг 5.38).

Листинг 5.38. Изменение записи в наборе (DАО)

Sub  EditAuthor()

Dim  rs As  Recordset

Set rs = CurrentDb.OpenRecordset("Авторы")

rs.MoveFirst

Do Until rs.EOF

If rs!КодАвтора = 11 Then

rs.Edit

rs!ГодРождения = "1908"

rs.Update

End If

rs.MoveNext

Loop

End Sub

В объектной модели DAO использование методов Edit и Update обязательно. Если пропустить метод Edit, будет возникать ошибка времени исполнения. Если пропустить метод Update, изменения не сохраняются.

В объектной модели ADO оба метода могут быть опущены. Можно просто изменить значения полей в текущей записи.

Удаление записи

Для удаления записи в наборе нужно сделать эту запись текущей и затем вызвать метод Delete. Например, чтобы удалить записи, которые мы изменили в предыдущем примере, нужно организовать следующий цикл:

Do Until rs.EOF

 If rs!КодПодразделения = 11 Then

rs.Delete

 End If

 rs.MoveNext

Loop

В объектной модели ADO этот цикл будет выглядеть точно так же. При выполнении метода Delete запись без предупреждения удаляется из таблицы, однако автоматического перехода к новой записи не происходит. Чтобы перейти к следующей записи, нужно выполнить метод MoveNext.

ОбъектыRecordиStreamдляAccess 2002

Эти два объекта новой модели ADO обеспечивают доступ к источникам данных которые не являются базами данных. Чаще всего это файлы файловой системь или сообщения электронной почты.

Объект Record может представлять каталог или файл файловой системы, папк) или сообщение электронной почты, а также строку объекта Recordset. Тип объек та Record определяется свойством RecordType.

Объект Record может быть использован, например, в качестве альтернативного способа представления иерархической организации данных. В этом случае Record представляет собой корень поддерева на любом уровне иерархии или лист дерева, то есть последний уровень иерархии. В первом случае он имеет подчиненные узлы, которые, в свою очередь, могут быть представлены объектами Record, во втором — ему может подчиняться объект Stream.

Для создания объекта Record используется метод Open, имеющий следующий синтаксис:

Open [<Source>], [<ActiveConnection>], [<Mode>], [<CreateOptions>], [<0ptions>], [<UserName>], [<Password>].

Аргумент <Source> содержит либо URL, указывающий на файл или каталог, либо ссылку на открытый объект Recordset.

<ActiveConnection> может быть объектом Connection, абсолютным адресом URL или существующим объектом Record.

Если аргумент <Source> является адресом URL, этот адрес может быть либо абсолютным, либо относительным. Если <Source> является относительным адресом, базовый адрес для него должен определяться аргументом <ActiveConnection>. Например:

Dim en As  New ADODB.Connection

Dim  rec As  New Record

'используем абсолютный  адрес  в  Source

rec.Open  http: //MyServer/MyPatjh/

'используем относительный  адрес,   а базовый  адрес указываем

'в ActiveConnection

rec.Open  "myFolder", "URL=http://MyServer/MyPath/"

'используем уже существующий объект Connection

en.Open  "URL=http://MyServer/MyPath/"

rec.Open  "mydoc.doc",   en

Если значением аргумента является Recordset, то объект Record будет представлять текущую строку объекта Recordset.

Аргумент <Mode> указывает режим доступа к объекту Record (только чтение, чтение и запись, только запись и т. д.).

Аргумент <CreateOptions> определяет, будет ли открываться существующий файл (каталог) или будет создаваться новый. Если Record представляет строку объекта Recordset, этот аргумент не должен использоваться.