MS Access: «СЛЕВА», «СЕРЕДИНА», «ЗАМЕНИТЬ» и т.д. функции приводят к ошибке компиляции

#ms-access #compiler-errors #string-function

Вопрос:

Я унаследовал базу данных MS Access, в которой я должен пакетно обновлять некоторые данные. Таким образом, я создал новый запрос и в качестве первого теста попытался получить отфильтрованный список записей — безуспешно. Access категорически отказывается компилировать код, содержащий ЛЕВУЮ функцию.

Это действительно компилирует:

 SELECT ColPath FROM MyTable;  

Это не компилируется:

 SELECT LEFT([ColPath], 3) FROM MyTable;  

Даже простое

 SELECT LEFT('Hello', 2);  

не работает.

Я много гуглил сейчас и нашел решения, которые либо рекомендуют проверять ссылки в диалоговом окне Инструменты/Ссылки в представлении VBA. В моем случае отсутствующих ссылок нет. Вторым решением было проверить модули VBA на наличие повторяющихся OPTION COMPARE DATABASE инструкций — в моем случае их не было.

Затем я создал совершенно новую базу данных и попробовал — удивительно, но все работает нормально! Теперь я сравнил ссылки новой базы данных со старой: они одинаковы.

Я был бы рад любым идеям по этому поводу…

Комментарии:

1. какую ошибку вы получаете?

Ответ №1:

Похоже, ты перепутал свои рекомендации.

В редакторе VBA перейдите в раздел Инструменты, затем Ссылки.

Первые 2 всегда должны быть Visual Basic для приложений, а затем Библиотека объектов Microsoft Access ##.# в этом порядке (обратите внимание на кнопки приоритета, чтобы изменить порядок). Все остальное вызовет проблемы.

Даже если у вас нет отсутствующих ссылок, неправильные ссылки все равно могут вызвать эту проблему.

Во-вторых, я бы выполнил общие действия по устранению неполадок, декомпилировал (Win R, MSACCESS.EXE /декомпилируйте, откройте базу данных, нажмите Отладка -gt; Компиляция) , а также компакт-диск и восстановите. Это приведет к перекомпиляции всей вашей базы данных, и если ваш код VBA содержит ошибки компиляции, это повлияет на любые запросы, вызывающие любую функцию.

введите описание изображения здесь