У меня есть приложение, которое создает базу данных Jet во время выполнения и импортирует записи ~ 100 тыс., Чтобы я мог использовать индексирование по соображениям производительности (1 минута против почти 10 не используя базу данных Jet).Доступ к «ремонту» нарушает несколько сложный запрос
База данных создается с использованием расширения ADO Extensibility в Excel, и все работает отлично. Однако моя проблема возникает, когда я открываю файл MDB в интерфейсе Access, он автоматически начинает «восстанавливать» базу данных.
Данные сохраняются после «ремонта», однако мой основной выходной запрос не может быть просмотрен в Access, поскольку он сообщает мне, что он не может представлять объединения, и если я затем просмотрю его в SQL, необходимые соединения не будут там, и запрос больше не может работать. Это все равно, если я разрешу ему «восстановить», но не открывать этот запрос, т. Е. Это «ремонт», который прерывает запрос, а не попытку просмотреть его в Access. Самое забавное в том, что я использовал конструктор запросов GUI Access для построения SQL, поскольку моя жизнь слишком короткая, чтобы беспокоиться о том, что это сумасшедший стиль брекетинга, но потом он решает, что он слишком сложный для себя?
Кроме того, ничто иное не кажется затронутым, поэтому я могу только предположить, что это тот самый запрос, который ему не нравится.
Это не является нарушителем сделки для меня, поскольку мое решение заключается в том, чтобы сделать MDB скрытым и сообщить пользователям, которые могут видеть его, чтобы не открывать его.
Тем не менее, мне бы очень хотелось, чтобы база данных открывалась, и мне не нужно было ее скрывать. Поэтому мой вопрос заключается в том, есть ли способ предотвратить «ремонт» MDB автоматически?
Спасибо!
Должна быть предусмотрена возможность создания БД, которая не нуждается в ремонте. Возможно, вы могли бы разместить небольшой код? – Fionnuala
Мой код для создания базы данных выглядит следующим образом, и я проверил, что этого достаточно для принудительного восстановления: Set objCat = CreateObject ("ADOX.Catalog") objCat.Create ConnectionString() Что мне пришло в голову, что я создаю MDB, но открываю Access 2007, и это все, что у меня есть. Возможно, это проблема? – CrazyHorse
Что такое ConnectionString()? – Fionnuala