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

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

Жанры

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

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

Лекарь Империи 7

Карелин Сергей Витальевич
7. Лекарь Империи
Фантастика:
городское фэнтези
аниме
боевая фантастика
попаданцы
5.00
рейтинг книги
Лекарь Империи 7

Психотехника рукопашной схватки

Калинин Виталий
Дом и Семья:
спорт
5.00
рейтинг книги
Психотехника рукопашной схватки

Ангел пролетел

Устинова Татьяна
Любовные романы:
5.00
рейтинг книги
Ангел пролетел

Неучтенный элемент. Том 12

NikL
12. Антимаг. Вне системы
Фантастика:
фэнтези
5.00
рейтинг книги
Неучтенный элемент. Том 12

Звездные судьбы (Исторические миниатюры)

Бестужева-Лада Светлана Игоревна
Научно-образовательная:
история
5.00
рейтинг книги
Звездные судьбы (Исторические миниатюры)

Жрец Хаоса. Книга III

Борзых М.
3. Зов пустоты
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Жрец Хаоса. Книга III

Собрание сочинений, том 15

Энгельс Фридрих
15. Собрание сочинений Маркса и Энгельса
Научно-образовательная:
философия
5.00
рейтинг книги
Собрание сочинений, том 15

Бастард Императора. Том 12

Орлов Андрей Юрьевич
12. Бастард Императора
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Бастард Императора. Том 12

Представь себе… Беседы о деньгах, политике и жизни вообще

Гьямцхо? Нгагва?нг Ловза?нг Тэнцзи?н
Религия и эзотерика:
самосовершенствование
5.00
рейтинг книги
Представь себе… Беседы о деньгах, политике и жизни вообще

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

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

Шайтан Иван

Тен Эдуард
1. Шайтан Иван
Фантастика:
боевая фантастика
попаданцы
альтернативная история
5.57
рейтинг книги
Шайтан Иван

Преследование праведного грешника

Джордж Элизабет
10. Инспектор Линли
Детективы:
триллеры
криминальные детективы
8.00
рейтинг книги
Преследование праведного грешника

Некромантка

Руда Александра
5. Ола и Отто
Фантастика:
фэнтези
юмористическая фантастика
7.12
рейтинг книги
Некромантка

Сборник статей и интервью 2009г (v1.5)

Кагарлицкий Борис Юльевич
Научно-образовательная:
политика
5.00
рейтинг книги
Сборник статей и интервью 2009г (v1.5)