Ошибка при компиляции функции access 2016

  • Remove From My Forums
  • Question

  • After a recent update from Office 2016 to Office 365. Trying to open a query in access gives the error «there was an error compiling this function. If I create a new query and include a function e.g Left, Instr, Trim- I get the error»
    There was an error compiling this function» «The Visual Basic module contains a syntax error» «Check the code, and then recompile it.  

    I moved all objects to a new database but the problems stills exists. Any advice. Thx

    

Answers

  • This is what has been causing the error

    Public Declare Function GetUserName Lib "advapi32.dll" _
     Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

    Apparently the library file advapi32.dll was removed after the Windows 64bit upgrade. I removed the code and all the queries(with functions) now work.

    • Edited by

      Tuesday, August 27, 2019 6:43 PM

    • Marked as answer by
      Bukka
      Wednesday, August 28, 2019 1:39 AM

  • Remove From My Forums
  • Question

  • After a recent update from Office 2016 to Office 365. Trying to open a query in access gives the error «there was an error compiling this function. If I create a new query and include a function e.g Left, Instr, Trim- I get the error»
    There was an error compiling this function» «The Visual Basic module contains a syntax error» «Check the code, and then recompile it.  

    I moved all objects to a new database but the problems stills exists. Any advice. Thx

Answers

  • This is what has been causing the error

    Public Declare Function GetUserName Lib "advapi32.dll" _
     Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

    Apparently the library file advapi32.dll was removed after the Windows 64bit upgrade. I removed the code and all the queries(with functions) now work.

    • Edited by

      Tuesday, August 27, 2019 6:43 PM

    • Marked as answer by
      Bukka
      Wednesday, August 28, 2019 1:39 AM

В этой статье представлена ошибка с номером Ошибка 7960, известная как При компиляции этой функции произошла ошибка, описанная как При компиляции этой функции произошла ошибка. @ Модуль Visual Basic содержит синтаксическую ошибку. @ Проверьте код, а затем перекомпилируйте его. @ 1 @@@ 1.

О программе Runtime Ошибка 7960

Время выполнения Ошибка 7960 происходит, когда Microsoft Access дает сбой или падает во время запуска, отсюда и название. Это не обязательно означает, что код был каким-то образом поврежден, просто он не сработал во время выполнения. Такая ошибка появляется на экране в виде раздражающего уведомления, если ее не устранить. Вот симптомы, причины и способы устранения проблемы.

Определения (Бета)

Здесь мы приводим некоторые определения слов, содержащихся в вашей ошибке, в попытке помочь вам понять вашу проблему. Эта работа продолжается, поэтому иногда мы можем неправильно определить слово, так что не стесняйтесь пропустить этот раздел!

  • Basic — Универсальный символьный код инструкций BASIC для начинающих — это семейство языков программирования высокого уровня, разработанных для простоты использования.
  • Функция — Функция, также называемая процедурой, методом, подпрограммой или подпрограммой, представляет собой часть кода, предназначенную для выполнения отдельной конкретной задачи.
  • Модуль — логический подразделение более крупной и сложной системы.
  • Перекомпилировать — действие по повторной компиляции чего-либо.
  • Синтаксис — синтаксис ссылается на к фактическим языковым элементам и самим символам.
  • Синтаксическая ошибка . Синтаксическая ошибка возникает, когда программа не следует синтаксическим правилам языка программирования.
  • Компиляция — Компиляция — это преобразование исходного текста в какую-либо другую форму или представление.
Симптомы Ошибка 7960 — При компиляции этой функции произошла ошибка

Ошибки времени выполнения происходят без предупреждения. Сообщение об ошибке может появиться на экране при любом запуске %программы%. Фактически, сообщение об ошибке или другое диалоговое окно может появляться снова и снова, если не принять меры на ранней стадии.

Возможны случаи удаления файлов или появления новых файлов. Хотя этот симптом в основном связан с заражением вирусом, его можно отнести к симптомам ошибки времени выполнения, поскольку заражение вирусом является одной из причин ошибки времени выполнения. Пользователь также может столкнуться с внезапным падением скорости интернет-соединения, но, опять же, это не всегда так.

Fix При компиляции этой функции произошла ошибка (Error Ошибка 7960)
(Только для примера)

Причины При компиляции этой функции произошла ошибка — Ошибка 7960

При разработке программного обеспечения программисты составляют код, предвидя возникновение ошибок. Однако идеальных проектов не бывает, поскольку ошибки можно ожидать даже при самом лучшем дизайне программы. Глюки могут произойти во время выполнения программы, если определенная ошибка не была обнаружена и устранена во время проектирования и тестирования.

Ошибки во время выполнения обычно вызваны несовместимостью программ, запущенных в одно и то же время. Они также могут возникать из-за проблем с памятью, плохого графического драйвера или заражения вирусом. Каким бы ни был случай, проблему необходимо решить немедленно, чтобы избежать дальнейших проблем. Ниже приведены способы устранения ошибки.

Методы исправления

Ошибки времени выполнения могут быть раздражающими и постоянными, но это не совсем безнадежно, существует возможность ремонта. Вот способы сделать это.

Если метод ремонта вам подошел, пожалуйста, нажмите кнопку upvote слева от ответа, это позволит другим пользователям узнать, какой метод ремонта на данный момент работает лучше всего.

Обратите внимание: ни ErrorVault.com, ни его авторы не несут ответственности за результаты действий, предпринятых при использовании любого из методов ремонта, перечисленных на этой странице — вы выполняете эти шаги на свой страх и риск.

Метод 4 — Переустановите библиотеки времени выполнения

Вы можете получить сообщение об ошибке из-за обновления, такого как пакет MS Visual C ++, который может быть установлен неправильно или полностью. Что вы можете сделать, так это удалить текущий пакет и установить новую копию.

  • Удалите пакет, выбрав «Программы и компоненты», найдите и выделите распространяемый пакет Microsoft Visual C ++.
  • Нажмите «Удалить» в верхней части списка и, когда это будет сделано, перезагрузите компьютер.
  • Загрузите последний распространяемый пакет от Microsoft и установите его.

Метод 1 — Закройте конфликтующие программы

Когда вы получаете ошибку во время выполнения, имейте в виду, что это происходит из-за программ, которые конфликтуют друг с другом. Первое, что вы можете сделать, чтобы решить проблему, — это остановить эти конфликтующие программы.

  • Откройте диспетчер задач, одновременно нажав Ctrl-Alt-Del. Это позволит вам увидеть список запущенных в данный момент программ.
  • Перейдите на вкладку «Процессы» и остановите программы одну за другой, выделив каждую программу и нажав кнопку «Завершить процесс».
  • Вам нужно будет следить за тем, будет ли сообщение об ошибке появляться каждый раз при остановке процесса.
  • Как только вы определите, какая программа вызывает ошибку, вы можете перейти к следующему этапу устранения неполадок, переустановив приложение.

Метод 2 — Обновите / переустановите конфликтующие программы

Использование панели управления

  • В Windows 7 нажмите кнопку «Пуск», затем нажмите «Панель управления», затем «Удалить программу».
  • В Windows 8 нажмите кнопку «Пуск», затем прокрутите вниз и нажмите «Дополнительные настройки», затем нажмите «Панель управления»> «Удалить программу».
  • Для Windows 10 просто введите «Панель управления» в поле поиска и щелкните результат, затем нажмите «Удалить программу».
  • В разделе «Программы и компоненты» щелкните проблемную программу и нажмите «Обновить» или «Удалить».
  • Если вы выбрали обновление, вам просто нужно будет следовать подсказке, чтобы завершить процесс, однако, если вы выбрали «Удалить», вы будете следовать подсказке, чтобы удалить, а затем повторно загрузить или использовать установочный диск приложения для переустановки. программа.

Использование других методов

  • В Windows 7 список всех установленных программ можно найти, нажав кнопку «Пуск» и наведя указатель мыши на список, отображаемый на вкладке. Вы можете увидеть в этом списке утилиту для удаления программы. Вы можете продолжить и удалить с помощью утилит, доступных на этой вкладке.
  • В Windows 10 вы можете нажать «Пуск», затем «Настройка», а затем — «Приложения».
  • Прокрутите вниз, чтобы увидеть список приложений и функций, установленных на вашем компьютере.
  • Щелкните программу, которая вызывает ошибку времени выполнения, затем вы можете удалить ее или щелкнуть Дополнительные параметры, чтобы сбросить приложение.

Метод 3 — Обновите программу защиты от вирусов или загрузите и установите последнюю версию Центра обновления Windows.

Заражение вирусом, вызывающее ошибку выполнения на вашем компьютере, необходимо немедленно предотвратить, поместить в карантин или удалить. Убедитесь, что вы обновили свою антивирусную программу и выполнили тщательное сканирование компьютера или запустите Центр обновления Windows, чтобы получить последние определения вирусов и исправить их.

Метод 5 — Запустить очистку диска

Вы также можете столкнуться с ошибкой выполнения из-за очень нехватки свободного места на вашем компьютере.

  • Вам следует подумать о резервном копировании файлов и освобождении места на жестком диске.
  • Вы также можете очистить кеш и перезагрузить компьютер.
  • Вы также можете запустить очистку диска, открыть окно проводника и щелкнуть правой кнопкой мыши по основному каталогу (обычно это C :)
  • Щелкните «Свойства», а затем — «Очистка диска».

Метод 6 — Переустановите графический драйвер

Если ошибка связана с плохим графическим драйвером, вы можете сделать следующее:

  • Откройте диспетчер устройств и найдите драйвер видеокарты.
  • Щелкните правой кнопкой мыши драйвер видеокарты, затем нажмите «Удалить», затем перезагрузите компьютер.

Метод 7 — Ошибка выполнения, связанная с IE

Если полученная ошибка связана с Internet Explorer, вы можете сделать следующее:

  1. Сбросьте настройки браузера.
    • В Windows 7 вы можете нажать «Пуск», перейти в «Панель управления» и нажать «Свойства обозревателя» слева. Затем вы можете перейти на вкладку «Дополнительно» и нажать кнопку «Сброс».
    • Для Windows 8 и 10 вы можете нажать «Поиск» и ввести «Свойства обозревателя», затем перейти на вкладку «Дополнительно» и нажать «Сброс».
  2. Отключить отладку скриптов и уведомления об ошибках.
    • В том же окне «Свойства обозревателя» можно перейти на вкладку «Дополнительно» и найти пункт «Отключить отладку сценария».
    • Установите флажок в переключателе.
    • Одновременно снимите флажок «Отображать уведомление о каждой ошибке сценария», затем нажмите «Применить» и «ОК», затем перезагрузите компьютер.

Если эти быстрые исправления не работают, вы всегда можете сделать резервную копию файлов и запустить восстановление на вашем компьютере. Однако вы можете сделать это позже, когда перечисленные здесь решения не сработают.

Другие языки:

How to fix Error 7960 (There was an error compiling this function) — There was an error compiling this [email protected] Visual Basic module contains a syntax [email protected] the code, and then recompile [email protected]@@@1.
Wie beheben Fehler 7960 (Beim Kompilieren dieser Funktion ist ein Fehler aufgetreten) — Beim Kompilieren dieser Funktion ist ein Fehler [email protected] Visual Basic-Modul enthält einen [email protected]Überprüfen Sie den Code und kompilieren Sie ihn dann [email protected]@@@1.
Come fissare Errore 7960 (Si è verificato un errore durante la compilazione di questa funzione) — Si è verificato un errore durante la compilazione di questa [email protected] modulo Visual Basic contiene un errore di [email protected] il codice, quindi [email protected]@@@1.
Hoe maak je Fout 7960 (Er is een fout opgetreden bij het compileren van deze functie) — Er is een fout opgetreden bij het compileren van deze [email protected] Visual Basic-module bevat een [email protected] de code en compileer deze [email protected]@@@1.
Comment réparer Erreur 7960 (Une erreur s’est produite lors de la compilation de cette fonction) — Une erreur s’est produite lors de la compilation de cette [email protected] module Visual Basic contient une erreur de [email protected]érifiez le code, puis [email protected]@@@1.
어떻게 고치는 지 오류 7960 (이 함수를 컴파일하는 동안 오류가 발생했습니다.) — 이 함수를 컴파일하는 동안 오류가 발생했습니다[email protected] Basic 모듈에 구문 오류가 있습니다[email protected]코드를 확인한 다음 다시 컴파일하세요[email protected]@@@1.
Como corrigir o Erro 7960 (Ocorreu um erro ao compilar esta função) — Ocorreu um erro ao compilar esta função. @ O módulo do Visual Basic contém um erro de sintaxe. @ Verifique o código e recompile-o. @ 1 @@@ 1.
Hur man åtgärdar Fel 7960 (Det uppstod ett fel när den här funktionen kompilerades) — Det uppstod ett fel när den här funktionen skulle sammanstä[email protected] Basic -modulen innehåller ett [email protected] koden och kompilera sedan om [email protected] @@@ 1.
Jak naprawić Błąd 7960 (Wystąpił błąd podczas kompilowania tej funkcji) — Wystąpił błąd podczas kompilowania tej [email protected]ł Visual Basic zawiera błąd skł[email protected]ź kod, a następnie skompiluj go [email protected]@@@1.
Cómo arreglar Error 7960 (Hubo un error al compilar esta función.) — Se produjo un error al compilar esta función. @ El módulo de Visual Basic contiene un error de sintaxis. @ Verifique el código y luego vuelva a compilarlo. @ 1 @@@ 1.

The Author Об авторе: Фил Харт является участником сообщества Microsoft с 2010 года. С текущим количеством баллов более 100 000 он внес более 3000 ответов на форумах Microsoft Support и создал почти 200 новых справочных статей в Technet Wiki.

Следуйте за нами: Facebook Youtube Twitter

Последнее обновление:

19/03/22 08:53 : Пользователь Windows 10 проголосовал за то, что метод восстановления 4 работает для него.

Рекомендуемый инструмент для ремонта:

Этот инструмент восстановления может устранить такие распространенные проблемы компьютера, как синие экраны, сбои и замораживание, отсутствующие DLL-файлы, а также устранить повреждения от вредоносных программ/вирусов и многое другое путем замены поврежденных и отсутствующих системных файлов.

ШАГ 1:

Нажмите здесь, чтобы скачать и установите средство восстановления Windows.

ШАГ 2:

Нажмите на Start Scan и позвольте ему проанализировать ваше устройство.

ШАГ 3:

Нажмите на Repair All, чтобы устранить все обнаруженные проблемы.

СКАЧАТЬ СЕЙЧАС

Совместимость

Требования

1 Ghz CPU, 512 MB RAM, 40 GB HDD
Эта загрузка предлагает неограниченное бесплатное сканирование ПК с Windows. Полное восстановление системы начинается от $19,95.

ID статьи: ACX011650RU

Применяется к: Windows 10, Windows 8.1, Windows 7, Windows Vista, Windows XP, Windows 2000

Совет по увеличению скорости #57

Проверка на наличие плохой памяти в Windows:

Диагностируйте проблему с плохой памятью (RAM) на вашем компьютере с помощью таких инструментов, как memtest86 и Prime95. ОЗУ — один из самых важных компонентов вашего ПК, и иногда он может выйти из строя. Регулярно тестируйте его, чтобы обнаруживать проблемы на ранней стадии.

Нажмите здесь, чтобы узнать о другом способе ускорения работы ПК под управлением Windows

____

1 / 1 / 0

Регистрация: 12.05.2011

Сообщений: 158

1

28.02.2019, 15:17. Показов 3756. Ответов 11

Метки ошабка компиляции (Все метки)


Студворк — интернет-сервис помощи студентам

в общем при двойном клике

Visual Basic
1
2
3
Private Sub date_dolg_refresh_DblClick(Cancel As Integer)
Me.date_dolg_refresh = Now()
End Sub

ячейке присвается текущее время

выскакивает ошибка компиляции при этом сначала все работает как сделаешь
а потом спустя время выскакивает ошибка.

не пойми почему.

подскажите за что ?

скрин окна компиляции приложил

Миниатюры

Ошибка компиляции в очень простом выражении  Me.date_dolg_refresh = Now()
 

0

8702 / 5474 / 571

Регистрация: 27.03.2013

Сообщений: 18,805

28.02.2019, 15:25

2

Лучший ответ Сообщение было отмечено ____ как решение

Решение

____, Можно предположить, что имя поля желательно заключить в квадратненькие скобочки ибо там присутствует спецзарезервированноесловечко — date
А новейшие форматы на столько тупые, что могут и не понимать некоторые подобные нюансы.
Короче — Лучше перебдить.
Также снизошло от тараканов в голове, что возможно вы эксперементировали много, а БД ни разу не сжимали и мог остаться мусор, который может влиять на это.

0

Эксперт MS Access

17138 / 7004 / 1567

Регистрация: 21.06.2012

Сообщений: 13,108

28.02.2019, 15:29

3

Обязательно ставьте Option Explicit в начало модуля, тогда ошибки компиляции будут выявляться при компиляции.
А так — проверьте имена в форме, источнике записей, … . Есть ли это имя в списке, после набора Me.

0

8702 / 5474 / 571

Регистрация: 27.03.2013

Сообщений: 18,805

28.02.2019, 15:45

4

Лучший ответ Сообщение было отмечено ____ как решение

Решение

____, Да и кстати, вспомнил.
Не знаю почему (не теоретик), но именно в связи с полями — Дата/Время, примерно около 4-5 раз, при возникновении всяческих ошибок с датами, помогало только если — УСЁ импортировать в девственно пустую БД из глюченой.
Ни где не видел внятных объяснений, но по себе могу сказать, что в 99,9% помогало.

0

295 / 256 / 68

Регистрация: 18.06.2015

Сообщений: 570

28.02.2019, 16:12

5

Лучший ответ Сообщение было отмечено Capi как решение

Решение

Судя по тому, что название функции в выпадающем списке на самом верху показывает полное имя функции, а не только название события, у вас нет контрола с таким именем, проверяйте форму.

1

9724 / 4904 / 1195

Регистрация: 05.10.2016

Сообщений: 13,806

Записей в блоге: 1

28.02.2019, 21:19

6

Цитата
Сообщение от ____
Посмотреть сообщение

не пойми почему.

А контроль в форме точно называется «date_dolg_refresh»?
… а может «date dolg refresh»!?

0

Эксперт MS Access

7267 / 4469 / 288

Регистрация: 12.08.2011

Сообщений: 13,513

01.03.2019, 09:21

7

С пробелами было бы слишком глупо

0

ᴁ®

Эксперт MS Access

3064 / 1732 / 359

Регистрация: 13.12.2016

Сообщений: 5,919

Записей в блоге: 4

01.03.2019, 10:16

8

____, попробуйте вместо Now() поставить Date()
Возможно связано с форматом поля
И еще. Если закоментировать строку — ошибка компиляции исчезает?
Бывает, что трабл в другом месте….

0

1 / 1 / 0

Регистрация: 12.05.2011

Сообщений: 158

12.06.2020, 10:36

 [ТС]

9

Цитата
Сообщение от VinniPuh
Посмотреть сообщение

____, Да и кстати, вспомнил.
Не знаю почему (не теоретик), но именно в связи с полями — Дата/Время, примерно около 4-5 раз, при возникновении всяческих ошибок с датами, помогало только если — УСЁ импортировать в девственно пустую БД из глюченой.
Ни где не видел внятных объяснений, но по себе могу сказать, что в 99,9% помогало.

сейчас начал так действовать часто вижу глюки и просто копирую форму , переименовываю и все работает ))

0

Модератор

Эксперт MS Access

5061 / 2529 / 628

Регистрация: 12.06.2016

Сообщений: 6,747

12.06.2020, 11:35

10

____,

Не те ответы Вы решением посчитали.
Правильный ответ — в сообщении #5.

Цитата
Сообщение от ____
Посмотреть сообщение

сейчас начал так действовать часто вижу глюки и просто копирую форму , переименовываю и все работает ))

Зря. Лучше бы причину «глюков» поискали.
Чудеса бывают крайне редко, обычно разработчик сам все эти «глюки» и наплодил.

0

8702 / 5474 / 571

Регистрация: 27.03.2013

Сообщений: 18,805

12.06.2020, 19:44

11

____, если просто копировать, то в системных таблицах останутся глюки и противоречия, ибо при сжатии БД они почему то не удаляются.

А если импортировать все объекты из БД в чистую, то системные таблицы создаются заново.
Особо это актуально когда много чего переделывает по несколько раз.
По крайней мере, мне это очень помогает, когда в творческом экстазе много чего понакуралесишь.

0

Модератор

Эксперт MS Access

11331 / 4651 / 747

Регистрация: 07.08.2010

Сообщений: 13,470

Записей в блоге: 4

12.06.2020, 20:37

12

____,
вы явно любитель подчеркиваний — может и формы/отчеты начинаете с подчеркиваний
когда-то и где-то я читала, что это вредно для здоровья программы

я применяю подчеркивания только в середине названий

0

Содержание

  1. Ошибка при компиляции модуля или запуске процедуры в Access
  2. Симптомы
  3. Причина
  4. Решение
  5. Ошибка «Номер ошибки с ошибкой действия: 2950» при запуске макроса, который вызывает функцию VBA в базе данных Access
  6. Симптомы
  7. Причина
  8. Решение
  9. Метод 1. Включить базу данных для текущего сеанса
  10. Метод 2. Перемещение базы данных в надежное расположение
  11. Дополнительные сведения
  12. Access не работает vba
  13. Перестает обрабатываться код VBA
  14. Ошибка мастера в Access 2010 после установки Office 2010 SP1
  15. Симптомы
  16. Причина
  17. Решение
  18. Проблема устранена?
  19. Ссылки
  20. Дополнительная информация

Исходный номер КБ: 921504

Эта статья применяется либо к файлу базы данных Microsoft Access (.mdb), либо к файлу базы данных Microsoft Access (.accdb).

Симптомы

Рассмотрим следующий сценарий. У вас есть процедура, которая содержит функцию Microsoft Visual Basic для приложений (VBA). База данных Microsoft Office Access содержит ссылку на отсутствующий объектную библиотеку или отсутствующий тип библиотеки. Вы компиляторите модуль или запустите процедуру. В этом сценарии вы можете получить одно из следующих сообщений об ошибке:

Сообщение об ошибке 1

База Microsoft Office доступа или проект содержит отсутствующие или неуязвимые ссылки на имя файла.
Чтобы обеспечить правильную работу базы данных или проекта, необходимо исправить эту ссылку.

Сообщение об ошибке 2

Ошибка компилирования:
Не удается найти проект или библиотеку

Причина

Эта проблема возникает из-за того, что по крайней мере одна объектная библиотека со ссылкой или по крайней мере одна библиотека типов, которая ссылается, отсутствует или не работает.

Решение

Чтобы устранить эту проблему, найдите недостающую библиотеку объектов или найдите отсутствующий тип библиотеки. Для этого выполните следующие действия:

  1. В Access откройте базу данных.
  2. Щелкните вкладку Средства базы данных и нажмите кнопку Visual Basic в группе Макрос.
  3. В редакторе Visual Basic выберите меню Tools и нажмите ссылки.
  4. В диалоговом окне Ссылки найдите библиотеку объектов или библиотеку типов, отображаемую в виде: MISSING: ReferenceName****
  5. Щелкните, чтобы очистить поле рядом с библиотекой объектов или библиотекой типов, расположенной в шаге 4.

Если вам известно расположение пропавшего файла библиотеки объектов или местонахождение отсутствующих файлов библиотеки типов, вы можете нажать Кнопку Обзор, чтобы найти файл библиотеки объектов или файл библиотеки типа.

Источник

Ошибка «Номер ошибки с ошибкой действия: 2950» при запуске макроса, который вызывает функцию VBA в базе данных Access

Office 365 ProPlus переименован в Майкрософт 365 корпоративные приложения. Для получения дополнительной информации об этом изменении прочитайте этот блог.

Исходный номер КБ: 931407

Если вы клиент малого бизнеса, найдите дополнительные ресурсы для устранения неполадок и обучения на сайте Support for Small Business.

Симптомы

При запуске макроса, который вызывает функцию Microsoft Visual Basic для приложений (VBA) в базе данных Microsoft Office Access 2007 или более поздней, вы получите следующее сообщение об ошибке:

Действие не удалось
Имя макроса: MacroName
Условие: условие
Имя макроса: RunCode
Аргументы: Аргументы
Число ошибок: 2950

Причина

Эта проблема возникает, если доступ к базе данных не доверяет. По умолчанию последние версии открытых баз данных Access, которые не доверяются в режиме Отключено. В режиме Отключено, исполняемый контент отключен.

Решение

Если вы доверяете автору базы данных и хотите включить базу данных, используйте один из следующих методов.

Метод 1. Включить базу данных для текущего сеанса

При использовании этого метода Access включает базу данных до закрытия базы данных. Чтобы включить базу данных для текущего сеанса, выполните следующие действия:

  1. В панели сообщений щелкните Параметры.
  2. В диалоговом окне Microsoft Office параметры безопасности щелкните Включить этот контент, а затем нажмите кнопку ОК.

В зависимости от версии Access вам может потребоваться повторять эти действия каждый раз, когда вы открываете базу данных.

Метод 2. Перемещение базы данных в надежное расположение

Для этого выполните следующие действия:

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

Последовательно выберите пункты Файл и Параметры.

Щелкните Центр доверия и нажмите кнопку Центр доверия Параметры в Microsoft Office Центре доверия доступа.

Щелкните доверенные расположения и используйте одну из следующих процедур:

  • Обратите внимание на пути доверенных местоположений, перечисленных в списке.
  • Добавьте новое надежное расположение. Для этого нажмите кнопку Добавить новое расположение, а затем указать путь расположения, которое вы хотите добавить.

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

Дополнительные сведения

Вы можете использовать макрос для проверки доверия к базе данных AutoExec при открываемой базе данных. Кроме того, макрос может открыть форму, отображаемую настраиваемым сообщением для пользователей, если база данных не доверяется. Это сообщение позволяет пользователям знать, что для успешного запуска кода база данных должна быть включена или доверяема.

Чтобы создать AutoExec макрос и форму, выполните следующие действия:

Создание новой формы в представлении Design.

Добавьте текстовое поле или метку в форму, а затем введите сведения, которые необходимо отобразить пользователю.

Сохраните и закроите форму.

Создайте макрос, а затем назови AutoExec макрос.

Показать столбец Условия.

Введите следующую строку в столбце Условия:

В столбце Действия щелкните OpenForm.

В поле Имя формы в статье Аргументы действий щелкните форму, созданную на шаге 1.

Сохраните и закроите макрос.

Когда откроется база данных, AutoExec макрос запускается, а затем проверяет IsTrusted состояние. Если доступ не доверяет базе данных, макрос открывает форму, указанную в OpenForm действии макроса.

Источник

Access не работает vba

access 2010 runtime � windows 7

�� windows xp + access 2010
��� ������� �������� 2 ��� 13, 19:01����[14786266] �������� | ���������� �������� ����������

Re: ������ ������ vba ������� [new]
qwerty112
Guest
������������, ��������, � ��1.
2 ��� 13, 19:40����[14786438] �������� | ���������� �������� ����������
Re: ������ ������ vba ������� [new]
Vw
Member

������: ������
���������: 2286

��������� �� ����� �� ����� 64 ���� —
����������� � ��������� �� 32 ������ ����..
2 ��� 13, 19:50����[14786458] �������� | ���������� �������� ����������
Re: ������ ������ vba ������� [new]
qwerty112
Guest
Vw
��������� �� ����� �� ����� 64 ���� —
����������� � ��������� �� 32 ������ ����..

�������� ����� — �� �-��
����� �������� ������ �������� ������/��������, ��� ���������� �������� — ������� ��

2 ��� 13, 19:55����[14786479] �������� | ���������� �������� ����������
Re: ������ ������ vba ������� [new]
sahard
Member

������:
���������: 113

Vw
��� ����� ����� ����������

������ accde

access 2010 runtime � windows 7

�� windows xp + access 2010
��� ������� ��������

�������������� access 2010 � windows 7 — ��� ���������. �������� �� windows xp + access 2010 — ����� �� ����.

Источник

Перестает обрабатываться код VBA

Замечаю такую ситуацию:
1) Работаю с БД на работе — все отрабатывает без проблем (и hide_on и закрытие форм (через vba), фильт и все остальное)
2) архивирую — несу домой, распаковываю — работает странно, но вроде как то с трудом что-то запустилось
3) Несу обновленную версию из дома на работу — перестает обрабатываться любой код VBA:
— не работает hide on, не закрываются формы по команде, не работает фильтр. Если только создаю новую кнопку на макросе, то выполнится, если новая кнопка с кодом — не работает, просто не реагирует на нажатие..

С чем это может быть связано?

Дома 2007, на работе 2010

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Почему код перестаёт работать в функции?
Здравствуйте! У меня есть вот такой код: $login = «admin»; if (isset($_GET)) < .

Не успевают обрабатываться события
Добрый день. Имеется приложения, которое генерирует около 25 событий в секунды, каждое события.

Код, работающий в VS2003, перестаёт работать в VS2008
#include «stdafx.h» #include #include #include «math.h» #include.

Код перестает работать при разбиении на функции
Всем привет еще раз! Есть два кода. Вот первый нерабочий код double R=4444444444; public void.

Где «там»? О чем вообще речь идет?

Модуль, чтобы Форма при запуске выскакивала, а акссесс сворачивался.
Нашел модуль на этом форуме.

Понятия не имею. Вашу базу в глаза не видела, даром ясновидения не обладаю.

Добавлено через 13 минут

А, все, поняла, о каком модуле речь. Тот модуль вызывает функции библиотек виндовз. Которые в разных виндовз могут совершенно разными быть.

Но вообще вы даете. Как будто все наизуть помнят, как называлась пользовательсая функция в ответе на тему надцать страниц тому назад

Добавлено через 1 минуту
Вот эта?

Тогда действительно ждем божественной помощи mobile — только он знает заклинание услвого компилирования для разных Access и правильные имена библиотек для 64-разрядной системы.

Вы пока все равно выкладывайте базу, надо смотреть, что там с остальными ошибками, как и чем вы форму закрываете.

Вложения

Price.zip (228.4 Кб, 5 просмотров)

Знаете, первое, что я вижу, открывая вашу базу — это сообщение о несовместимости версий и отсылка на эту https://msdn.microsoft.com/lib. e.14).aspx страницу.

Т.е. вам сразу сообщается, что версии несовместимы и работать правильно не обязаны. В принципе, я бы на этом и остановилась и считала вопрос исчерпаным.

Добавлено через 3 минуты
Дальше. Модули не компилируются, т.к. в них полно синтаксических ошибок. Число End If не совпадает с числом If, после Currentdb.Execute стоит знак равества.

Устраните ошибки, и нормально откомпилируйте базу хотя бы один раз. И только после этого можно будет жаловаться на то, выполняется или нет ваш код vba.

Добавлено через 2 минуты
Ну вот, поисправляла ошибки. В какой форме не работает кнопка закрытия?

Источник

Ошибка мастера в Access 2010 после установки Office 2010 SP1

Симптомы

При использовании встроенных мастеров в Microsoft Access 2010, русская версия (64-bit) с Пакет обновления 1 (SP1), вы получаете следующее сообщение об ошибке:

Не удается открыть базу данных, так как содержащийся в ней проект VBA не может быть прочитано. База данных может быть открыта только в том случае, если проект VBA сначала удален. Удаление проекта VBA удаляет весь код из модулей, форм и отчетов. Перед открытием базы данных и удалением проекта VBA необходимо создать базу данных.

После выбора ОК в этом сообщении вы можете получить любое из следующих сообщений об ошибках:

Обновление невозможно. База данных или объект доступны только для чтения.

Проект Visual Basic для приложений в базе данных поврежден.

Microsoft Access не может найти мастера. Этот мастер не установлен, или в реестре Windows неправильный параметр, или этот мастер отключен.

Эта проблема характерна для 64-битной версии Access 2010 (64-bit). Это не происходит в 32-битной версии Access 2010.

Причина

При установке Access 2010 SP1 встроенные файлы мастера не обновляются успешно.

Решение

Чтобы устранить эту проблему, выполните следующие действия:

Закрыть все экземпляры Access 2010.

Open File Explorer. Для этого выберите Начните, введите файл, а затем выберите Проводник файлов в списке результатов.

Убедитесь, что расширения файлов видны. Для этого выберите ленту Просмотр, а затем выберите поле расширения имен файлов в группе Show/hide.

Переименуй следующие файлы в ( .old extension).

Исходное имя файла Переименовать:
Acwzmain.accde Acwzmain.old
Acwzlib.accde Acwzlib.old
Acwztool.accde Acwztool.old
Utility.accda Utility.old

Эти файлы расположены по c:Program FilesMicrosoft OfficeOffice14ACCWIZ адресу .

Проблема устранена?

Если проблема не устранена, обратитесь в службу поддержки.

Ссылки

Дополнительная информация

Требуется дополнительная помощь? Зайдите на сайт сообщества Майкрософт.

Источник

Adblock
detector

У меня есть таблица с полем, который имеет вычисляемый тип и содержит следующее выражение:

IIf(IsNull([OrderValue]),[TotalPhaseLabourCost]-[DefaultOrderValue],[TotalPhaseLabourCost]-[OrderValue])

По какой-то причине, когда я открываю таблицу в любом представлении, она выдает ошибку:

«Произошла ошибка при компиляции этой функции. Модуль Visual Basic содержит синтаксическую ошибку. Проверьте код, а затем перекомпилируйте его».

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

3 ответа

Лучший ответ

Это немного расплывчато, поэтому я могу только догадываться.

  1. Попробуйте скомпилировать код, как написано в сообщении об ошибке.
  2. проверьте, есть ли у вас функция с тем же именем, что и ваше поле
  3. Попробуйте заменить IIf(IsNull([OrderValue]), на IIf([OrderValue] is Null,


0

Patrick Honorez
23 Ноя 2017 в 11:04

Для меня возникла проблема с некоторыми полями (в некоторых полях (дата, число) в «новой» записи отображалось сообщение об ошибке #NAME?).
Для меня это сработало, чтобы закрыть таблицу, щелкнуть ее правой кнопкой мыши и открыть в режиме конструктора.
Для каждого из полей с проблемами я снова выбираю тип данных (который уже был показан) из выпадающего меню (так, тот же тип данных!).
Сохранить .
Тогда это больше не давало сообщений об ошибках.


0

Yunnosch
19 Июл 2019 в 10:39

Вы, вероятно, пропускаете ведущий знак равенства:

=IIf(IsNull([OrderValue]),[TotalPhaseLabourCost]-[DefaultOrderValue],[TotalPhaseLabourCost]-[OrderValue])

Или вы можете использовать:

=[TotalPhaseLabourCost]-Nz([OrderValue],[DefaultOrderValue])


0

Gustav
23 Ноя 2017 в 11:27

В этой статье представлена ошибка с номером Ошибка 7960, известная как При компиляции этой функции произошла ошибка, описанная как При компиляции этой функции произошла ошибка. @ Модуль Visual Basic содержит синтаксическую ошибку. @ Проверьте код, а затем перекомпилируйте его. @ 1 @@@ 1.

О программе Runtime Ошибка 7960

Время выполнения Ошибка 7960 происходит, когда Microsoft Access дает сбой или падает во время запуска, отсюда и название. Это не обязательно означает, что код был каким-то образом поврежден, просто он не сработал во время выполнения. Такая ошибка появляется на экране в виде раздражающего уведомления, если ее не устранить. Вот симптомы, причины и способы устранения проблемы.

Определения (Бета)

Здесь мы приводим некоторые определения слов, содержащихся в вашей ошибке, в попытке помочь вам понять вашу проблему. Эта работа продолжается, поэтому иногда мы можем неправильно определить слово, так что не стесняйтесь пропустить этот раздел!

  • Basic — Универсальный символьный код инструкций BASIC для начинающих — это семейство языков программирования высокого уровня, разработанных для простоты использования.
  • Функция — Функция, также называемая процедурой, методом, подпрограммой или подпрограммой, представляет собой часть кода, предназначенную для выполнения отдельной конкретной задачи.
  • Модуль — логический подразделение более крупной и сложной системы.
  • Перекомпилировать — действие по повторной компиляции чего-либо.
  • Синтаксис — синтаксис ссылается на к фактическим языковым элементам и самим символам.
  • Синтаксическая ошибка . Синтаксическая ошибка возникает, когда программа не следует синтаксическим правилам языка программирования.
  • Компиляция — Компиляция — это преобразование исходного текста в какую-либо другую форму или представление.
Симптомы Ошибка 7960 — При компиляции этой функции произошла ошибка

Ошибки времени выполнения происходят без предупреждения. Сообщение об ошибке может появиться на экране при любом запуске %программы%. Фактически, сообщение об ошибке или другое диалоговое окно может появляться снова и снова, если не принять меры на ранней стадии.

Возможны случаи удаления файлов или появления новых файлов. Хотя этот симптом в основном связан с заражением вирусом, его можно отнести к симптомам ошибки времени выполнения, поскольку заражение вирусом является одной из причин ошибки времени выполнения. Пользователь также может столкнуться с внезапным падением скорости интернет-соединения, но, опять же, это не всегда так.

Fix При компиляции этой функции произошла ошибка (Error Ошибка 7960)
(Только для примера)

Причины При компиляции этой функции произошла ошибка — Ошибка 7960

При разработке программного обеспечения программисты составляют код, предвидя возникновение ошибок. Однако идеальных проектов не бывает, поскольку ошибки можно ожидать даже при самом лучшем дизайне программы. Глюки могут произойти во время выполнения программы, если определенная ошибка не была обнаружена и устранена во время проектирования и тестирования.

Ошибки во время выполнения обычно вызваны несовместимостью программ, запущенных в одно и то же время. Они также могут возникать из-за проблем с памятью, плохого графического драйвера или заражения вирусом. Каким бы ни был случай, проблему необходимо решить немедленно, чтобы избежать дальнейших проблем. Ниже приведены способы устранения ошибки.

Методы исправления

Ошибки времени выполнения могут быть раздражающими и постоянными, но это не совсем безнадежно, существует возможность ремонта. Вот способы сделать это.

Если метод ремонта вам подошел, пожалуйста, нажмите кнопку upvote слева от ответа, это позволит другим пользователям узнать, какой метод ремонта на данный момент работает лучше всего.

Обратите внимание: ни ErrorVault.com, ни его авторы не несут ответственности за результаты действий, предпринятых при использовании любого из методов ремонта, перечисленных на этой странице — вы выполняете эти шаги на свой страх и риск.

Метод 4 — Переустановите библиотеки времени выполнения

Вы можете получить сообщение об ошибке из-за обновления, такого как пакет MS Visual C ++, который может быть установлен неправильно или полностью. Что вы можете сделать, так это удалить текущий пакет и установить новую копию.

  • Удалите пакет, выбрав «Программы и компоненты», найдите и выделите распространяемый пакет Microsoft Visual C ++.
  • Нажмите «Удалить» в верхней части списка и, когда это будет сделано, перезагрузите компьютер.
  • Загрузите последний распространяемый пакет от Microsoft и установите его.

Метод 1 — Закройте конфликтующие программы

Когда вы получаете ошибку во время выполнения, имейте в виду, что это происходит из-за программ, которые конфликтуют друг с другом. Первое, что вы можете сделать, чтобы решить проблему, — это остановить эти конфликтующие программы.

  • Откройте диспетчер задач, одновременно нажав Ctrl-Alt-Del. Это позволит вам увидеть список запущенных в данный момент программ.
  • Перейдите на вкладку «Процессы» и остановите программы одну за другой, выделив каждую программу и нажав кнопку «Завершить процесс».
  • Вам нужно будет следить за тем, будет ли сообщение об ошибке появляться каждый раз при остановке процесса.
  • Как только вы определите, какая программа вызывает ошибку, вы можете перейти к следующему этапу устранения неполадок, переустановив приложение.

Метод 2 — Обновите / переустановите конфликтующие программы

Использование панели управления

  • В Windows 7 нажмите кнопку «Пуск», затем нажмите «Панель управления», затем «Удалить программу».
  • В Windows 8 нажмите кнопку «Пуск», затем прокрутите вниз и нажмите «Дополнительные настройки», затем нажмите «Панель управления»> «Удалить программу».
  • Для Windows 10 просто введите «Панель управления» в поле поиска и щелкните результат, затем нажмите «Удалить программу».
  • В разделе «Программы и компоненты» щелкните проблемную программу и нажмите «Обновить» или «Удалить».
  • Если вы выбрали обновление, вам просто нужно будет следовать подсказке, чтобы завершить процесс, однако, если вы выбрали «Удалить», вы будете следовать подсказке, чтобы удалить, а затем повторно загрузить или использовать установочный диск приложения для переустановки. программа.

Использование других методов

  • В Windows 7 список всех установленных программ можно найти, нажав кнопку «Пуск» и наведя указатель мыши на список, отображаемый на вкладке. Вы можете увидеть в этом списке утилиту для удаления программы. Вы можете продолжить и удалить с помощью утилит, доступных на этой вкладке.
  • В Windows 10 вы можете нажать «Пуск», затем «Настройка», а затем — «Приложения».
  • Прокрутите вниз, чтобы увидеть список приложений и функций, установленных на вашем компьютере.
  • Щелкните программу, которая вызывает ошибку времени выполнения, затем вы можете удалить ее или щелкнуть Дополнительные параметры, чтобы сбросить приложение.

Метод 3 — Обновите программу защиты от вирусов или загрузите и установите последнюю версию Центра обновления Windows.

Заражение вирусом, вызывающее ошибку выполнения на вашем компьютере, необходимо немедленно предотвратить, поместить в карантин или удалить. Убедитесь, что вы обновили свою антивирусную программу и выполнили тщательное сканирование компьютера или запустите Центр обновления Windows, чтобы получить последние определения вирусов и исправить их.

Метод 5 — Запустить очистку диска

Вы также можете столкнуться с ошибкой выполнения из-за очень нехватки свободного места на вашем компьютере.

  • Вам следует подумать о резервном копировании файлов и освобождении места на жестком диске.
  • Вы также можете очистить кеш и перезагрузить компьютер.
  • Вы также можете запустить очистку диска, открыть окно проводника и щелкнуть правой кнопкой мыши по основному каталогу (обычно это C
  • Щелкните «Свойства», а затем — «Очистка диска».

Метод 6 — Переустановите графический драйвер

Если ошибка связана с плохим графическим драйвером, вы можете сделать следующее:

  • Откройте диспетчер устройств и найдите драйвер видеокарты.
  • Щелкните правой кнопкой мыши драйвер видеокарты, затем нажмите «Удалить», затем перезагрузите компьютер.

Метод 7 — Ошибка выполнения, связанная с IE

Если полученная ошибка связана с Internet Explorer, вы можете сделать следующее:

  1. Сбросьте настройки браузера.
    • В Windows 7 вы можете нажать «Пуск», перейти в «Панель управления» и нажать «Свойства обозревателя» слева. Затем вы можете перейти на вкладку «Дополнительно» и нажать кнопку «Сброс».
    • Для Windows 8 и 10 вы можете нажать «Поиск» и ввести «Свойства обозревателя», затем перейти на вкладку «Дополнительно» и нажать «Сброс».
  2. Отключить отладку скриптов и уведомления об ошибках.
    • В том же окне «Свойства обозревателя» можно перейти на вкладку «Дополнительно» и найти пункт «Отключить отладку сценария».
    • Установите флажок в переключателе.
    • Одновременно снимите флажок «Отображать уведомление о каждой ошибке сценария», затем нажмите «Применить» и «ОК», затем перезагрузите компьютер.

Если эти быстрые исправления не работают, вы всегда можете сделать резервную копию файлов и запустить восстановление на вашем компьютере. Однако вы можете сделать это позже, когда перечисленные здесь решения не сработают.

Другие языки:

How to fix Error 7960 (There was an error compiling this function) — There was an error compiling this [email protected] Visual Basic module contains a syntax [email protected] the code, and then recompile [email protected]@@@1.
Wie beheben Fehler 7960 (Beim Kompilieren dieser Funktion ist ein Fehler aufgetreten) — Beim Kompilieren dieser Funktion ist ein Fehler [email protected] Visual Basic-Modul enthält einen [email protected]Überprüfen Sie den Code und kompilieren Sie ihn dann [email protected]@@@1.
Come fissare Errore 7960 (Si è verificato un errore durante la compilazione di questa funzione) — Si è verificato un errore durante la compilazione di questa [email protected] modulo Visual Basic contiene un errore di [email protected] il codice, quindi [email protected]@@@1.
Hoe maak je Fout 7960 (Er is een fout opgetreden bij het compileren van deze functie) — Er is een fout opgetreden bij het compileren van deze [email protected] Visual Basic-module bevat een [email protected] de code en compileer deze [email protected]@@@1.
Comment réparer Erreur 7960 (Une erreur s’est produite lors de la compilation de cette fonction) — Une erreur s’est produite lors de la compilation de cette [email protected] module Visual Basic contient une erreur de [email protected]érifiez le code, puis [email protected]@@@1.
어떻게 고치는 지 오류 7960 (이 함수를 컴파일하는 동안 오류가 발생했습니다.) — 이 함수를 컴파일하는 동안 오류가 발생했습니다[email protected] Basic 모듈에 구문 오류가 있습니다[email protected]코드를 확인한 다음 다시 컴파일하세요[email protected]@@@1.
Como corrigir o Erro 7960 (Ocorreu um erro ao compilar esta função) — Ocorreu um erro ao compilar esta função. @ O módulo do Visual Basic contém um erro de sintaxe. @ Verifique o código e recompile-o. @ 1 @@@ 1.
Hur man åtgärdar Fel 7960 (Det uppstod ett fel när den här funktionen kompilerades) — Det uppstod ett fel när den här funktionen skulle sammanstä[email protected] Basic -modulen innehåller ett [email protected] koden och kompilera sedan om [email protected] @@@ 1.
Jak naprawić Błąd 7960 (Wystąpił błąd podczas kompilowania tej funkcji) — Wystąpił błąd podczas kompilowania tej [email protected]ł Visual Basic zawiera błąd skł[email protected]ź kod, a następnie skompiluj go [email protected]@@@1.
Cómo arreglar Error 7960 (Hubo un error al compilar esta función.) — Se produjo un error al compilar esta función. @ El módulo de Visual Basic contiene un error de sintaxis. @ Verifique el código y luego vuelva a compilarlo. @ 1 @@@ 1.

The Author Об авторе: Фил Харт является участником сообщества Microsoft с 2010 года. С текущим количеством баллов более 100 000 он внес более 3000 ответов на форумах Microsoft Support и создал почти 200 новых справочных статей в Technet Wiki.

Следуйте за нами: Facebook Youtube Twitter

Последнее обновление:

19/03/22 08:53 : Пользователь Windows 10 проголосовал за то, что метод восстановления 4 работает для него.

Рекомендуемый инструмент для ремонта:

Этот инструмент восстановления может устранить такие распространенные проблемы компьютера, как синие экраны, сбои и замораживание, отсутствующие DLL-файлы, а также устранить повреждения от вредоносных программ/вирусов и многое другое путем замены поврежденных и отсутствующих системных файлов.

ШАГ 1:

Нажмите здесь, чтобы скачать и установите средство восстановления Windows.

ШАГ 2:

Нажмите на Start Scan и позвольте ему проанализировать ваше устройство.

ШАГ 3:

Нажмите на Repair All, чтобы устранить все обнаруженные проблемы.

СКАЧАТЬ СЕЙЧАС

Совместимость

Требования

1 Ghz CPU, 512 MB RAM, 40 GB HDD
Эта загрузка предлагает неограниченное бесплатное сканирование ПК с Windows. Полное восстановление системы начинается от $19,95.

ID статьи: ACX011650RU

Применяется к: Windows 10, Windows 8.1, Windows 7, Windows Vista, Windows XP, Windows 2000

Совет по увеличению скорости #57

Проверка на наличие плохой памяти в Windows:

Диагностируйте проблему с плохой памятью (RAM) на вашем компьютере с помощью таких инструментов, как memtest86 и Prime95. ОЗУ — один из самых важных компонентов вашего ПК, и иногда он может выйти из строя. Регулярно тестируйте его, чтобы обнаруживать проблемы на ранней стадии.

Нажмите здесь, чтобы узнать о другом способе ускорения работы ПК под управлением Windows

  • Remove From My Forums
  • Question

  • After a recent update from Office 2016 to Office 365. Trying to open a query in access gives the error «there was an error compiling this function. If I create a new query and include a function e.g Left, Instr, Trim- I get the error»
    There was an error compiling this function» «The Visual Basic module contains a syntax error» «Check the code, and then recompile it.  

    I moved all objects to a new database but the problems stills exists. Any advice. Thx

Answers

  • This is what has been causing the error

    Public Declare Function GetUserName Lib "advapi32.dll" _
     Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

    Apparently the library file advapi32.dll was removed after the Windows 64bit upgrade. I removed the code and all the queries(with functions) now work.

    • Edited by

      Tuesday, August 27, 2019 6:43 PM

    • Marked as answer by
      Bukka
      Wednesday, August 28, 2019 1:39 AM
  • Remove From My Forums
  • Question

  • After a recent update from Office 2016 to Office 365. Trying to open a query in access gives the error «there was an error compiling this function. If I create a new query and include a function e.g Left, Instr, Trim- I get the error»
    There was an error compiling this function» «The Visual Basic module contains a syntax error» «Check the code, and then recompile it.  

    I moved all objects to a new database but the problems stills exists. Any advice. Thx

Answers

  • This is what has been causing the error

    Public Declare Function GetUserName Lib "advapi32.dll" _
     Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

    Apparently the library file advapi32.dll was removed after the Windows 64bit upgrade. I removed the code and all the queries(with functions) now work.

    • Edited by

      Tuesday, August 27, 2019 6:43 PM

    • Marked as answer by
      Bukka
      Wednesday, August 28, 2019 1:39 AM

Вот несколько простых способов исправить исключительную ожидаемую ошибку компиляции в Access 2007.

Рекомендуется: ASR Pro

  • 1. Скачайте и установите ASR Pro
  • 2. Откройте программу и нажмите «Сканировать»
  • 3. Нажмите «Восстановить», чтобы начать процесс восстановления.
  • Загрузите это программное обеспечение и почините свой компьютер за считанные минуты. г.

    Последнее обновление суббота, 17 июля 2021 г. | Access ’07 VBA Ожидаемое сообщение: разделитель списка или) Ошибка сообщает вам, что другой компилятор ожидал найти разделитель множества (например, аргументы, разделяющие запятую в вашей функции) или новую закрывающую скобку рядом с оператором ‘. В большинстве случаев это позволяет указать, где всегда возникает проблема.

    АризонаЕсли вы привыкли программировать последний Access 97, вы можете столкнуться с проблемой, когда вся ваша семья переключается на Access 2000 или Huge, и вы хотите двигаться дальше, когда хотите использовать тип объектной модели DAO в своем VBA. .Ариже

    Работает из-за Access 2007. Получение информации привело к изменениям инвентаризации в реальном времени на основе переноса / подтверждений. Мне рекомендовали следующий код, но он вызывает ошибку компиляции.

      Частная подкоманда 62_Click ()'Аргументы: ContID = основной контейнер должен быть записан в'AsOfDate подразумевает дату, до которой может быть рассчитано количество'Если отсутствует, включаются все транзакцииВозврат: количество в наличии. Ноль ошибок.Dim db As DAO.Database 'текущая база данныхDim player As DAO.Recordset 'различные наборы записейDim lngContID once long 'ContID as longDim strAsOf As String 'AsOfDate точно так же, как строкаDim strLasShipRec As String с последней отправкой ассоциируется с as stringDim strDateClause As String 'Дата по умолчанию для использования в операторах SQLОператор SQL Dim strSQL As String 'Dim lngOnHand As Long 'IonHand InventoryЕсли идея не равна нулю (ПРОДОЛЖИТЬ), тогда'Инициализация: проверка и преобразование параметровУстановите для db значение CurrentDb ()lngContID = CONTIDЕсли IsDate (AsOfDate), тоstrAsOf совпадает с "#" и Format buck (AsOfDate, "mm  / dd  and yyyy") и "#"'Получить дату и уровни объема LastShipRec для этого контейнераЕсли Len (strAsOf)> 0, тоstrDateClause "ET означает (LastShipRec <=" & strAsOf & ")"Конец, еслиМетоды strSQL "Выбрать 1 верхний LastShipRec, сумму из tblContInventory" & "WHERE ((ContID =" & lngContID & ")" & strDateClause) & "; ORDER BY LastShipRec DESC;" 
      strSQL подразумевает «Выбрать 1 верхний LastShipRec, подсчитать ИЗ tblContInventory» & «WHERE ((ContID соответствует« & lngContID & »)« & strDateClause) & »; ORDER BY` enter`LastShipRec DESC;" 
      Если Len (strAsOf)> 0 ТогдаstrDateClause "ET = (LastShipRec <=" & strAsOf & ")"Конец, если 

    Может ли кто-нибудь выровнять меня и моих коллег в правильном направлении? Как я могу действительно иметь эту ошибку?

    909 тыс. 252252 золотых значка

    Рекомендуется: ASR Pro

    Вы устали от медленной работы компьютера? Он пронизан вирусами и вредоносными программами? Не бойся, друг мой, ASR Pro здесь, чтобы спасти положение! Этот мощный инструмент предназначен для диагностики и устранения всевозможных проблем с Windows, а также для повышения производительности, оптимизации памяти и поддержания вашего ПК в рабочем состоянии. Так что не ждите больше — скачайте ASR Pro сегодня!

  • 1. Скачайте и установите ASR Pro
  • 2. Откройте программу и нажмите «Сканировать»
  • 3. Нажмите «Восстановить», чтобы начать процесс восстановления.
  • задан 24 июн ’16 в 12:12

    Не ищите собственного ответа? Ответьте на другие вопросы, отмеченные Vba Ms-access, задав свой вопрос.

    Шаг с strSQL = … следует попробовать построить длинную строку. Если вы просматриваете такое количество файлов, похоже, что тестовая отметка вышла из строя, а в первом поле стоит новая точка с запятой. = попробовать

      strsql "Выбрать первые 8 LastShipRec, Quantity FROM tblContInventory" & "WHERE ((ContID соответствует" & lngContID & ")" & strDateClause & ") ORDER BY LastShipRec DESC;" 

    ожидается ошибка компиляции доступа'07

    При увеличении определенной строки SQL я советую создать эту конкретную строку, а затем запустить debug.print, который требуется для отладки, чтобы проверить, не генерируется ли строка это настоящая учетная запись SQL.

    удален 24 июн.

    2 809 1010 старых значков 3939 серебряных значков

    Удалите круглые скобки сразу после того, как strDateClause, кажется, принимает долгое время, чтобы перейти в «». В SQL также есть терминаторы; на самом деле до конца без сомнения. С этой точки зрения не все люди используют strDateClause

    ответ дан 24 июн 2016 в 12:25

    Aria-hidden = «true»> 11

    1 842

    ожидается трехлетняя ошибка компиляции

    Загрузите это программное обеспечение и почините свой компьютер за считанные минуты. г.

    Access 2007 Compile Error Expected
    Accesso 2007 Errore Di Compilazione Previsto
    Access 2007 Kompilierungsfehler Erwartet
    Access 2007 Compileerfout Verwacht
    Erreur De Compilation Access 2007 Attendue
    액세스 2007 컴파일 오류가 예상됨
    Tillgang 2007 Kompileringsfel Forvantas
    Erro De Compilacao De Acesso 2007 Esperado
    Se Esperaba Un Error De Compilacion De Access 2007
    Oczekiwano Bledu Kompilacji Dostepu 2007
    г.

    John Anthony

    #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 содержит ошибки компиляции, это повлияет на любые запросы, вызывающие любую функцию.

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

    ____

    1 / 1 / 0

    Регистрация: 12.05.2011

    Сообщений: 158

    1

    28.02.2019, 15:17. Показов 3599. Ответов 11

    Метки ошабка компиляции (Все метки)


    в общем при двойном клике

    Visual Basic
    1
    2
    3
    
    Private Sub date_dolg_refresh_DblClick(Cancel As Integer)
    Me.date_dolg_refresh = Now()
    End Sub

    ячейке присвается текущее время

    выскакивает ошибка компиляции при этом сначала все работает как сделаешь
    а потом спустя время выскакивает ошибка.

    не пойми почему.

    подскажите за что ?

    скрин окна компиляции приложил

    Миниатюры

    Ошибка компиляции в очень простом выражении Me.date_dolg_refresh = Now()
     

    __________________
    Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

    0

    8497 / 5287 / 563

    Регистрация: 27.03.2013

    Сообщений: 18,520

    28.02.2019, 15:25

    2

    Лучший ответ Сообщение было отмечено ____ как решение

    Решение

    ____, Можно предположить, что имя поля желательно заключить в квадратненькие скобочки ибо там присутствует спецзарезервированноесловечко — date
    А новейшие форматы на столько тупые, что могут и не понимать некоторые подобные нюансы.
    Короче — Лучше перебдить.
    Также снизошло от тараканов в голове, что возможно вы эксперементировали много, а БД ни разу не сжимали и мог остаться мусор, который может влиять на это.

    0

    Эксперт MS Access

    16778 / 6959 / 1548

    Регистрация: 21.06.2012

    Сообщений: 12,975

    28.02.2019, 15:29

    3

    Обязательно ставьте Option Explicit в начало модуля, тогда ошибки компиляции будут выявляться при компиляции.
    А так — проверьте имена в форме, источнике записей, … . Есть ли это имя в списке, после набора Me.

    0

    8497 / 5287 / 563

    Регистрация: 27.03.2013

    Сообщений: 18,520

    28.02.2019, 15:45

    4

    Лучший ответ Сообщение было отмечено ____ как решение

    Решение

    ____, Да и кстати, вспомнил.
    Не знаю почему (не теоретик), но именно в связи с полями — Дата/Время, примерно около 4-5 раз, при возникновении всяческих ошибок с датами, помогало только если — УСЁ импортировать в девственно пустую БД из глюченой.
    Ни где не видел внятных объяснений, но по себе могу сказать, что в 99,9% помогало.

    0

    295 / 256 / 68

    Регистрация: 18.06.2015

    Сообщений: 570

    28.02.2019, 16:12

    5

    Лучший ответ Сообщение было отмечено Capi как решение

    Решение

    Судя по тому, что название функции в выпадающем списке на самом верху показывает полное имя функции, а не только название события, у вас нет контрола с таким именем, проверяйте форму.

    1

    9475 / 4802 / 1172

    Регистрация: 05.10.2016

    Сообщений: 13,472

    Записей в блоге: 1

    28.02.2019, 21:19

    6

    Цитата
    Сообщение от ____
    Посмотреть сообщение

    не пойми почему.

    А контроль в форме точно называется «date_dolg_refresh»?
    … а может «date dolg refresh»!?

    0

    Эксперт MS Access

    7262 / 4465 / 287

    Регистрация: 12.08.2011

    Сообщений: 13,445

    01.03.2019, 09:21

    7

    С пробелами было бы слишком глупо

    0

    ᴁ®

    Эксперт MS Access

    2911 / 1618 / 339

    Регистрация: 13.12.2016

    Сообщений: 5,445

    Записей в блоге: 3

    01.03.2019, 10:16

    8

    ____, попробуйте вместо Now() поставить Date()
    Возможно связано с форматом поля
    И еще. Если закоментировать строку — ошибка компиляции исчезает?
    Бывает, что трабл в другом месте….

    0

    1 / 1 / 0

    Регистрация: 12.05.2011

    Сообщений: 158

    12.06.2020, 10:36

     [ТС]

    9

    Цитата
    Сообщение от VinniPuh
    Посмотреть сообщение

    ____, Да и кстати, вспомнил.
    Не знаю почему (не теоретик), но именно в связи с полями — Дата/Время, примерно около 4-5 раз, при возникновении всяческих ошибок с датами, помогало только если — УСЁ импортировать в девственно пустую БД из глюченой.
    Ни где не видел внятных объяснений, но по себе могу сказать, что в 99,9% помогало.

    сейчас начал так действовать часто вижу глюки и просто копирую форму , переименовываю и все работает ))

    0

    Модератор

    Эксперт MS Access

    4941 / 2485 / 613

    Регистрация: 12.06.2016

    Сообщений: 6,584

    12.06.2020, 11:35

    10

    ____,

    Не те ответы Вы решением посчитали.
    Правильный ответ — в сообщении #5.

    Цитата
    Сообщение от ____
    Посмотреть сообщение

    сейчас начал так действовать часто вижу глюки и просто копирую форму , переименовываю и все работает ))

    Зря. Лучше бы причину «глюков» поискали.
    Чудеса бывают крайне редко, обычно разработчик сам все эти «глюки» и наплодил.

    0

    8497 / 5287 / 563

    Регистрация: 27.03.2013

    Сообщений: 18,520

    12.06.2020, 19:44

    11

    ____, если просто копировать, то в системных таблицах останутся глюки и противоречия, ибо при сжатии БД они почему то не удаляются.

    А если импортировать все объекты из БД в чистую, то системные таблицы создаются заново.
    Особо это актуально когда много чего переделывает по несколько раз.
    По крайней мере, мне это очень помогает, когда в творческом экстазе много чего понакуралесишь.

    0

    Модератор

    Эксперт MS Access

    11261 / 4592 / 739

    Регистрация: 07.08.2010

    Сообщений: 13,157

    Записей в блоге: 4

    12.06.2020, 20:37

    12

    ____,
    вы явно любитель подчеркиваний — может и формы/отчеты начинаете с подчеркиваний
    когда-то и где-то я читала, что это вредно для здоровья программы

    я применяю подчеркивания только в середине названий

    0

    Виды ошибок.
    Ошибки можно разделить на следующие
    три вида: ошибки компиляции; ошибки
    периода выполнения; логические ошибки.

    Ошибки компиляции.
    Ошибки
    компиляции проистекают из ошибок в
    тексте кода. Если во время разработки
    введено неправильное ключевое слово,
    пропущена необходимая пунктуация или,
    например, использована инструкция Next
    без соответствующего инструкции For,
    Access
    обнаружит эти ошибки при компиляции
    приложения.

    Если установлена
    функция Проверка
    синтаксиса

    во вкладке Модуль
    окна диалога Параметры,
    то при появлении синтаксической ошибки
    во время ввода текста в окно редактора
    кода Access
    немедленно выведет на экран сообщение
    об ошибке.

    Чтобы установить
    опцию Проверка
    синтаксиса

    необходимо:

    1. В меню Сервис
    выбрать команду Параметры
    и в окне диалога Пара­метры
    открыть вкладку Модуль.

    2.В разделе
    Программирование
    установить флажок Проверка
    синтак­сиса

    Ошибки периода
    выполнения
    .
    Ошибки периода выполнения возникают,
    когда приложение выполняется и Access
    обнаруживает, что инструкция делает
    попытку выполнить недопустимое или
    невозможное дейст­вие. Пример —
    деление на ноль. Прежде
    чем приложение обнаружит эту ошибку,
    его необходимо запустить на выполнение.

    Логические
    ошибки.

    Логические
    ошибки имеют место, когда приложение
    работает не так, как это планировалось
    разработчиком. Приложение может иметь
    синтаксически правильный код, не
    выполнять недопустимых операций, но,
    однако, выдавать неправильные результаты.
    Обнаружить логические ошибки можно
    только в ходе тестирования приложения
    и анализа результатов.

    Как избежать
    ошибок?

    Имеется несколько общих рекомендаций,
    позволяющих уменьшить количество ошибок
    в приложении:

    • каждая процедура
    обработки события и каждая процедура
    общей области должны иметь определенную,
    четкую цель;

    • не следует жалеть
    комментариев. При последующем анализе
    кода комментарии существенно облегчают
    понимание назначения каждой процедуры;

    • необходимо,
    когда возможно, использовать явные
    ссылки на объекты. Объекты нужно объявлять
    так, как они представлены в окне Классы
    окна Просмотр
    объектов

    вместо использования типа Variant
    или общего типа данных Object;

    • рекомендуется
    разработать единообразную схему
    именования для переменных и объектов
    приложения;

    • один из наиболее
    общих источников ошибок — опечатки в
    именах переменных или элементов
    управления. Избежать этого можно,
    используя инструкцию Option
    Explicit.

    Управление
    ошибками.

    Ошибки периода выполнения могут
    останавливать выполнение программного
    кода. В этих ситуациях обычно у пользователя
    нет никаких средств, которые позволили
    бы ему продолжить работу в приложении.
    Другие ошибки могут и не прерывать
    выполнения, но обусловливают непредсказуемые
    результаты.

    Чтобы предупредить
    такие ситуации, нужно использовать
    возможности обработки ошибок,
    предоставляемые Access.
    Эти средства позволяют перехватывать
    ошибки и выполнять некоторое корректирующее
    действие. Когда происходит ошибка,
    Access
    устанавливает личные свойства объекта
    Err,
    такие, как номер ошибки, ее описание и
    т. д. Объект Err
    и его свойства можно использовать в
    подпрограмме обработки ошибок для
    организации интеллектуального поведения
    приложения при наступлении ситуации
    ошибки.

    Разработка
    процедур обработки ошибок.

    Процедура обработки ошибки — подпрограмма,
    предназначенная для перехвата и обработки
    ошибок приложением. Процедуры обработки
    ошибок следует вводить в любую процедуру,
    где возможно предвидеть возникновение
    ситуаций ошибки (приходится допустить,
    что теоретически для любой инструкции
    возможны условия ошибки). Процесс
    проектирования процедуры обработки
    ошибки включает три этапа:

    1. Установить
    ловушку для ошибки, сообщив приложению,
    куда следует выполнить переход (какую
    подпрограмму обработки ошибки выполнить),
    если происходит ошибка.

    «Ловушку»
    определяет инструкция On
    Error,
    которая направляет поток выполнения
    приложения на метку, отмечающую начало
    подпрограммы обработки ошибки.

    Ловушка ошибки
    активируется, когда Visual
    Basic
    выполняет инструкцию On
    Егrоr,
    и остается активированной до тех пор,
    пока активна содержащая ее процедура,
    то есть до выполнения инструкции Exit
    Sub,
    Exit
    Function,
    Exit
    Property,
    End
    Sub,
    End
    Function
    или End
    Property
    этой процедуры. Хотя, в любой данной
    процедуре в любой момент может
    активироваться только одна ловушка
    ошибки, можно создавать несколько
    альтернативных ловушек, активируя их
    при разных ситуациях. Можно также
    деактивировать ловушку ошибки, используя
    специальный синтаксис инструкции On
    Error
    : On
    Error
    GoTo
    0.

    Для настройки
    перехода к подпрограмме обработки
    ошибок используется инструкция On
    Error
    GoTo
    строка,
    где строка
    указывает метку, идентифицирующую код
    обработки ошибок.

    2. Написать
    подпрограмму обработки ошибок, реагирующую
    на все ошибки, которые данной ситуации
    можно предусмотреть.

    Первый шаг при
    написании подпрограммы обработки ошибок
    — введение метки строки, отмечающей
    начало подпрограммы. Метка строки должна
    иметь некоторое описательное имя и
    должна заканчиваться двоеточием. Общее
    соглашение предусматривает размещение
    кода обработки ошибок в конце процедуры
    непосредственно после инструкций Exit
    Sub,
    Exit
    Function
    или Exit
    Property.
    Это позволяет процедуре в случае
    отсутствия ошибок не выполнять код
    обработки ошибок.

    Тело подпрограммы
    обработки ошибок содержит код, который
    фактически управляет ошибкой обычно в
    форме инструкции Select
    Case
    или If…Then…Else.
    Необходимо заблаговременно определить,
    какие ошибки могут происходить, и
    обеспечить ход действий для каждой из
    них, например, пригласив пользователя
    вставить диск в случае ошибки «Устройство
    недоступно». Помимо этого, всегда
    нужно обеспечивать возможность обработки
    любых непредвиденных ошибок. Для этого
    можно использовать предложение Else
    или Case
    Else.

    Свойство Number
    объекта Err
    содержит числовой код, представляющий
    самую последнюю ошибку периода выполнения.
    Используя объект Err
    в комбинации с инструкцией Select
    Case
    или If….Then….Else,
    можно предпринять определенное действие
    для любой ошибки.

    Примечание.
    Строка, содержащаяся в свойстве
    Description
    объекта Err,
    поясняет ошибку, ассоциированную с
    текущим номером ошибки. Точная формулировка
    описания может изменяться с версиями
    Access.
    Следовательно, чтобы идентифицировать
    определенную ошибку, нужно использовать
    Err
    Number
    вместо Err.Description.

    3. Выйти из
    подпрограммы обработки ошибок.

    В зависимости от
    обстоятельств, для выхода из подпрограммы
    обработки ошибки можно использовать
    любую из инструкций, приведенных в
    следующей таблице:

    Инструкции

    Описание

    Resume
    [0]

    Выполнение
    программы продолжается с инструкции,
    которая обус­ловила ошибку, или с
    последнего вызова процедуры, содержащей
    подпрограмму обработки ошибок. Эту
    инструкцию следует исполь­зовать
    для повтора операции после исправления
    условия, которое вызвало ошибку.

    Resume
    Next

    Выполнение
    программы продолжается с инструкции,
    следующей непосредственно за той,
    которая обусловила ошибку. Если ошиб­ка
    произошла вне процедуры, которая
    содержит процедуру обра­ботки
    ошибки, выполнение продолжается с
    инструкции, следующей за вызовом той
    процедуры, в которой произошла ошибка
    (если вызываемая процедура не имеет
    активированной процедуры обработки
    ошибки).

    Resume
    строка

    Выполнение
    программы продолжается с метки,
    специфицирован­ной параметром
    строка,
    где строка
    имя метки
    или номер строки, отличный от нуля.
    Метка должна быть

    в той же процедуре,
    где и процедура обработки ошибки.

    Err.Raise
    Number:=
    номер

    Вызывает ошибку
    периода выполнения. Когда эта инструкция
    вы­полняется внутри подпрограммы
    обработки ошибок, Access
    ищет список вызовов для другой
    подпрограммы обработки ошибок.

    Соседние файлы в предмете Базы данных

    • #
    • #

      02.05.201430.9 Mб169Ребекка Райордан. Основы реляционных баз данных.pdf

    • #
    • #
    • #
    • #

    Если MS Access при компиляции модуля указывает на ошибку в строке примерно такого содержания:

    Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" lpofn as LPOPENFILENAME) as Boolean

    Или при выполнении выдается ошибка: «Ошибка при компиляции функции. Ошибка синтаксиса в модуле Visual Basic. Проверьте программу, а затем перекомпилируйте ее.».

    Дело скорее всего в том, что используется 64-битная операционка.

    В этом случае проблема лечится добавлением PtrSafe в объявление таким образом:

    Declare PtrSafe Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" lpofn as LPOPENFILENAME) as Boolean

    У меня есть таблица с полем, который имеет вычисляемый тип и содержит следующее выражение:

    IIf(IsNull([OrderValue]),[TotalPhaseLabourCost]-[DefaultOrderValue],[TotalPhaseLabourCost]-[OrderValue])
    

    По какой-то причине, когда я открываю таблицу в любом представлении, она выдает ошибку:

    «Произошла ошибка при компиляции этой функции. Модуль Visual Basic содержит синтаксическую ошибку. Проверьте код, а затем перекомпилируйте его».

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

    2017-11-23 10:55

    2
    ответа

    Решение

    Это немного расплывчато, поэтому я могу только догадываться.

    1. Попробуйте скомпилировать код, как написано в сообщении об ошибке.
    2. проверьте, есть ли у вас функция с тем же именем, что и ваше поле
    3. Попробуйте заменить IIf(IsNull([OrderValue]), от IIf([OrderValue] is Null,


    user78522

    23 ноя ’17 в 11:04
    2017-11-23 11:04

    2017-11-23 11:04

    У меня возникла проблема с некоторыми полями (показывалось сообщение об ошибке #NAME?в некоторых полях (дата, номер) в «новой» записи).
    У меня получилось закрыть таблицу, щелкнуть ее правой кнопкой мыши и открыть в режиме дизайна.
    Для каждого из проблемных полей я снова выбираю тип данных (который уже был показан) из выпадающего меню (так что, тот же тип данных!).
    Сохранить.
    Тогда он больше не выдавал сообщений об ошибках.

    2019-07-19 13:24

    Вы, вероятно, пропускаете ведущий знак равенства:

    =IIf(IsNull([OrderValue]),[TotalPhaseLabourCost]-[DefaultOrderValue],[TotalPhaseLabourCost]-[OrderValue])
    

    Или вы можете использовать:

    =[TotalPhaseLabourCost]-Nz([OrderValue],[DefaultOrderValue])
    

    2017-11-23 11:27

    ____

    1 / 1 / 0

    Регистрация: 12.05.2011

    Сообщений: 158

    1

    28.02.2019, 15:17. Показов 3893. Ответов 11

    Метки ошабка компиляции (Все метки)


    Студворк — интернет-сервис помощи студентам

    в общем при двойном клике

    Visual Basic
    1
    2
    3
    
    Private Sub date_dolg_refresh_DblClick(Cancel As Integer)
    Me.date_dolg_refresh = Now()
    End Sub

    ячейке присвается текущее время

    выскакивает ошибка компиляции при этом сначала все работает как сделаешь
    а потом спустя время выскакивает ошибка.

    не пойми почему.

    подскажите за что ?

    скрин окна компиляции приложил

    Миниатюры

    Ошибка компиляции в очень простом выражении  Me.date_dolg_refresh = Now()
     



    0



    8798 / 5691 / 578

    Регистрация: 27.03.2013

    Сообщений: 19,173

    28.02.2019, 15:25

    2

    Лучший ответ Сообщение было отмечено ____ как решение

    Решение

    ____, Можно предположить, что имя поля желательно заключить в квадратненькие скобочки ибо там присутствует спецзарезервированноесловечко — date
    А новейшие форматы на столько тупые, что могут и не понимать некоторые подобные нюансы.
    Короче — Лучше перебдить.
    Также снизошло от тараканов в голове, что возможно вы эксперементировали много, а БД ни разу не сжимали и мог остаться мусор, который может влиять на это.



    0



    Эксперт MS Access

    17320 / 7146 / 1614

    Регистрация: 21.06.2012

    Сообщений: 13,488

    28.02.2019, 15:29

    3

    Обязательно ставьте Option Explicit в начало модуля, тогда ошибки компиляции будут выявляться при компиляции.
    А так — проверьте имена в форме, источнике записей, … . Есть ли это имя в списке, после набора Me.



    0



    8798 / 5691 / 578

    Регистрация: 27.03.2013

    Сообщений: 19,173

    28.02.2019, 15:45

    4

    Лучший ответ Сообщение было отмечено ____ как решение

    Решение

    ____, Да и кстати, вспомнил.
    Не знаю почему (не теоретик), но именно в связи с полями — Дата/Время, примерно около 4-5 раз, при возникновении всяческих ошибок с датами, помогало только если — УСЁ импортировать в девственно пустую БД из глюченой.
    Ни где не видел внятных объяснений, но по себе могу сказать, что в 99,9% помогало.



    0



    295 / 256 / 68

    Регистрация: 18.06.2015

    Сообщений: 570

    28.02.2019, 16:12

    5

    Лучший ответ Сообщение было отмечено Capi как решение

    Решение

    Судя по тому, что название функции в выпадающем списке на самом верху показывает полное имя функции, а не только название события, у вас нет контрола с таким именем, проверяйте форму.



    1



    10074 / 5147 / 1287

    Регистрация: 05.10.2016

    Сообщений: 14,486

    28.02.2019, 21:19

    6

    Цитата
    Сообщение от ____
    Посмотреть сообщение

    не пойми почему.

    А контроль в форме точно называется «date_dolg_refresh»?
    … а может «date dolg refresh»!?



    0



    Эксперт MS Access

    7359 / 4497 / 292

    Регистрация: 12.08.2011

    Сообщений: 13,719

    01.03.2019, 09:21

    7

    С пробелами было бы слишком глупо



    0



    ᴁ®

    Эксперт MS Access

    3456 / 1842 / 387

    Регистрация: 13.12.2016

    Сообщений: 6,295

    Записей в блоге: 4

    01.03.2019, 10:16

    8

    ____, попробуйте вместо Now() поставить Date()
    Возможно связано с форматом поля
    И еще. Если закоментировать строку — ошибка компиляции исчезает?
    Бывает, что трабл в другом месте….



    0



    1 / 1 / 0

    Регистрация: 12.05.2011

    Сообщений: 158

    12.06.2020, 10:36

     [ТС]

    9

    Цитата
    Сообщение от VinniPuh
    Посмотреть сообщение

    ____, Да и кстати, вспомнил.
    Не знаю почему (не теоретик), но именно в связи с полями — Дата/Время, примерно около 4-5 раз, при возникновении всяческих ошибок с датами, помогало только если — УСЁ импортировать в девственно пустую БД из глюченой.
    Ни где не видел внятных объяснений, но по себе могу сказать, что в 99,9% помогало.

    сейчас начал так действовать часто вижу глюки и просто копирую форму , переименовываю и все работает ))



    0



    Модератор

    Эксперт MS Access

    5426 / 2681 / 661

    Регистрация: 12.06.2016

    Сообщений: 7,108

    12.06.2020, 11:35

    10

    ____,

    Не те ответы Вы решением посчитали.
    Правильный ответ — в сообщении #5.

    Цитата
    Сообщение от ____
    Посмотреть сообщение

    сейчас начал так действовать часто вижу глюки и просто копирую форму , переименовываю и все работает ))

    Зря. Лучше бы причину «глюков» поискали.
    Чудеса бывают крайне редко, обычно разработчик сам все эти «глюки» и наплодил.



    0



    8798 / 5691 / 578

    Регистрация: 27.03.2013

    Сообщений: 19,173

    12.06.2020, 19:44

    11

    ____, если просто копировать, то в системных таблицах останутся глюки и противоречия, ибо при сжатии БД они почему то не удаляются.

    А если импортировать все объекты из БД в чистую, то системные таблицы создаются заново.
    Особо это актуально когда много чего переделывает по несколько раз.
    По крайней мере, мне это очень помогает, когда в творческом экстазе много чего понакуралесишь.



    0



    Модератор

    Эксперт MS Access

    11489 / 4732 / 764

    Регистрация: 07.08.2010

    Сообщений: 13,746

    Записей в блоге: 4

    12.06.2020, 20:37

    12

    ____,
    вы явно любитель подчеркиваний — может и формы/отчеты начинаете с подчеркиваний
    когда-то и где-то я читала, что это вредно для здоровья программы

    я применяю подчеркивания только в середине названий



    0



    У меня есть таблица с полем, который имеет вычисляемый тип и содержит следующее выражение:

    IIf(IsNull([OrderValue]),[TotalPhaseLabourCost]-[DefaultOrderValue],[TotalPhaseLabourCost]-[OrderValue])
    

    По какой-то причине, когда я открываю таблицу в любом представлении, она выдает ошибку:

    «Произошла ошибка при компиляции этой функции. Модуль Visual Basic содержит синтаксическую ошибку. Проверьте код, а затем перекомпилируйте его».

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

    2017-11-23 10:55

    2
    ответа

    Решение

    Это немного расплывчато, поэтому я могу только догадываться.

    1. Попробуйте скомпилировать код, как написано в сообщении об ошибке.
    2. проверьте, есть ли у вас функция с тем же именем, что и ваше поле
    3. Попробуйте заменить IIf(IsNull([OrderValue]), от IIf([OrderValue] is Null,


    user78522

    23 ноя ’17 в 11:04
    2017-11-23 11:04

    2017-11-23 11:04

    У меня возникла проблема с некоторыми полями (показывалось сообщение об ошибке #NAME?в некоторых полях (дата, номер) в «новой» записи).
    У меня получилось закрыть таблицу, щелкнуть ее правой кнопкой мыши и открыть в режиме дизайна.
    Для каждого из проблемных полей я снова выбираю тип данных (который уже был показан) из выпадающего меню (так что, тот же тип данных!).
    Сохранить.
    Тогда он больше не выдавал сообщений об ошибках.

    2019-07-19 13:24

    Вы, вероятно, пропускаете ведущий знак равенства:

    =IIf(IsNull([OrderValue]),[TotalPhaseLabourCost]-[DefaultOrderValue],[TotalPhaseLabourCost]-[OrderValue])
    

    Или вы можете использовать:

    =[TotalPhaseLabourCost]-Nz([OrderValue],[DefaultOrderValue])
    

    2017-11-23 11:27

    Понравилась статья? Поделить с друзьями:
  • Ошибка при использовании программы launchanywhere
  • Ошибка при конвертации компас
  • Ошибка при использовании metaspace minecraft как исправить
  • Ошибка при исполнении операции
  • Ошибка при инкассации денежных средств