Ошибка синтаксиса во введенном выражении аксесс

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

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

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

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

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

  • Запятая — запятая ‘,’ используется для обозначения разделения элементов внутри списка, например массива, или параметров, принимаемых функцией.
  • Выражение — комбинация нескольких программных символов и значений, предназначенная для получения результата.
  • Идентификатор — идентификатор — это имя, которое идентифицирует уникальный объект или уникальный класс объектов.
  • Синтаксис — синтаксис относится к фактическим языковым элементам и самим символам
  • синтаксическая ошибка — синтаксис ошибка возникает, когда программа не следует синтаксическим правилам языка программирования.
Симптомы Ошибка 2431 — Введенное вами выражение содержит недопустимый синтаксис

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

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

Fix Введенное вами выражение содержит недопустимый синтаксис (Error Ошибка 2431)
(Только для примера)

Причины Введенное вами выражение содержит недопустимый синтаксис — Ошибка 2431

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

How to fix Error 2431 (The expression you entered contains invalid syntax) — The expression you entered contains invalid [email protected] may have entered a comma without a preceding value or [email protected]@[email protected]@@1.
Wie beheben Fehler 2431 (Der von Ihnen eingegebene Ausdruck enthält eine ungültige Syntax) — Der von Ihnen eingegebene Ausdruck enthält eine ungültige [email protected] haben möglicherweise ein Komma ohne vorangestellten Wert oder Bezeichner [email protected]@[email protected]@@1.
Come fissare Errore 2431 (L’espressione che hai inserito contiene una sintassi non valida) — L’espressione immessa contiene una sintassi non [email protected] aver inserito una virgola senza un valore o identificatore [email protected]@[email protected]@@1.
Hoe maak je Fout 2431 (De expressie die je hebt ingevoerd bevat ongeldige syntaxis) — De uitdrukking die u hebt ingevoerd, bevat een ongeldige [email protected] hebt mogelijk een komma ingevoerd zonder een voorafgaande waarde of [email protected]@[email protected]@@1.
Comment réparer Erreur 2431 (L’expression que vous avez saisie contient une syntaxe non valide) — L’expression que vous avez saisie contient une syntaxe non [email protected] avez peut-être saisi une virgule sans valeur ni identificateur précé[email protected]@[email protected]@@1.
어떻게 고치는 지 오류 2431 (입력한 표현식에 잘못된 구문이 있습니다.) — 입력한 표현식에 잘못된 구문이 있습니다[email protected]앞에 값이나 식별자 없이 쉼표를 입력했을 수 있습니다[email protected]@[email protected]@@1.
Como corrigir o Erro 2431 (A expressão que você inseriu contém sintaxe inválida) — A expressão inserida contém sintaxe inválida. @ Você pode ter inserido uma vírgula sem um valor ou identificador anterior. @@ 1 @@@ 1.
Hur man åtgärdar Fel 2431 (Uttrycket du angav innehåller ogiltig syntax) — Uttrycket du angav innehåller ogiltig [email protected] kan ha angett ett komma utan föregående värde eller identifierare. @@ 1 @@@ 1.
Jak naprawić Błąd 2431 (Wprowadzone wyrażenie zawiera nieprawidłową składnię) — Wprowadzone wyrażenie zawiera nieprawidłową składnię[email protected]żesz wprowadzić przecinek bez poprzedzającej wartości lub [email protected]@[email protected]@@1.
Cómo arreglar Error 2431 (La expresión que ingresaste contiene una sintaxis no válida) — La expresión que ingresó contiene sintaxis no válida. @ Es posible que haya ingresado una coma sin un valor o identificador anterior. @@ 1 @@@ 1.

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

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

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

06/02/22 10:37 : Пользователь Windows 10 проголосовал за то, что метод восстановления 1 работает для него.

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

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

ШАГ 1:

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

ШАГ 2:

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

ШАГ 3:

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

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

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

Требования

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

ID статьи: ACX011198RU

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

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

Дефрагментация жесткого диска:

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

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

Имеется VBA приложение под Access, написанное под 2003 версию. Сейчас при запуске под семеркой и версией Access 2010 возникает следующая ошибка:
Выражение Открытие, введенное в поле свойства события, вызывает ошибку: Возникла ошибка при установке связи с приложением «Microsoft Access» с сервером OLE или элементом управления ActiveX.

Как бороться с этой ошибкой?

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

Как бороться с ошибкой «Тип «WindowsApplication1.Win32Api.POINT» не имеет конструкторов.»?
Здравствуйте. Помогите избежать ошибки! В моем коде программы Label1 устанавливаться по центру.

tickКак бороться с ошибкой «Запрошенный файл не является допустимым mathcad документом»
Здравствуйте. Вот такая ошибка у меня приключилась, «запрошенный файл не является допустимым.

Как написать регулярное выражение для выдергивания английских букв и символов: «+», «,», «:», «-«, » «, «!», «?» и «.»
Не могу ни как собразить как написать регулярное выражение для выдергивания английских букв и.

Как бороться с ошибкой «Default Boot Device Missing or Boot Failed» при загрузке ноутбука?
как с этим бороться при загрузке ноутбука. Выручайте! Default Boot Device Missing or Boot.

Не знаю. Ваш регион (и региональные настройки)?

возможные причины:
— установка библиотек из пакета MSRedist (Microsoft Visual C++ XXXX Redistributable Package), особенно сборки типа Hybrid. Во время установки этой сборки, производится поиск и удаление ранее установленных 32-х и 64-х битных версий Microsoft Visual C++ 2005-2008-2010-2012-2013 Redistributable Package. Т.о. сборка снесет правильный файл и накатит глюк от MS, который нужно будет исправить вручную как описано в статье выше или там же приведены ссылки на статьи от MS для разных версий офисов.

*скачать последнюю версию mscomctl.ocx можно здесь: http://ru.originaldll.com/file. 16903.html

П.С. Запостил решение в старой ветке, т.к. она релеванта запросу «выражение введенное в поле свойства события» и сам запрос был актуален для меня на 20.12.2013. Для работы Open Server 4.9.0 потребовал запустить эту сборку MSRedist Hybrid, в результате после перезапуска винды база данных в Access поломалась )

П.С2. Для поисковиков. Вот этот запрос тоже будет относиться к теме: «Причиной возникновения этой ошибки является невозможность запуска события вследствие нарушения логики обработки события приложением Microsoft Office Access. Например, если свойство формы «Открытие» имеет значение =[Field], возникнет эта ошибка, так как приложение Access ожидает имя макроса или события, которые должны быть выполнены при активации этого события.»

Источник

Содержание

  1. Studhelper IT
  2. Страницы
  3. четверг, 4 июня 2015 г.
  4. Ошибки при запуске объектов с формы Access
  5. Ошибка: Object or class does not support the set of events
  6. Выражение нажатие кнопки введенное в поле свойства события вызывает ошибку
  7. Выражение нажатие кнопки введенное в поле свойства события вызывает ошибку

Studhelper IT

Разработка приложений, переводы книг по программированию

Страницы

31ea8ef9d00196fe3f7aedf210ae37e2

четверг, 4 июня 2015 г.

Ошибки при запуске объектов с формы Access

Мастер создания кнопок Access не всегда корректно создает макрос или процедуру запуска соответствующих объектов, помещает или неправильное название формы, отчета, запроса, или вообще никакого названия.
Вот, например, нажатие кнопки для запуска формы «Запрос ФИО и специальность» (база данных абитуриентов) вызывает ошибку:
Ошибка синтаксиса во введенном выражении. Введена запятая, перед которой отсутствует значение или идентификатор

1

А вот нажатие кнопки запуска отчета выдает ошибку
Введенное в поле свойства или макроса имя отчета «Отчет по абитуриентам» содержит ошибку или указывает на несуществующий отчет.
Дальше предлагается перейти в макрос и исправить.

2

В конструкторе нажмем правой кнопкой мыши на кнопку запуска формы («ФИО и специальность» в нашем случае) и откроем свойства элемента. На вкладке «События» найдем событие «Нажатие кнопки». Нажмем кнопку с тремя точками и перейдем в макрос. Вот что видим в поле «Имя формы».

3

Удалим все символы из этой строки. Появляется кнопка выпадающего списка. Выберем имя нужной формы:

Источник

Ошибка: Object or class does not support the set of events

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

Вложения

rar учет оргтехники15-09-15.rar (412.1 Кб, 10 просмотров)

tick‘set’ object doesn’t support item assignment
Доброго времени суток. Не могу понять, что за ошибка, как исправить.. выдает в строке 5 при r ==.

tickUnity ошибка NullReferenceException: Object reference not set to an instance of an object
Сам новичок в C# и Unity. Много чего не знаю. Подскажите, пожалуйста. Столкнулся с ошибкой.

Ошибка времени выполнения: Object reference not set to an instance of an object
Программа должна выводить на экран двоичное представление введённого числа. При этом обязательно.

Вложения

7z учет оргтехники15-09-15 v1.7z (312.5 Кб, 7 просмотров)

Когда так делаю, то потом у меня тоже не работает, и если это символы Юникода, то они как то не постоянно работают. По этому потом переименовываю на то, как по названию формы, отчета и т.д.

Разработчикам, есть над чем поработать, т.к. выявлены и вынесены на всеобщее обсуждение замечания. smile3

Юникод постепенно вытесняет ASCII прежде всего потому, что вторая часть ASCII зависит от национальной кодировки. Для кириллицы (Win-1251), она совершенно иная чем для любых других локализаций. Это неудобно и не функционально. Юникод же собрал все символы всех алфавитов в одной таблице и нет проблем перейти от одного алфавита к другому.
Также в таблице ASCII нет места для многих популярных символов типа валют и других

Ошибка на ровном месте: Object reference not set to an instance of an object
Программа на VS2010 C# winforms Программа работала, сделал релиз, начал тестить на других компах.

Источник

Выражение нажатие кнопки введенное в поле свойства события вызывает ошибку

Проблема:
— вылазит вот что (и естественно не работает правильно) :

Выражение Нажатие кнопки, приведенное в поле свойства события, вызывает ошибку: Возникла ошибка при установлении связи в приложении «ХХХ» с сервером OLE или элементом управления ActiveX.
—————————————————
В Visual Basic для приложений (VBA) возникла ошибка при попытке использовать свойство или метод. Возможны следующие причины этой ошибки.
• Отсутствует ссылка.
• Сведения о восстановлении отсутствующих ссылок см. в статье 283806 из базы знаний Microsoft Knowledge Base.
• Выражение содержит ошибку.
• Проверьте правильность всех выражений, используемых в свойствах событий.
• Функция, определенная пользователем, объявлена как процедура (sub) или закрытая (private) функция в модуле.
• Функция, определенная пользователем, допускается в выражении, только если она объявлена как:
• Общая функция в модуле
• Общая или частная функция в модуле текущей формы или отчета
• В Access выбран высокий или средний уровень безопасности, а пакет обновления SP8 для Microsoft Jet 4.0 не установлен.
• Для правильной работы Access при высоком или среднем уровне безопасности необходимо установить последнюю версию Jet 4.0. Последнюю версию Microsoft Jet можно загрузить с веб-узла Windows Update.

причем, удаляю формы совсем, добавляю форму, леплю на неё элемент Календарь (офисный), эта же ошибка при MSGBOX текущее значение вывести в событии Обновление значения

поставил Visual Studio 6.0 Eng ( smileестессно )
оттуда компонент MonthView вставил в форму, и опять в том же событии таже хрень frown(((

Источник

Выражение нажатие кнопки введенное в поле свойства события вызывает ошибку

Профиль
Группа: Участник
Сообщений: 8
Регистрация: 23.3.2006

Репутация: нет
Всего: нет

Цитата
«Выражение Нажатие кнопки, введенное в поле свойства события, вызывает ошибку: возникла ошибка при установлении связи в приложении « Microsoft Office Access » с сервером OLE или элементом управления ActiveX
*Результатом выражения не является имя макроса, имя функции или строка [Процедура обработки событий]
*Ошибка при вычислении функции, события или макроса»

Профиль
Группа: Участник
Сообщений: 22
Регистрация: 7.4.2006

Репутация: нет
Всего: нет

Профиль
Группа: Участник
Сообщений: 8
Регистрация: 23.3.2006

Репутация: нет
Всего: нет

Профиль
Группа: Участник
Сообщений: 8
Регистрация: 23.3.2006

Репутация: нет
Всего: нет

p pm on p email on p www on p im on p icq on p aim on p yim on p msn on p skype on p gtalk on p jabber on p report on p delete on p edit on p quick quote on p quote on p show on p hide on p tofaq on

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

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Access | Следующая тема »

[ Время генерации скрипта: 0.0994 ] [ Использовано запросов: 21 ] [ GZIP включён ]

Источник

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

Adblock
detector

Я создаю sql-запрос в Access 2013. Это мой запрос:

SELECT  
COUNT(Age) FROM Members AS [Under 12] WHERE Age <= 12,
COUNT(Age) FROM Members AS [13-18] WHERE Age BETWEEN 13 AND 18

Но я продолжаю получать эту ошибку:

Синтаксическая ошибка (запятая) в выражении запроса ‘Age <= 12, COUNT (Age) FROM SukkotMembers AS [13-18] WHERE Age BETWEEN 13 AND 18`

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

Также я только что понял, что AS [Under 12] и AS [13-18] не работают, и я также не знаю, почему

2 ответа

Лучший ответ

Вы также можете суммировать:

SELECT  
    Sum(Abs(Age <= 12)) AS [Under 12],
    Sum(Abs(Age BETWEEN 13 AND 18)) AS [13-18]  
FROM 
    Members


3

Gustav
13 Сен 2015 в 13:26

Во-первых: синтаксис, который вы используете, не является допустимым SQL, так как у вас есть несколько недопустимых предложений FROM; то же самое относится к предложению where, которое, кстати, действует для всего набора.

Вы не можете просто взять кусочки SQL и исправить вместе, чтобы получить рабочий запрос — существует довольно строгий и четко определенный синтаксис, которого вы должны придерживаться.

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

SELECT  
  COUNT(IIF(Age<=12,age,null)) AS [Under 12] 
 ,COUNT(IIF(Age BETWEEN 13 AND 18,age,null)) AS [13-18]  
FROM Members

Кроме того, FROM Members AS [13-18] назначает псевдоним таблице, а не столбцу.

Использование подзапросов (что, я думаю, могло быть вашим намерением):

SELECT DISTINCT
    (SELECT COUNT(*) FROM MEMBERS WHERE AGE<=12) AS  [UNDER 12] ,
    (SELECT COUNT(*) FROM MEMBERS WHERE AGE BETWEEN 13 AND 18) AS  [13-18]
FROM MEMBERS


4

jpw
13 Сен 2015 в 12:01

Регистрация на форуме тут, о проблемах пишите сюда — alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите восстановить пароль

Поиск по форуму
Расширенный поиск

Страница 1 из 2 1 2 Следующая >

Почему возникает эта ошибка.
Ошибка синтаксиса (пропущен оператор) в выражении запроса ‘[Стипендія нарахування].[Середній бал]? (база данных в Access 2010)

SELECT [Стипендія нарахування].[Середній бал]
IF([Середній бал]<4,»0″,
IF([Середній бал]=5,»950″,
IF([Середній бал]>=4 And <5,»800″)) AS [Стипендія]
FROM [Стипендія нарахування];

Сообщение об ошибке при использовании специальных символов в базах данных Access

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

Оригинальный номер базы знаний: 826763

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

Симптомы

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

Проблема 1

В имени поля таблицы используется один из следующих специальных символов:

  • Знак над символом (`)
  • Восклицательный знак (!)
  • Точка (.)
  • квадратные скобки ([])
  • Пробел
  • Непечатаемые символы

В этом случае отобразится следующее сообщение об ошибке:

Недопустимое имя поля.
Убедитесь, что имя не содержит точку (.), восклицательный знак(!), квадратные скобки ([]), пробел или непечатаемый символ, например символ возврата каретки. Если вы вставляете имя из другого приложения, попробуйте нажать клавишу ESC и ввести имя еще раз.

При использовании этих специальных символов в имени таблицы отобразится следующее сообщение об ошибке:

Введенное имя объекта ‘TableName‘ не соответствует правилам именования объектов Microsoft Office Access.

Проблема 2

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

Если имя поля содержит пробел, вопросительный знак (?) или знак @, отобразится следующее сообщение об ошибке:

Ошибка синтаксиса во введенном выражении.
Задано значение для операции без оператора

Если имя поля содержит кавычки («) или апостроф (‘), отобразится следующее сообщение об ошибке:

Введенное выражение содержит ошибочную строку.
Строка может содержать до 2048 знаков, включая знаки открывающей и закрывающей кавычек.

Если имя поля содержит знак решетки (#), отобразится следующее сообщение об ошибке:

Введенное выражение содержит недопустимое значение даты.

Если имя поля содержит знак процента (%), тильду (

), точку с запятой (;) или скобки ([]), отобразится следующее сообщение об ошибке:

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

Если имя поля содержит фигурные скобки (), отобразится следующее сообщение об ошибке:

Неверно сформированный код GUID в выражении запроса ‘ObjectName

Если имя поля содержит квадратные скобки ([]) или круглые скобки (()), отобразится следующее сообщение об ошибке:

Во введенном выражении отсутствует закрывающая скобка, квадратная скобка (]) или вертикальная черта (|).

Проблема 3

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

  • знак «больше» (>);
  • знак «меньше» (<);
  • Точка (.)
  • Звездочка (*)
  • Двоеточие (:)
  • Крышка (^)
  • Знак плюс (+)
  • Обратная косая черта ()
  • Знак равенства (=)
  • амперсанд (&);
  • Косая черта (/)

Обходной путь

Чтобы устранить эту проблему, не используйте специальные символы. Если в выражениях запроса необходимо использовать специальные символы, заключите их в квадратные скобки ([]). Например, если вы хотите использовать знак «больше» (>), используйте [>].

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

Microsoft Access не ограничивает использование специальных символов, таких как знак решетки (#), точка (.) или кавычки («) в именах объектов базы данных или в именах полей базы данных. Однако при использовании специальных символов могут возникнуть непредвиденные ошибки. Поэтому корпорация Майкрософт рекомендует не использовать специальные символы в именах объектов базы данных в базе данных Access или в проекте базы данных. В этой статье рассматриваются специальные символы, которые не следует использовать во избежание известных проблем с ними.

При работе с Access или другим приложением, например приложением Microsoft Visual Basic или приложением Active Server Pages (ASP), не следует использовать следующие специальные символы:

Соглашения об именовании в Access

Корпорация Майкрософт рекомендует не использовать точку (.), восклицательный знак (!), знак ударения (`), квадратные скобки ([ ]), пробел ( ) или кавычки («) внутри имен функций, имен переменных, имен полей или имен объектов базы данных, таких как таблицы и формы.

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

Что значит пропущен оператор в выражении запроса access

Профиль
Группа: Участник
Сообщений: 310
Регистрация: 15.11.2007

Репутация: нет
Всего: нет

Здравствуйте.

Вобще на форме выбирется ДАТА в dateTimePicker, затем хочу сделать ЗАПРОС на ВЫБОРКУ из таблицы (Access) по этой дате . ну если дата совпала, то потом все вывожу в dataGridView1

Код
OleDbDataAdapter B = new OleDbDataAdapter(«SELECT * FROM Содержание_заказа WHERE Дата=»+dateTimePicker1.Value+»», «Provider=Microsoft.Jet.OLEDB.4.0;» + «Data Source=» + @»….kafe.mdb»);
B.SelectCommand.Connection.Open();
B.SelectCommand.ExecuteNonQuery();
B.SelectCommand.Connection.Close();
DataTable C = new DataTable();
B.Fill(C);
dataGridView1.DataSource = C;

ну вобщем когда я на форме выбираю дату и нажимаю кнопку поиск ВЫЛАЗИЕТ вот такая ОШИБКА:

Код
Ошибка синтаксиса (пропущен оператор) в выражении запроса ‘Дата=03.12.2008 0:00:00’.
Код
SELECT * FROM Содержание_заказа WHERE Дата=03.12.2008 0:00:00

Помогите разобраться с этой проблемой.
Заранее спасибо.

Let’s do some .NET

Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 67

kuller, dateTimePicker1.Value.ToString(«dd.MM.yyyy»);

Добавлено через 36 секунд
kuller, а вообще в каком формате дата хранится в базе?

Профиль
Группа: Участник
Сообщений: 310
Регистрация: 15.11.2007

Репутация: нет
Всего: нет

Let’s do some .NET

Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 67

Вот так выглядит у меня в Access 2003 запрос на выборку поля с датой

SELECT Table1.ID, Table1.Field1
FROM Table1
WHERE (((Table1.Field1)=#1/10/2008#));

Профиль
Группа: Участник
Сообщений: 310
Регистрация: 15.11.2007

Репутация: нет
Всего: нет

Код
Дата содержит синтаксическую ошибку в выражении запроса ‘Дата=#03.12.2008 0:00:00#’.
Код
SELECT * FROM Содержание_заказа WHERE Дата=#03.12.2008 0:00:00#

Добавлено через 4 минуты и 4 секунды
и так ошибка(((

Код
OleDbDataAdapter B = new OleDbDataAdapter(«SELECT * FROM Содержание_заказа WHERE (([Содержание_заказа].[Дата]=» + dateTimePicker1.Value + «))», «Provider=Microsoft.Jet.OLEDB.4.0;» + «Data Source=» + @»….kafe.mdb»);
Код
Ошибка синтаксиса (пропущен оператор) в выражении запроса ‘(([Содержание_заказа].[Дата]=03.12.2008 0:00:00))’.

Let’s do some .NET

Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 67

kuller, попробуйте прогнать запрос с хардкодом

Код
OleDbDataAdapter B = new OleDbDataAdapter(«SELECT * FROM Содержание_заказа WHERE Дата= #12/03/2008#», «Provider=Microsoft.Jet.OLEDB.4.0;» + «Data Source=» + @»….kafe.mdb»);
B.SelectCommand.Connection.Open();
B.SelectCommand.ExecuteNonQuery();
B.SelectCommand.Connection.Close();
DataTable C = new DataTable();
B.Fill(C);
dataGridView1.DataSource = C;

Профиль
Группа: Участник
Сообщений: 310
Регистрация: 15.11.2007

Репутация: нет
Всего: нет

Код
OleDbDataAdapter B = new OleDbDataAdapter(«SELECT * FROM Содержание_заказа WHERE Дата=#12/03/2008#», .

ну т.к. в БД нет строки с такой датой то у меня выскочила табличка:

Код
MessageBox.Show(«Извените, по вашему запросу ничего не найдено», .

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

Добавлено через 1 минуту и 8 секунд
Вот поставил 20/11/2008:
и в dataGridView1 вывелись ВСЕ найденные РЕЗУЛЬТАТЫ .. причем верные)))))

Добавлено через 3 минуты и 34 секунды
ВЫВОД:

дату надо получить из dateTimePicker1.Value и привести к виду:

#ч/м/г#,а потом только вызывать запрос.

Let’s do some .NET

Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 67

Код
OleDbDataAdapter B = new OleDbDataAdapter(«SELECT * FROM Содержание_заказа WHERE Дата=#»+dateTimePicker1.Value.ToString(«dd/MM/yyyy»)+»#», «Provider=Microsoft.Jet.OLEDB.4.0;» + «Data Source=» + @»….kafe.mdb»);
B.SelectCommand.Connection.Open();
B.SelectCommand.ExecuteNonQuery();
B.SelectCommand.Connection.Close();
DataTable C = new DataTable();
B.Fill(C);
dataGridView1.DataSource = C;

Это сообщение отредактировал(а) Partizan — 4.12.2008, 12:28

Профиль
Группа: Участник
Сообщений: 310
Регистрация: 15.11.2007

Репутация: нет
Всего: нет

Да уж(
и так не работате((((

Код
OleDbDataAdapter B = new OleDbDataAdapter(«SELECT * FROM Содержание_заказа WHERE Дата=#»+dateTimePicker1.Value.ToString(«MM/dd/yyyy»)+»#», «Provider=Microsoft.Jet.OLEDB.4.0;» + «Data Source=» + @»….kafe.mdb»);
Код
Дата содержит синтаксическую ошибку в выражении запроса ‘Дата=#11.20.2008#’.
Код
SELECT * FROM Содержание_заказа WHERE Дата=#11.20.2008#

Добавлено через 5 минут
Причем по моему не так:
ToString(«MM/dd/yyyy»)
а вот так:
ToString(«dd/MM/yyyy»)
ну всеравно не пашет((((

Это сообщение отредактировал(а) kuller — 4.12.2008, 12:32

Let’s do some .NET

Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

0 / 0 / 0

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

Сообщений: 13

1

Ошибка синтаксиса во введенном выражении. Задано значение для операции без оператора

04.04.2016, 23:23. Показов 13142. Ответов 17


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

Всем привет! Нужна помощь. Пытаюсь написать выражение для проверки указания фамилии, в поле таблицы, с заглавной буквы. Вот, что у меня получилось:

StrComp( UCase( Left([Фамилия]; 1)) LCase( Right([Фамилия]; Len([Фамилия]) -1)); [Фамилия]; 0) = 0

Access выдает ошибку (см. заголовок темы). Подскажите, что не так?



0



Эксперт MS Access

17250 / 7091 / 1595

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

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

04.04.2016, 23:34

2

А так
StrComp(UCase(Left([Фамилия];1)) & LCase(Right([Фамилия];Len([Фамилия])-1));[Фамилия];0)=0



1



mobile

Эксперт MS Access

26784 / 14463 / 3192

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

Сообщений: 15,782

04.04.2016, 23:39

3

Нужно проверить только первую букву на «заглавность»? Тогда зачем так сложно:

Visual Basic
1
asc(ucase(left(Фамилия;1)))=asc(left(Фамилия;1))

Даст True если первая буква заглавная и False если строчная

Если проверять всю фамилию, то так

Visual Basic
1
strcomp(ucase(Фамилия); Фамилия; 0)=0



1



4040 / 1425 / 394

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

Сообщений: 3,553

05.04.2016, 04:00

4

А оно надо — проверять?
ведь наверняка следующее действие будет предложение пользователю исправить ошибку
по мне лучше уж безаппеляционно исправить и все
UCase(Left([Фамилия];1)) & Mid([Фамилия];2)



1



0 / 0 / 0

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

Сообщений: 13

05.04.2016, 21:28

 [ТС]

5

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

А так
StrComp(UCase(Left([Фамилия];1)) & LCase(Right([Фамилия];Len([Фамилия])-1));[Фамилия];0)=0

А так выдает другую ошибку:

Миниатюры

Ошибка синтаксиса во введенном выражении. Задано значение для операции без оператора
 



0



Эксперт MS Access

17250 / 7091 / 1595

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

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

05.04.2016, 21:43

6

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

А так выдает другую ошибку:

Угу. Только почему то у меня не выдает. И ввести Фамилию с первой строчной буквой не позволяет. Смотрите вложение, Таблица1.



1



0 / 0 / 0

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

Сообщений: 13

05.04.2016, 21:44

 [ТС]

7

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

asc(ucase(left(Фамилия;1)))=asc(left(Фамилия;1))

Так вылетает та же ошибка, что и в предыдущем случае:

Миниатюры

Ошибка синтаксиса во введенном выражении. Задано значение для операции без оператора
 



0



snipe

4040 / 1425 / 394

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

Сообщений: 3,553

05.04.2016, 21:56

8

Visual Basic
1
StrComp(StrConv(LCase([Фамилия]);3);[Фамилия];0)



2



ltv_1953

05.04.2016, 21:59

Не по теме:

Это уже забавно. Вариант mobile, естественно, работает. И для каких же таблиц ТС пытается написать Check?



0



0 / 0 / 0

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

Сообщений: 13

05.04.2016, 22:05

 [ТС]

10

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

Угу. Только почему то у меня не выдает. И ввести Фамилию с первой строчной буквой не позволяет. Смотрите вложение, Таблица1.

А у меня почему-то выдает. Не пойму, в чем причина… База во вложении, можете попробовать.



0



0 / 0 / 0

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

Сообщений: 13

05.04.2016, 22:09

 [ТС]

11

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

strcomp(ucase(Фамилия); Фамилия; 0)=0

В этом примере все буквы фамилии должны быть заглавными. Это не нужно. Нужно, чтобы первая была заглавная, а остальные прописные.



0



4040 / 1425 / 394

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

Сообщений: 3,553

05.04.2016, 22:09

12

добавьте = 0



1



mobile

Эксперт MS Access

26784 / 14463 / 3192

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

Сообщений: 15,782

05.04.2016, 22:12

13

С учетом пустых значений, вот так попробуйте.

Visual Basic
1
StrComp(StrConv(LCase([Фамилия] & "");3);[Фамилия] & "";0)=0



2



4040 / 1425 / 394

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

Сообщений: 3,553

05.04.2016, 22:14

14

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

Решение

вот скрин
у меня работает

Миниатюры

Ошибка синтаксиса во введенном выражении. Задано значение для операции без оператора
 



1



MrShah

0 / 0 / 0

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

Сообщений: 13

05.04.2016, 22:51

 [ТС]

15

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

вот скрин
у меня работает

Отличное решение! Все работает. Только LCase() там не нужна. Вот что у меня получилось:

Visual Basic
1
StrComp(StrConv([Фамилия];3);[Фамилия];0)=0

Теперь возник другой вопрос. Попробовал еще упростить выражение. Вот так:

Visual Basic
1
StrConv([Фамилия];3)=[Фамилия]

Но данный вариант почему-то не работает, вообще никак не реагирует при вводе фамилии с маленькой буквы. Почему?

Добавлено через 2 минуты
И еще вопрос, почему у меня вылетает ошибка вот на такое выражение:

Visual Basic
1
StrComp(UCase(Left([Фамилия];1)) & LCase(Right([Фамилия];Len([Фамилия])-1));[Фамилия];0)=0



0



4040 / 1425 / 394

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

Сообщений: 3,553

05.04.2016, 22:56

16

1.LCase — нужна потому-что шаловливые руки пользователей могут написать всю фамилию заглавными буквами
2. Потому-что StrComp с параметром 0 производит бинарное сравнение и заглавные буквы отличаются от прописных
= в данном случае не различает
3. возможно в данном поле есть ограничения по количеству вводимых символов — хотя если честно не знаю



0



0 / 0 / 0

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

Сообщений: 13

05.04.2016, 23:08

 [ТС]

17

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

1.LCase — нужна потому-что шаловливые руки пользователей могут написать всю фамилию заглавными буквами

Я тоже так думал, но и без LCase программа не дает написать всю фамилию заглавными буквами. Видимо StrConv переводит не только первую букву в верхний регистр, но и последующие в нижний.

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

2. Потому-что StrComp с параметром 0 производит бинарное сравнение и заглавные буквы отличаются от прописных
= в данном случае не различает

Понял!

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

3. возможно в данном поле есть ограничения по количеству вводимых символов — хотя если честно не знаю

Дело в том, что выше ltv_1953 прислал пример, в котором данное выражение работает.

Добавлено через 2 минуты
В продолжение темы. А как реализовать автозамену, без вывода ошибки? Я так понимаю, что через условие проверки это не получится?



0



4040 / 1425 / 394

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

Сообщений: 3,553

06.04.2016, 04:08

18

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

А как реализовать автозамену

это делается в форме — в поле на событие до обновления(после обновления) вешается код автозамены и перевод фокуса в следующее поле — все



0



Регистрация на форуме тут, о проблемах пишите сюда — alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите восстановить пароль

Поиск по форуму
Расширенный поиск

Страница 1 из 2 1 2 Следующая >

Почему возникает эта ошибка.
Ошибка синтаксиса (пропущен оператор) в выражении запроса ‘[Стипендія нарахування].[Середній бал]? (база данных в Access 2010)

SELECT [Стипендія нарахування].[Середній бал]
IF([Середній бал]<4,»0″,
IF([Середній бал]=5,»950″,
IF([Середній бал]>=4 And <5,»800″)) AS [Стипендія]
FROM [Стипендія нарахування];

Сообщение об ошибке при использовании специальных символов в базах данных Access

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

Оригинальный номер базы знаний: 826763

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

Симптомы

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

Проблема 1

В имени поля таблицы используется один из следующих специальных символов:

  • Знак над символом (`)
  • Восклицательный знак (!)
  • Точка (.)
  • квадратные скобки ([])
  • Пробел
  • Непечатаемые символы

В этом случае отобразится следующее сообщение об ошибке:

Недопустимое имя поля.
Убедитесь, что имя не содержит точку (.), восклицательный знак(!), квадратные скобки ([]), пробел или непечатаемый символ, например символ возврата каретки. Если вы вставляете имя из другого приложения, попробуйте нажать клавишу ESC и ввести имя еще раз.

При использовании этих специальных символов в имени таблицы отобразится следующее сообщение об ошибке:

Введенное имя объекта ‘TableName‘ не соответствует правилам именования объектов Microsoft Office Access.

Проблема 2

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

Если имя поля содержит пробел, вопросительный знак (?) или знак @, отобразится следующее сообщение об ошибке:

Ошибка синтаксиса во введенном выражении.
Задано значение для операции без оператора

Если имя поля содержит кавычки («) или апостроф (‘), отобразится следующее сообщение об ошибке:

Введенное выражение содержит ошибочную строку.
Строка может содержать до 2048 знаков, включая знаки открывающей и закрывающей кавычек.

Если имя поля содержит знак решетки (#), отобразится следующее сообщение об ошибке:

Введенное выражение содержит недопустимое значение даты.

Если имя поля содержит знак процента (%), тильду (

), точку с запятой (;) или скобки ([]), отобразится следующее сообщение об ошибке:

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

Если имя поля содержит фигурные скобки (), отобразится следующее сообщение об ошибке:

Неверно сформированный код GUID в выражении запроса ‘ObjectName

Если имя поля содержит квадратные скобки ([]) или круглые скобки (()), отобразится следующее сообщение об ошибке:

Во введенном выражении отсутствует закрывающая скобка, квадратная скобка (]) или вертикальная черта (|).

Проблема 3

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

  • знак «больше» (>);
  • знак «меньше» (<);
  • Точка (.)
  • Звездочка (*)
  • Двоеточие (:)
  • Крышка (^)
  • Знак плюс (+)
  • Обратная косая черта ()
  • Знак равенства (=)
  • амперсанд (&);
  • Косая черта (/)

Обходной путь

Чтобы устранить эту проблему, не используйте специальные символы. Если в выражениях запроса необходимо использовать специальные символы, заключите их в квадратные скобки ([]). Например, если вы хотите использовать знак «больше» (>), используйте [>].

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

Microsoft Access не ограничивает использование специальных символов, таких как знак решетки (#), точка (.) или кавычки («) в именах объектов базы данных или в именах полей базы данных. Однако при использовании специальных символов могут возникнуть непредвиденные ошибки. Поэтому корпорация Майкрософт рекомендует не использовать специальные символы в именах объектов базы данных в базе данных Access или в проекте базы данных. В этой статье рассматриваются специальные символы, которые не следует использовать во избежание известных проблем с ними.

При работе с Access или другим приложением, например приложением Microsoft Visual Basic или приложением Active Server Pages (ASP), не следует использовать следующие специальные символы:

Соглашения об именовании в Access

Корпорация Майкрософт рекомендует не использовать точку (.), восклицательный знак (!), знак ударения (`), квадратные скобки ([ ]), пробел ( ) или кавычки («) внутри имен функций, имен переменных, имен полей или имен объектов базы данных, таких как таблицы и формы.

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

Что значит пропущен оператор в выражении запроса access

Профиль
Группа: Участник
Сообщений: 310
Регистрация: 15.11.2007

Репутация: нет
Всего: нет

Здравствуйте.

Вобще на форме выбирется ДАТА в dateTimePicker, затем хочу сделать ЗАПРОС на ВЫБОРКУ из таблицы (Access) по этой дате . ну если дата совпала, то потом все вывожу в dataGridView1

Код
OleDbDataAdapter B = new OleDbDataAdapter(«SELECT * FROM Содержание_заказа WHERE Дата=»+dateTimePicker1.Value+»», «Provider=Microsoft.Jet.OLEDB.4.0;» + «Data Source=» + @»….kafe.mdb»);
B.SelectCommand.Connection.Open();
B.SelectCommand.ExecuteNonQuery();
B.SelectCommand.Connection.Close();
DataTable C = new DataTable();
B.Fill(C);
dataGridView1.DataSource = C;

ну вобщем когда я на форме выбираю дату и нажимаю кнопку поиск ВЫЛАЗИЕТ вот такая ОШИБКА:

Код
Ошибка синтаксиса (пропущен оператор) в выражении запроса ‘Дата=03.12.2008 0:00:00’.
Код
SELECT * FROM Содержание_заказа WHERE Дата=03.12.2008 0:00:00

Помогите разобраться с этой проблемой.
Заранее спасибо.

Let’s do some .NET

Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 67

kuller, dateTimePicker1.Value.ToString(«dd.MM.yyyy»);

Добавлено через 36 секунд
kuller, а вообще в каком формате дата хранится в базе?

Профиль
Группа: Участник
Сообщений: 310
Регистрация: 15.11.2007

Репутация: нет
Всего: нет

Let’s do some .NET

Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 67

Вот так выглядит у меня в Access 2003 запрос на выборку поля с датой

SELECT Table1.ID, Table1.Field1
FROM Table1
WHERE (((Table1.Field1)=#1/10/2008#));

Профиль
Группа: Участник
Сообщений: 310
Регистрация: 15.11.2007

Репутация: нет
Всего: нет

Код
Дата содержит синтаксическую ошибку в выражении запроса ‘Дата=#03.12.2008 0:00:00#’.
Код
SELECT * FROM Содержание_заказа WHERE Дата=#03.12.2008 0:00:00#

Добавлено через 4 минуты и 4 секунды
и так ошибка(((

Код
OleDbDataAdapter B = new OleDbDataAdapter(«SELECT * FROM Содержание_заказа WHERE (([Содержание_заказа].[Дата]=» + dateTimePicker1.Value + «))», «Provider=Microsoft.Jet.OLEDB.4.0;» + «Data Source=» + @»….kafe.mdb»);
Код
Ошибка синтаксиса (пропущен оператор) в выражении запроса ‘(([Содержание_заказа].[Дата]=03.12.2008 0:00:00))’.

Let’s do some .NET

Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 67

kuller, попробуйте прогнать запрос с хардкодом

Код
OleDbDataAdapter B = new OleDbDataAdapter(«SELECT * FROM Содержание_заказа WHERE Дата= #12/03/2008#», «Provider=Microsoft.Jet.OLEDB.4.0;» + «Data Source=» + @»….kafe.mdb»);
B.SelectCommand.Connection.Open();
B.SelectCommand.ExecuteNonQuery();
B.SelectCommand.Connection.Close();
DataTable C = new DataTable();
B.Fill(C);
dataGridView1.DataSource = C;

Профиль
Группа: Участник
Сообщений: 310
Регистрация: 15.11.2007

Репутация: нет
Всего: нет

Код
OleDbDataAdapter B = new OleDbDataAdapter(«SELECT * FROM Содержание_заказа WHERE Дата=#12/03/2008#», .

ну т.к. в БД нет строки с такой датой то у меня выскочила табличка:

Код
MessageBox.Show(«Извените, по вашему запросу ничего не найдено», .

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

Добавлено через 1 минуту и 8 секунд
Вот поставил 20/11/2008:
и в dataGridView1 вывелись ВСЕ найденные РЕЗУЛЬТАТЫ .. причем верные)))))

Добавлено через 3 минуты и 34 секунды
ВЫВОД:

дату надо получить из dateTimePicker1.Value и привести к виду:

#ч/м/г#,а потом только вызывать запрос.

Let’s do some .NET

Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 67

Код
OleDbDataAdapter B = new OleDbDataAdapter(«SELECT * FROM Содержание_заказа WHERE Дата=#»+dateTimePicker1.Value.ToString(«dd/MM/yyyy»)+»#», «Provider=Microsoft.Jet.OLEDB.4.0;» + «Data Source=» + @»….kafe.mdb»);
B.SelectCommand.Connection.Open();
B.SelectCommand.ExecuteNonQuery();
B.SelectCommand.Connection.Close();
DataTable C = new DataTable();
B.Fill(C);
dataGridView1.DataSource = C;

Это сообщение отредактировал(а) Partizan — 4.12.2008, 12:28

Профиль
Группа: Участник
Сообщений: 310
Регистрация: 15.11.2007

Репутация: нет
Всего: нет

Да уж(
и так не работате((((

Код
OleDbDataAdapter B = new OleDbDataAdapter(«SELECT * FROM Содержание_заказа WHERE Дата=#»+dateTimePicker1.Value.ToString(«MM/dd/yyyy»)+»#», «Provider=Microsoft.Jet.OLEDB.4.0;» + «Data Source=» + @»….kafe.mdb»);
Код
Дата содержит синтаксическую ошибку в выражении запроса ‘Дата=#11.20.2008#’.
Код
SELECT * FROM Содержание_заказа WHERE Дата=#11.20.2008#

Добавлено через 5 минут
Причем по моему не так:
ToString(«MM/dd/yyyy»)
а вот так:
ToString(«dd/MM/yyyy»)
ну всеравно не пашет((((

Это сообщение отредактировал(а) kuller — 4.12.2008, 12:32

Let’s do some .NET

Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

No, no, no.

These answers are all wrong. There is a fundamental absence of knowledge in your brain that I’m going to remedy right now.

Your major issue here is your naming scheme. It’s verbose, contains undesirable characters, and is horribly inconsistent.

First: A table that is called Salesperson does not need to have each field in the table called Salesperson.Salesperson number, Salesperson.Salesperson email. You’re already in the table Salesperson. Everything in this table relates to Salesperson. You don’t have to keep saying it.

Instead use ID, Email. Don’t use Number because that’s probably a reserved word. Do you really endeavour to type [] around every field name for the lifespan of your database?

Primary keys on a table called Student can either be ID or StudentID but be consistent. Foreign keys should only be named by the table it points to followed by ID. For example: Student.ID and Appointment.StudentID. ID is always capitalized. I don’t care if your IDE tells you not to because everywhere but your IDE will be ID. Even Access likes ID.

Second: Name all your fields without spaces or special characters and keep them as short as possible and if they conflict with a reserved word, find another word.

Instead of: phone number use PhoneNumber or even better, simply, Phone. If you choose what time user made the withdrawal, you’re going to have to type that in every single time.

Third: And this one is the most important one: Always be consistent in whatever naming scheme you choose. You should be able to say, «I need the postal code from that table; its name is going to be PostalCode.» You should know that without even having to look it up because you were consistent in your naming convention.

Recap: Terse, not verbose. Keep names short with no spaces, don’t repeat the table name, don’t use reserved words, and capitalize each word. Above all, be consistent.

I hope you take my advice. This is the right way to do it. My answer is the right one. You should be extremely pedantic with your naming scheme to the point of absolute obsession for the rest of your lives on this planet.

NOTE:You actually have to change the field name in the design view of the table and in the query.

First: the syntax you are using is not valid SQL as you have more than one FROM clause which is not allowed; the same applies to the where clause, which by the way operates on the whole set.

You can’t just take bits and pieces of SQL and patch together to get a working query — there is a rather strict and well-defined syntax that you must adhere to.

What you want is either to use subqueries that return scalar values or to use conditional counting:

SELECT  
  COUNT(IIF(Age<=12,age,null)) AS [Under 12] 
 ,COUNT(IIF(Age BETWEEN 13 AND 18,age,null)) AS [13-18]  
FROM Members

Also, FROM Members AS [13-18] assigns an alias to the table, not a column.

Using subqueries (which I guess might have been your intent):

SELECT DISTINCT
    (SELECT COUNT(*) FROM MEMBERS WHERE AGE<=12) AS  [UNDER 12] ,
    (SELECT COUNT(*) FROM MEMBERS WHERE AGE BETWEEN 13 AND 18) AS  [13-18]
FROM MEMBERS

  • Ошибка синтаксиса во введенном выражении access введена запятая перед которой
  • Ошибка синтаксиса андроид apk
  • Ошибка синтаксиса create table sql
  • Ошибка синонимы к этому слову
  • Ошибка синий экран windows 7 0x0000009f windows 7