Первый оператор открывает набор записей типа таблицы, если эта таблица является локальной таблицей доступа (поскольку передаваемый аргумент является таблицей, dbOpenTable
является значением по умолчанию)
Второй оператор открывает тип dynasetнабор записей (поскольку переданный аргумент является запросом, dbOpenDynaset
является значением по умолчанию)
Основное различие между наборами записей типа dynaset и табличного типа заключается в том, что наборы записей табличного типа поддерживают индексы.
Следующий код выполнится успешно и выполнит поиск записи со значением первичного ключа 5
Set rs = CurrentDb.OpenRecordset("tblOPCEPLTB")
rs.Index = "PrimaryKey"
rs.Seek "=", 5
Следующее не удастся, поскольку поиск поддерживается только для наборов записей табличного типа:
Set rs = CurrentDb.OpenRecordset("SELECT * FROM tblOPCEPLTB")
rs.Index = "PrimaryKey"
rs.Seek "=", 5
Если вы хотите добавить записи только в таблицу, укажите, что при открытии набора записей:
Set rs = CurrentDb.OpenRecordset("tblOPCEPLTB", Options:=dbAppendOnly)
Таким образом, никакие записи не будут заблокированы или загружены, поскольку набор записей будет поддерживать только добавление