|
Вопрос по агрегатным функциям и датам
|
|||
---|---|---|---|
#18+
Привет всем! Постоянно натыкаюсь на проблемы с использованием агрегатных функций в VBA и использованием критериев в функциях типа дата. Я решил свою проблему в принципе, но скорей методом подбора значений, нежели правилами. Вопрос думаю интересный. Есть список строк в подчиненной форме, которые нужно считать по признаку одной даты: Вот это выражение работает на домашнем компе, но не работает на рабочем: Код: vbnet 1. 2.
А вот это запускается на рабочем, но не работает на домашнем (причем именно с квадратными скобками в имени таблицы, если их убрать то не работает): Код: vbnet 1. 2.
Я проверил несколько раз, реально, база та же,специально пробовал на всех компах. Проверял несколько раз. Почему то всегда приходится подкручивать , когда дело заходит об агрегатных функциях и условиях в них. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2020, 14:29 |
|
Вопрос по агрегатным функциям и датам
|
|||
---|---|---|---|
#18+
Надо использовать функции, которые не зависят от локали. Типа Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2020, 14:36 |
|
Вопрос по агрегатным функциям и датам
|
|||
---|---|---|---|
#18+
Сразу классические вопросы: Версия Windows дома и на работе? Разрядность? Версия офиса дома и на работе? Разрядность? У меня не возникало проблем с совместимостью если отлажен оператор. У меня работал первый вариант. Функция не понимала квадратных скобок. А вот чего не понимаю я, то почему не используется обратный слеш в операторе формат? По всем правилам оператор должен иметь такой вид Код: vbnet 1. 2.
или такой Код: vbnet 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2020, 14:40 |
|
Вопрос по агрегатным функциям и датам
|
|||
---|---|---|---|
#18+
А у ТС локалки разные? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2020, 14:42 |
|
Вопрос по агрегатным функциям и датам
|
|||
---|---|---|---|
#18+
запрос с параметрами решает ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2020, 14:54 |
|
Вопрос по агрегатным функциям и датам
|
|||
---|---|---|---|
#18+
Спасибо всем!) Да, возможно дело в локальных настройках отображения дат на самих машинах. Спасибо за примеры и рекомендации. попробую все варианты ваши, на предмет универсальности. Так то ,из всего вышесказанного - два пути к универсальному решению - либо экранировать правильно, как сказал Joss, либо приводить текст к дате через CDate - Akina. Буду пробовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2020, 14:57 |
|
Вопрос по агрегатным функциям и датам
|
|||
---|---|---|---|
#18+
Сергей Лалов =#" & Format(dt, "mm-dd-yyyy") & "#" =#" & Format(dt, "dd/mm/yyyy") & "#" Проверял несколько раз. Почему то всегда приходится подкручивать , когда дело заходит об агрегатных функциях и условиях в них. Не только в агрегатных функциях, но и в запросах, и в вычисляемых полях формат даты должен быть такой (американский): #mm/dd/yyyy# (или #mm/dd/yy#) Чтоб его получить, я предпочитаю так: =" & Format(dt, "\#mm\/dd\/yyyy\#") Akina=CDate('" & Format(dt, "yyyy-mm-dd") Akina, ваш совет не лучший. Мало того, что выполняется преобразование Дата-Текст-Дата, но еще и текстовое представление даты отличантся от системного ДД.ММ.ГГГГ. Не исключены ошибки преобразования. JossПо всем правилам оператор должен иметь такой вид dt = Me.dataNachalaReisa MsgBox DCount("kodReisa", "t_reisi", "[dataNachalaReisa]=#" & Format(dt, "mm\-dd\-yyyy") & "#") или такой dt = Me.dataNachalaReisa MsgBox DCount("[kodReisa]", "[t_reisi]", "[dataNachalaReisa]=#" & Format(dt, "dd\/mm\/yyyy") & "#") Joss, где вы видели такие правила? 1-й вариант, возможно и прокатит, но тоже не надежный, а 2-й точно неправильный (dd и mm не там). ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2020, 16:19 |
|
Вопрос по агрегатным функциям и датам
|
|||
---|---|---|---|
#18+
Сергей Лалов, Тоже сталкивался с проблемой формата дат на разных машинах. Поэтому в запросы даты вставляются через функцию. т.е. к примеру как то так Код: vbnet 1. 2. 3.
и в простейшем случае используется так: Код: vbnet 1.
Если нужно поменять формат даты, меняю маску даты в одном месте. Можно вообще ее определять автоматически и хранить в переменной (но было лень) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2020, 17:15 |
|
Вопрос по агрегатным функциям и датам
|
|||
---|---|---|---|
#18+
Кривцов Анатолий ...Лучше бы вы один раз прочитали ФАК этого форума на эту тему.... ФАК: "Не пропустите символы # (он обрамляет всю константу типа дата-время) и \ (он предохраняет / и : от их замены в соответствии с региональными настройками, что имеет обыкновение делать функция Format и что мешает правильной работе команды SQL.)" ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2020, 17:21 |
|
Вопрос по агрегатным функциям и датам
|
|||
---|---|---|---|
#18+
Сергей Лалов, ну не умеешь ты правильно создавать критерий руками. пусть это делает сам Access - BuildCriteria ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2020, 17:52 |
|
Вопрос по агрегатным функциям и датам
|
|||
---|---|---|---|
#18+
Панург, Ну вот начинается тут )) условие выборки критерия зависит от контекста переменных. Билдер не поможет при наличии в условии множества переменных с разными типами данных. В Vba. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2020, 17:59 |
|
Вопрос по агрегатным функциям и датам
|
|||
---|---|---|---|
#18+
Swa111 Сергей Лалов, Тоже сталкивался с проблемой формата дат на разных машинах. Поэтому в запросы даты вставляются через функцию. т.е. к примеру как то так Код: vbnet 1. 2. 3.
и в простейшем случае используется так: Код: vbnet 1.
Если нужно поменять формат даты, меняю маску даты в одном месте. Можно вообще ее определять автоматически и хранить в переменной (но было лень) Спс, положу в копилку!) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2020, 18:44 |
|
Вопрос по агрегатным функциям и датам
|
|||
---|---|---|---|
#18+
Сергей Лалов, это от чего же? делай по отдельности, для каждой. Проблем не вижу. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2020, 18:45 |
|
Вопрос по агрегатным функциям и датам
|
|||
---|---|---|---|
#18+
Кривцов Анатолий, Вам тоже спасибо! Но тут смотрите ,вопрос не сколько поиск универсального метода ,а почему в одном случае работает (на компе1) и не работает (на компе2). ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2020, 18:49 |
|
Вопрос по агрегатным функциям и датам
|
|||
---|---|---|---|
#18+
Панург Сергей Лалов, это от чего же? делай по отдельности, для каждой. Проблем не вижу. Попробую, спс) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2020, 18:53 |
|
Вопрос по агрегатным функциям и датам
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2020, 19:03 |
|
|
start [/forum/topic.php?fid=45&tid=1610099]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
66ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 178ms |
0 / 0 |