В этой статье представлена ошибка с номером Ошибка 2431, известная как Введенное вами выражение содержит недопустимый синтаксис, описанная как Введенное вами выражение содержит недопустимый синтаксис. @ Возможно, вы ввели запятую без предшествующего значения или идентификатора. @@ 1 @@@ 1.
О программе Runtime Ошибка 2431
Время выполнения Ошибка 2431 происходит, когда Microsoft Access дает сбой или падает во время запуска, отсюда и название. Это не обязательно означает, что код был каким-то образом поврежден, просто он не сработал во время выполнения. Такая ошибка появляется на экране в виде раздражающего уведомления, если ее не устранить. Вот симптомы, причины и способы устранения проблемы.
Определения (Бета)
Здесь мы приводим некоторые определения слов, содержащихся в вашей ошибке, в попытке помочь вам понять вашу проблему. Эта работа продолжается, поэтому иногда мы можем неправильно определить слово, так что не стесняйтесь пропустить этот раздел!
- Запятая — запятая ‘,’ используется для обозначения разделения элементов внутри списка, например массива, или параметров, принимаемых функцией.
- Выражение — комбинация нескольких программных символов и значений, предназначенная для получения результата.
- Идентификатор — идентификатор — это имя, которое идентифицирует уникальный объект или уникальный класс объектов.
- Синтаксис — синтаксис относится к фактическим языковым элементам и самим символам
- синтаксическая ошибка — синтаксис ошибка возникает, когда программа не следует синтаксическим правилам языка программирования.
Симптомы Ошибка 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, вы можете сделать следующее:
- Сбросьте настройки браузера.
- В Windows 7 вы можете нажать «Пуск», перейти в «Панель управления» и нажать «Свойства обозревателя» слева. Затем вы можете перейти на вкладку «Дополнительно» и нажать кнопку «Сброс».
- Для Windows 8 и 10 вы можете нажать «Поиск» и ввести «Свойства обозревателя», затем перейти на вкладку «Дополнительно» и нажать «Сброс».
- Отключить отладку скриптов и уведомления об ошибках.
- В том же окне «Свойства обозревателя» можно перейти на вкладку «Дополнительно» и найти пункт «Отключить отладку сценария».
- Установите флажок в переключателе.
- Одновременно снимите флажок «Отображать уведомление о каждой ошибке сценария», затем нажмите «Применить» и «ОК», затем перезагрузите компьютер.
Если эти быстрые исправления не работают, вы всегда можете сделать резервную копию файлов и запустить восстановление на вашем компьютере. Однако вы можете сделать это позже, когда перечисленные здесь решения не сработают.
Другие языки:
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.
Об авторе: Фил Харт является участником сообщества Microsoft с 2010 года. С текущим количеством баллов более 100 000 он внес более 3000 ответов на форумах Microsoft Support и создал почти 200 новых справочных статей в Technet Wiki.
Следуйте за нами:
Последнее обновление:
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 устанавливаться по центру.
Как бороться с ошибкой «Запрошенный файл не является допустимым 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 ожидает имя макроса или события, которые должны быть выполнены при активации этого события.»
Источник
Содержание
- Studhelper IT
- Страницы
- четверг, 4 июня 2015 г.
- Ошибки при запуске объектов с формы Access
- Ошибка: Object or class does not support the set of events
- Выражение нажатие кнопки введенное в поле свойства события вызывает ошибку
- Выражение нажатие кнопки введенное в поле свойства события вызывает ошибку
Studhelper IT
Разработка приложений, переводы книг по программированию
Страницы
четверг, 4 июня 2015 г.
Ошибки при запуске объектов с формы Access
Мастер создания кнопок Access не всегда корректно создает макрос или процедуру запуска соответствующих объектов, помещает или неправильное название формы, отчета, запроса, или вообще никакого названия.
Вот, например, нажатие кнопки для запуска формы «Запрос ФИО и специальность» (база данных абитуриентов) вызывает ошибку:
Ошибка синтаксиса во введенном выражении. Введена запятая, перед которой отсутствует значение или идентификатор
А вот нажатие кнопки запуска отчета выдает ошибку
Введенное в поле свойства или макроса имя отчета «Отчет по абитуриентам» содержит ошибку или указывает на несуществующий отчет.
Дальше предлагается перейти в макрос и исправить.
В конструкторе нажмем правой кнопкой мыши на кнопку запуска формы («ФИО и специальность» в нашем случае) и откроем свойства элемента. На вкладке «События» найдем событие «Нажатие кнопки». Нажмем кнопку с тремя точками и перейдем в макрос. Вот что видим в поле «Имя формы».
Удалим все символы из этой строки. Появляется кнопка выпадающего списка. Выберем имя нужной формы:
Источник
Ошибка: Object or class does not support the set of events
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Вложения
учет оргтехники15-09-15.rar (412.1 Кб, 10 просмотров) |
‘set’ object doesn’t support item assignment
Доброго времени суток. Не могу понять, что за ошибка, как исправить.. выдает в строке 5 при r ==.
Unity ошибка NullReferenceException: Object reference not set to an instance of an object
Сам новичок в C# и Unity. Много чего не знаю. Подскажите, пожалуйста. Столкнулся с ошибкой.
Ошибка времени выполнения: Object reference not set to an instance of an object
Программа должна выводить на экран двоичное представление введённого числа. При этом обязательно.
Вложения
учет оргтехники15-09-15 v1.7z (312.5 Кб, 7 просмотров) |
Когда так делаю, то потом у меня тоже не работает, и если это символы Юникода, то они как то не постоянно работают. По этому потом переименовываю на то, как по названию формы, отчета и т.д.
Разработчикам, есть над чем поработать, т.к. выявлены и вынесены на всеобщее обсуждение замечания.
Юникод постепенно вытесняет 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 ( естессно )
оттуда компонент MonthView вставил в форму, и опять в том же событии таже хрень (((
Источник
Выражение нажатие кнопки введенное в поле свойства события вызывает ошибку
Профиль
Группа: Участник
Сообщений: 8
Регистрация: 23.3.2006
Репутация: нет
Всего: нет
Цитата |
«Выражение Нажатие кнопки, введенное в поле свойства события, вызывает ошибку: возникла ошибка при установлении связи в приложении « Microsoft Office Access » с сервером OLE или элементом управления ActiveX *Результатом выражения не является имя макроса, имя функции или строка [Процедура обработки событий] *Ошибка при вычислении функции, события или макроса» |
Профиль
Группа: Участник
Сообщений: 22
Регистрация: 7.4.2006
Репутация: нет
Всего: нет
Профиль
Группа: Участник
Сообщений: 8
Регистрация: 23.3.2006
Репутация: нет
Всего: нет
Профиль
Группа: Участник
Сообщений: 8
Регистрация: 23.3.2006
Репутация: нет
Всего: нет
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 |
17250 / 7091 / 1595 Регистрация: 21.06.2012 Сообщений: 13,335 |
|
04.04.2016, 23:34 |
2 |
А так
1 |
mobile 26784 / 14463 / 3192 Регистрация: 28.04.2012 Сообщений: 15,782 |
||||||||
04.04.2016, 23:39 |
3 |
|||||||
Нужно проверить только первую букву на «заглавность»? Тогда зачем так сложно:
Даст True если первая буква заглавная и False если строчная Если проверять всю фамилию, то так
1 |
4040 / 1425 / 394 Регистрация: 07.08.2013 Сообщений: 3,553 |
|
05.04.2016, 04:00 |
4 |
А оно надо — проверять?
1 |
0 / 0 / 0 Регистрация: 04.04.2016 Сообщений: 13 |
|
05.04.2016, 21:28 [ТС] |
5 |
А так А так выдает другую ошибку: Миниатюры
0 |
17250 / 7091 / 1595 Регистрация: 21.06.2012 Сообщений: 13,335 |
|
05.04.2016, 21:43 |
6 |
А так выдает другую ошибку: Угу. Только почему то у меня не выдает. И ввести Фамилию с первой строчной буквой не позволяет. Смотрите вложение, Таблица1.
1 |
0 / 0 / 0 Регистрация: 04.04.2016 Сообщений: 13 |
|
05.04.2016, 21:44 [ТС] |
7 |
asc(ucase(left(Фамилия;1)))=asc(left(Фамилия;1)) Так вылетает та же ошибка, что и в предыдущем случае: Миниатюры
0 |
snipe 4040 / 1425 / 394 Регистрация: 07.08.2013 Сообщений: 3,553 |
||||
05.04.2016, 21:56 |
8 |
|||
2 |
ltv_1953 |
05.04.2016, 21:59
|
Не по теме: Это уже забавно. Вариант mobile, естественно, работает. И для каких же таблиц ТС пытается написать Check?
0 |
0 / 0 / 0 Регистрация: 04.04.2016 Сообщений: 13 |
|
05.04.2016, 22:05 [ТС] |
10 |
Угу. Только почему то у меня не выдает. И ввести Фамилию с первой строчной буквой не позволяет. Смотрите вложение, Таблица1. А у меня почему-то выдает. Не пойму, в чем причина… База во вложении, можете попробовать.
0 |
0 / 0 / 0 Регистрация: 04.04.2016 Сообщений: 13 |
|
05.04.2016, 22:09 [ТС] |
11 |
strcomp(ucase(Фамилия); Фамилия; 0)=0 В этом примере все буквы фамилии должны быть заглавными. Это не нужно. Нужно, чтобы первая была заглавная, а остальные прописные.
0 |
4040 / 1425 / 394 Регистрация: 07.08.2013 Сообщений: 3,553 |
|
05.04.2016, 22:09 |
12 |
добавьте = 0
1 |
mobile 26784 / 14463 / 3192 Регистрация: 28.04.2012 Сообщений: 15,782 |
||||
05.04.2016, 22:12 |
13 |
|||
С учетом пустых значений, вот так попробуйте.
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 |
|||||||||||
вот скрин Отличное решение! Все работает. Только LCase() там не нужна. Вот что у меня получилось:
Теперь возник другой вопрос. Попробовал еще упростить выражение. Вот так:
Но данный вариант почему-то не работает, вообще никак не реагирует при вводе фамилии с маленькой буквы. Почему? Добавлено через 2 минуты
0 |
4040 / 1425 / 394 Регистрация: 07.08.2013 Сообщений: 3,553 |
|
05.04.2016, 22:56 |
16 |
1.LCase — нужна потому-что шаловливые руки пользователей могут написать всю фамилию заглавными буквами
0 |
0 / 0 / 0 Регистрация: 04.04.2016 Сообщений: 13 |
|
05.04.2016, 23:08 [ТС] |
17 |
1.LCase — нужна потому-что шаловливые руки пользователей могут написать всю фамилию заглавными буквами Я тоже так думал, но и без LCase программа не дает написать всю фамилию заглавными буквами. Видимо StrConv переводит не только первую букву в верхний регистр, но и последующие в нижний.
2. Потому-что StrComp с параметром 0 производит бинарное сравнение и заглавные буквы отличаются от прописных Понял!
3. возможно в данном поле есть ограничения по количеству вводимых символов — хотя если честно не знаю Дело в том, что выше ltv_1953 прислал пример, в котором данное выражение работает. Добавлено через 2 минуты
0 |
4040 / 1425 / 394 Регистрация: 07.08.2013 Сообщений: 3,553 |
|
06.04.2016, 04:08 |
18 |
А как реализовать автозамену это делается в форме — в поле на событие до обновления(после обновления) вешается код автозамены и перевод фокуса в следующее поле — все
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