Создать новую базу данных.
Откройте новую базу данных и убедитесь, что DAO включен в ссылки.
Вставьте новый стандартный модуль, убедившись, что в разделе объявлений объявлен Option Explicit.
Затем вставьте этот код и запустите его.
Public Sub CreateTableZack()
Dim strSql As String
strSql = "CREATE TABLE tblZack (" & vbNewLine & _
vbTab & "id COUNTER CONSTRAINT pkey PRIMARY KEY," & vbNewLine & _
vbTab & "foo_text TEXT(255)," & vbNewLine & _
vbTab & "date_assigned DATETIME);"
Debug.Print strSql
CurrentProject.Connection.Execute strSql
End Sub
Предполагая, что таблица создана успешно, создайте qryZack с этим в качестве SQL:
SELECT *
FROM tblZack;
Затем попробуйте свой код, чтобы открыть набор записей DAO на основе qryZack.
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("qryZack")
Это работает?
Если нет, ваша установка Access может быть удалена ... Возможно, вам придется починить или переустановить ее. Вы также можете попробовать это на другом компьютере, на котором есть доступ, если можете.
Если он работает с новой базой данных, но не со старой, старая может быть повреждена. Сначала сделайте резервную копию, затем попробуйте Compact & Repair.
Другая проблема - это имена ваших полей. Дата, Пользователь и Тип - все слова, зарезервированные для доступа. См. Имена проблем и зарезервированные слова в Access . Я не могу сказать, что эти имена вызывают проблемы здесь, но использование зарезервированных имен для объектов базы данных (таблиц, полей, запросов и т. Д.) Может иметь драматические последствия ... как будто это сбивает с толку дерьмо из Access. Поэтому я старательно избегаю их.
Редактировать : Вам также следует проверить ссылки в вашей старой базе данных. Отсутствующие / неработающие ссылки также запутывают дерьмо в Access.