Вход/Регистрация
VBA для чайников
вернуться

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

Шрифт:

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

  • Читать дальше
  • 1
  • ...
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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