Чтение онлайн

на главную - закладки

Жанры

VBA для чайников

Каммингс Стив

Шрифт:

End If

strCurrentFieldData = rstYGate.Fields(3)

Поскольку коллекция Fields является коллекцией по умолчанию объекта Recordset, вам не обязательно указывать ее по имени. Для обращения к полю просто укажите его имя, предварительно поставив восклицательный знак и заключив в квадратные скобки имена, содержащие пробелы: rstYGatelDate = #5/15/2001#

With rstYGate

intltems =![Oil cans]

End With

Изменение (обновление) данных поля определенной записи с помощью ADO совсем несложно. Все, что вам необходимо

сделать, - указать новое значение, после чего переместиться к другой записи, как показано ниже (здесь предполагается, что набор записей rstBucket уже открыт и содержит определенные данные):

KithrstBucket

.Fields ( 0).Value = "Love"

.MoveNext

End With

А если вы не хотите перемещаться от текущей записи, можно внести изменения в базу данных, воспользовавшись методом Update. В приведенном ниже примере я воспользовался преимуществами, обеспечиваемыми стандартным состоянием коллекции Fields и свойством Value, чтобы свести к минимуму код, который необходимо написать:

With rstBucket

!Value =8.93

.Update

End With

Как и метод AddNew, метод UpDate позволяет вам передать значения новых полей с помощью пары массивов, как показано ниже:

With rstBucket

.Update Array("Имя", "Звание", "Любимый напиток"),

Array("Лола", "Младший лейтенант", "Кофе")

End With

Используйте цикл Do для проверки или операций с несколькими записями в наборе, как показано в следующем примере;

'Циклическое перемещение между записями в наборе

With rstInPeace

Do Until .EOF

Debug.Print.Fields(0)

.MoveNext

Loop

End With

SetrstInPeace = Nothing

End Sub

Использование объекта Command

В ADO объект Command представляет команду, такую как инструкция SQL или сохраненная процедура, которая может применяться к источнику данных. Вы можете использовать объекты Commands для получения записей из объектов Recordset, а также выполнения таких операций, как обновление или удаление нескольких записей. (Пример программного кода, приведенный ниже, выполняет только последние операции; примеры, использующие наборы записей, приведены раньше в настоящей главе.)

Не удивляйтесь, если вы не сможете использовать объект Command с определенным источником данных. Средства доступа OLE DB Provider не нужны для реализации объекта Command, а значит, и не требуются для обработки параметров.

Хранимые процедуры - это запросы и другие операции, которые вы или кто-нибудь еще определили раньше (обычно с помощью SQL) и сохранили в источнике данных. В качестве хранимых процедур можно привести запросы Access. Несмотря на то, что вы можете спроектировать запрос Access визуально с помощью сетки, он представляет собой инструкцию, которую вы увидете, выбрав

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

Хранимая процедура уже готова к использованию, поэтому вам необходимо знать только ее имя: вы можете спокойно забыть обо всех тонкостях определения запроса с помощью программного кода. Еще важнее, что хранимые процедуры выполняются намного быстрее и более надежны при использовании в сети, чем эквивалентные инструкции SQL. Однако инструкции SQL для вашей хранимой процедуры не являются частью кода, а значит, вы не сможете при необходимости их изменять.

Настройка объекта Command

Для настройки объекта Command вам следует начать с объявления соответствующей переменной и создания собственно объекта. После этого вы можете использовать свойства объекта для связи его с подключением, для определения команд, которые должны выполняться в форме инструкции SQL или имени хранимой процедуры, а также для определения типа операции. После этого вы можете использовать метод Execute объекта Command для действительного выполнения команды. Ниже приведен пример инструкции обновления SQL.

Обратите внимание на свойство CommandType, которому вы должны присвоить значение adCmdText для передачи инструкции SQL источнику данных:

Dim consecrate As Connection

Dim cmdVBA As Command

Dim prmDate

( Connection...)

Set cmdVBA = New Command

With cmdVBA

.ActiveConnection = consecrate

.CommandText = _ "UPDATE Bicycles SET OnSale = True" _

& "WHERE Category = 4;"

.CommandType = adCmdText

.Execute

End With

Использование параметров команды

Если для выполнения команды требуются входные параметры (значения, передаваемые команде при выполнении, например диапазон данных или критерий поиска), вы должны определить индивидуальные объекты Parameter, добавляя их к коллекции Parameters объекта Command. Пример, приведенный ниже, иллюстрирует, как это все работает, и как можно использовать объект Command для выполнения хранимой процедуры, а не инструкции SQL:

Dim consecrate As Connection

Dim cmdVBA As Command

Dim prmDate

( Connection...)

Set cmdVBA = New Command

With cmdV3A

.ActiveConnection = consecrate

.CommandText = "qryDeleteOldRecords"

.CommandType = adCmdStoredProc ' in Jet, _

adCmdTable

End With

Set prmDate - New Parameter

With prmDate

.Name = "Date"

.Value = InputBox "Enter the cut-off date."

.Type = adDate

Поделиться:
Популярные книги

Усадьба леди Анны

Ром Полина
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Усадьба леди Анны

Чужая дочь

Зика Натаэль
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Чужая дочь

Светлая тьма. Советник

Шмаков Алексей Семенович
6. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Светлая тьма. Советник

Двойник Короля

Скабер Артемий
1. Двойник Короля
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Двойник Короля

Его нежеланная истинная

Кушкина Милена
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Его нежеланная истинная

Последний Паладин. Том 2

Саваровский Роман
2. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин. Том 2

Измена. Наследник для дракона

Солт Елена
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Измена. Наследник для дракона

Идеальный мир для Лекаря 9

Сапфир Олег
9. Лекарь
Фантастика:
боевая фантастика
юмористическое фэнтези
6.00
рейтинг книги
Идеальный мир для Лекаря 9

Мастер темных Арканов

Карелин Сергей Витальевич
1. Мастер темных арканов
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Мастер темных Арканов

Адвокат империи

Карелин Сергей Витальевич
1. Адвокат империи
Фантастика:
городское фэнтези
попаданцы
фэнтези
5.75
рейтинг книги
Адвокат империи

Кодекс Охотника. Книга XXI

Винокуров Юрий
21. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XXI

Вечный. Книга II

Рокотов Алексей
2. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Вечный. Книга II

Законы Рода. Том 3

Flow Ascold
3. Граф Берестьев
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Законы Рода. Том 3

Наследник

Шимохин Дмитрий
1. Старицкий
Приключения:
исторические приключения
5.00
рейтинг книги
Наследник