В этом руководстве мы узнаем, как открыть набор записей, подсчитать количество записей в наборе записей, пройти через набор записей, добавить запись, обновить запись, прочитать значение из записи и удалить запись.
У нас есть таблица доступа под названием ProductsT, показанная ниже:
Открытие набора записей
Сначала нам нужно создать базу данных, которую мы собираемся использовать, в данном случае это текущая открытая база данных. Затем мы можем использовать метод CurrentDB.OpenRecordSet, чтобы открыть / создать наш набор записей.
Чтобы создать набор записей, который позволит нам управлять данными в таблице под названием ProductsT, мы должны использовать следующий код:
1 | CurrentDb.OpenRecordset ("ProductsT") |
Подсчет количества записей с использованием VBA
После того, как вы создали набор записей, вы, скорее всего, захотите сделать с ним что-нибудь полезное или каким-то образом манипулировать данными в нем. Вы можете подсчитать количество записей в вашем наборе данных (в данном случае таблица с именем ProductsT), используя следующий код:
1 | MsgBox CurrentDb.OpenRecordset ("ProductsT"). RecordCount |
Цикл через RecordSet с использованием VBA
Следующий код проходит через наш RecordSet:
1234567891011121314 | Sub RecordSet_Loop ()Уменьшить размер нашей базы данных как базы данныхУменьшите размер нашего набора записей как набора записейУстановите ourDatabase = CurrentDbУстановите ourRecordset = ourDatabase.OpenRecordset ("ProductsT")Делаем до нашегоRecordset.EOFMsgBox ourRecordset! ProductIDourRecordset.MoveNextПетляКонец подписки |
Программирование на VBA | Генератор кода действительно работает для вас!
Добавление записи в RecordSet
Используйте метод Recordset.AddNew, чтобы добавить новую запись в RecordSet:
1234567891011121314 | Sub RecordSet_Add ()С CurrentDb.OpenRecordset ("ProductsT").Добавить новое! [ProductID] = 8! [ProductName] = "Продукт ЧЧЧ"! [ProductPricePerUnit] = 10! [ProductCategory] = "Игрушки"! [UnitsInStock] = 15.ОбновлятьКонец сКонец подписки |
Результат:
Обновление набора записей
Вы должны использовать метод Recordset.AddNew или Recordset.Edit. После этого оператора вы должны использовать метод Recordset.Update, чтобы сохранить изменения.
Чтение значений из записи
Вы должны использовать метод Recordset.FindFirst, чтобы сделать запись текущей. Затем вы должны использовать Recordset.Fields, чтобы указать, какое поле смотреть.
12345678910111213141516 | Sub RecordSet_ReadValue ()Уменьшить размер нашей базы данных как базы данныхУменьшите размер нашего набора записей как набора записейУстановите ourDatabase = CurrentDbУстановите ourRecordset = ourDatabase.OpenRecordset ("ProductsT", Тип: = RecordsetTypeEnum.dbOpenDynaset)С нашим набором записей.FindFirst "ProductName =" & "'Product CCC'"Если .NoMatch, тоMsgBox «Совпадений не найдено»ЕщеMsgBox ourRecordset.Fields ("ProductCategory")Конец, еслиКонец сКонец подписки |
Результат:
Устали искать примеры кода VBA? Попробуйте AutoMacro!
Удаление записи из набора записей
Чтобы удалить запись из набора записей, вы должны сначала сделать ее текущей записью с помощью метода Recordset.FindFirst. Затем вы можете удалить его с помощью метода Recordset.Delete. Следующий код показывает, как удалить запись 2 в наборе данных:
1234567891011121314151617181920212223 | Sub RecordSet_DeleteRecord ()Уменьшить размер нашей базы данных как базы данныхУменьшите размер нашего набора записей как набора записейУстановите ourDatabase = CurrentDbУстановите ourRecordset = ourDatabase.OpenRecordset ("ProductsT", тип: = RecordsetTypeEnum.dbOpenDynaset)С нашим набором записей.FindFirst "ProductName =" & "'Product BBB'"Если .NoMatch, тоMsgBox «Совпадений не найдено»ЕщеourRecordset.DeleteКонец, еслиКонец с'Снова открыть столDoCmd.Close acTable, "ProductsT"DoCmd.OpenTable "ProductsT"Конец подписки |
Результат: