Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 17.09.2013
Сообщений: 19

Синтаксическая ошибка в выражении запроса

25.10.2013, 20:36. Показов 2823. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго дня всем.
Вот такая задачка.
Написана функция:

Visual Basic
1
2
3
Function SumtDt(Dt As Date) As Currency
SumtDt = DSum("Сумма", "test", "Дата=#" & Dt & "# ")
End Function
На такой вопрос в окне отладки:
?SumtDt (#10/1/2013#)

Вот такая получатся ошибка в выражении:
'Дата=#01.10.2013#'

Я так понимаю, почему то точки получаются в разделителях даты.

Помогите вылечить.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.10.2013, 20:36
Ответы с готовыми решениями:

Синтаксическая ошибка (запятая) в выражении запроса
Пытаюсь создать запрос SELECT t1.*, t2.* FROM tst_021_01_edit_cont t1, tst_021_02_shbl t2 WHERE t1.id_021=t2.id_021 ...

Синтаксическая ошибка запроса через VBA
Данный запрос выдает ошибку на AND Format(, 'dd/mm/yyyy')>= # " & d1 & " #" Вариант strSQL = dbs.QueryDefs("nameReport").SQL...

Ошибка компиляции в выражении запроса
Добрый день! Хелпуйте товарищи. Вот есть модуль с функцией сложения ячеек. Вот ее листинг: Option Compare Database Option Explicit ...

7
3357 / 1776 / 83
Регистрация: 05.08.2010
Сообщений: 4,471
25.10.2013, 20:39
Попробуйте так:
Visual Basic
1
2
3
4
Function SumtDt(Dt As Date) As Currency
Dt=Format(Dt, "\#mm\/dd\/yyyy\#")
SumtDt = DSum("Сумма", "test", "Дата=" & Dt & "")
End Function
1
0 / 0 / 0
Регистрация: 17.09.2013
Сообщений: 19
25.10.2013, 23:49  [ТС]
Не работает.

Несоответствие типа (ошибка 13) на вторую строчку.
0
Эксперт MS Access
26825 / 14505 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
26.10.2013, 00:08
Лучший ответ Сообщение было отмечено как решение

Решение

Результатом работы функции Format будет строка, текстовое выражение. И приравнивать строку к переменной типа Date нельзя - смешение типов. Можно чуть изменить, чтобы получить нужное
Visual Basic
1
2
3
4
5
Function SumtDt(Dt As Date) As Currency
dim d As String
d=Format(Dt, "\#mm\/dd\/yyyy\#")
SumtDt = DSum("Сумма", "test", "Дата=" & d)
End Function
3
0 / 0 / 0
Регистрация: 17.09.2013
Сообщений: 19
26.10.2013, 00:31  [ТС]
Да. Так обманули Access. Спасибо.
0
3357 / 1776 / 83
Регистрация: 05.08.2010
Сообщений: 4,471
26.10.2013, 09:16
Visual Basic
1
2
3
4
Function SumtDt(Dt As String) As Currency
Dt=Format(Dt, "\#mm\/dd\/yyyy\#")
SumtDt = DSum("Сумма", "test", "Дата=" & Dt)
End Function
0
Эксперт MS Access
26825 / 14505 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
26.10.2013, 09:46
Цитата Сообщение от Agapov_stas Посмотреть сообщение
Function SumtDt(Dt As String) As Currency
Стас, если оригинальный передаваемый параметр будет типа Date, то делать в функции его стрингом - не лучшее решение. Во-первых будет несоответствие типа данных и надо будет заворачивать параметр в Cstr, что выровнять типы. Второе: по умолчанию параметры передаются по ссылке ByRef, и если исходный параметр поле таблицы, то будет попытка изменить значение поля. Что конечно недопустимо. Да и приведет к ошибке из-за несоответствия типов. Тогда уж придется писать (ByVal Dt As String), чтобы передать по значению, не изменяя исходной величины.
Да и вообще лучше без нужды не менять в функции передаваемый внешний параметр.
2
3357 / 1776 / 83
Регистрация: 05.08.2010
Сообщений: 4,471
26.10.2013, 10:52
Цитата Сообщение от mobile Посмотреть сообщение
Тогда уж придется писать (ByVal Dt As String), чтобы передать по значению, не изменяя исходной величины.
А вот этого не учел..
Плюсую.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.10.2013, 10:52
Помогаю со студенческими работами здесь

Ошибка синтаксиса в выражении запроса
Здравствуйте! Подскажите, пожалуйста, выход из ситуации: БД содержит записи, в которых есть апостроф, и при поиске таких записей...

Ошибка синтаксиса (пропущен оператор) в выражении запроса
Здравия желаю! При добавлении через форму новой записи, первые данные заносятся, а при добавлении следующих новых записей, выдаётся:...

Ошибка: "Пропущен оператор в выражении запроса"
Что не так SQL.Add('SELECT Таб_Сотрудники.Фамилия, Таб_Доступ_Прова.Название,' + 'Таб_Доступ_Уровень.Название,...

Ошибка запроса System.Data.OleDb.OleDbException: "Ошибка синтаксиса (запятая) в выражении запроса
Добрый день, коллеги! Утро субботы не задалось В коде формирую запрос в базу. Текст запроса следующий: strTabName =...

Синтаксическая ошибка запроса к БД
Здравствуйте, уважаемые. Подскажите, пожалуйста, новичку, как сделать правильно? WHERE ".groupaccess('visibility')." AND...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru