|
Вопрос о сравнении дат
|
|||
---|---|---|---|
#18+
Исходные данные: руссифицированные MS Access 2003, Windows 7(у меня) и 10(у клиента). Никак не могу понять что происходит. В запросе есть условие вида: e.[Дата] BETWEEN Forms![WorkReport].DateFrom And Forms![WorkReport].DateTo где DateFrom и DateTo объявлены как свойства типа Date, поле e.[Дата], разумеется, тоже дата, в смысле, native-datetime. Запрос является базовым для отчёта, который показывает записи за указанный период. У меня на компьютере всё прекрасно работает абсолютно независимо от региональных установок и способов, на компьютере же клиента, для которого по просьбе и правится старая уже программа, не работает ни один из многочисленных перепробованных мною вариантов. Никакие преобразования не срабатывают. Например: BETWEEN CDate(Forms![WorkReport].DateFrom) And CDate(Forms![WorkReport].DateTo) и вовсе выдаёт известную ошибку о слишком сложном выражении. Формально, я знаю, что в Access SQL по сути единственным гарантированным выражением для даты является американский(#m.d.yyyy#), в который обычно легко преобразуется локальный при подстановке параметров запроса, например. Вроде как должна работать подстановка функций, возвращающих дату, как пример: BETWEEN FuncDateFrom() And FuncDateTo() Так вот на моём компьютере работает абсолютно все перечисленные варианты, у клиента-же, как заговорённый, никаких вариантов, кроме прописывание дат как литералов в американском стиле. Я безусловно могу везде, где это надо, жестко прописывать дату в этом стиле, но очень хотелось бы, чтобы всё-таки у клиента работало также, как на моём компьютере. Собственно, в этом и вопрос: может кто-то разбирался плотно, что на так может влиять на поведение в восприятии дат в Access SQL ? Версия Access у клиента и меня совпадают, правда у меня SP3, у него пока не узнавал, возможно это влияет. Просто не хочется мусорить литералами и постоянными преобразованиями в американский формат, очень некрасиво. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2021, 22:57 |
|
Вопрос о сравнении дат
|
|||
---|---|---|---|
#18+
Upd. У клиента тоже SP3 и как выяснилось, формат воспринимается только #YYYY-MM-DD# и #YYYY/MM/DD#. Остальные, кажется, даже американский, нет. Просто феерия какая-то :( ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2021, 23:10 |
|
Вопрос о сравнении дат
|
|||
---|---|---|---|
#18+
ChA ... Просто не хочется мусорить литералами и постоянными преобразованиями в американский формат, очень некрасиво. Ваше стремление к "красоте",по-моему,уж очень избыточно.Ну где тут не красиво?(Тем более что это может быть пользовательская функция преобразующая дату к американскому стандарту) Me.дата>=#" & FORMAT(Forms![WorkReport].DateFrom,"mm\/dd\/yy") & "# and me.дата =<#" & FORMAT(Forms![WorkReport].DateTo,"mm\/dd\/yy") & "#" И посмотрите региональные настройки ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2021, 23:43 |
|
Вопрос о сравнении дат
|
|||
---|---|---|---|
#18+
ChA, У клиента скорее всего не так как на картинке И если это изменить нельзя - я писал функцию, которая точно возвращала нормальную дату ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2021, 23:58 |
|
Вопрос о сравнении дат
|
|||
---|---|---|---|
#18+
ChA, И да, как уже выше намекнули, BETWEEN более капризен чем >= And <= (в акцессе) как мне показалось.... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 00:03 |
|
Вопрос о сравнении дат
|
|||
---|---|---|---|
#18+
vmag У клиента скорее всего не так как на картинке И если это изменить нельзя - я писал функцию, которая точно возвращала нормальную дату Это явно какая-то фигня, но всё что я просмотрел заново на эту тему, сводится либо к DateSerial, либо к литералам в американском стиле, хотя повторюсь, у меня на компьютере всё прекрасно работает без каких-либо литералов. Понадеялся, что может кто-то разобрался досконально с этим вопросом, но по ходу, увы, всё те же, всё так же. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 00:21 |
|
Вопрос о сравнении дат
|
|||
---|---|---|---|
#18+
ChA, может отстать от запроса и формировать фильтр в команде открытия? есть и более сложный способ (и универсальный) фильтрации(или формирования) данных через openArgs ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 09:15 |
|
Вопрос о сравнении дат
|
|||
---|---|---|---|
#18+
alecko формировать фильтр в команде открытия? есть и более сложный способ (и универсальный) фильтрации(или формирования) данных через openArgs ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 12:26 |
|
Вопрос о сравнении дат
|
|||
---|---|---|---|
#18+
ChA, Смотрю на Ваше первое сообщение и возникает тривиальнейший вопрос: а в реале дата обрамлена решетками? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 12:27 |
|
Вопрос о сравнении дат
|
|||
---|---|---|---|
#18+
sdku Смотрю на Ваше первое сообщение и возникает тривиальнейший вопрос: а в реале дата обрамлена решетками? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 16:38 |
|
Вопрос о сравнении дат
|
|||
---|---|---|---|
#18+
гляньте это(в конструкторе запросов и VBA синтаксис разный): ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 17:30 |
|
Вопрос о сравнении дат
|
|||
---|---|---|---|
#18+
ChA, в другой (тестовой, созданной с нуля) такие же проблемы? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 19:07 |
|
Вопрос о сравнении дат
|
|||
---|---|---|---|
#18+
ChA .... И на моём компьютере всё, что я хотел, работает прекрасно, а вот у клиента нет... "Давайте уж начистоту"-не надо искать черную кошку в темной комнате ,когда её там нет ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 19:32 |
|
Вопрос о сравнении дат
|
|||
---|---|---|---|
#18+
sdku гляньте это(в конструкторе запросов и VBA синтаксис разный): В модуль твоей формы я добавил Код: vbnet 1. 2. 3. 4. 5. 6. 7.
Скопировал твой запрос с другим именем и немного его поменял Код: sql 1. 2. 3.
И запрос открывается и показывает ровно то, что должен, без литералов и #. Вот я и хочу, чтобы у клиента работало так же. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 19:33 |
|
Вопрос о сравнении дат
|
|||
---|---|---|---|
#18+
Панург ChA, в другой (тестовой, созданной с нуля) такие же проблемы? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 19:41 |
|
Вопрос о сравнении дат
|
|||
---|---|---|---|
#18+
ChA Дело в том, что клиент удалённый, я не могу экспериментировать на его компьютере ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 20:14 |
|
Вопрос о сравнении дат
|
|||
---|---|---|---|
#18+
ChA, у вас два свободных поля на форме, и в свойствах указан один из стандартных форматов даты. Я правильно понял? Это важно. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 20:15 |
|
Вопрос о сравнении дат
|
|||
---|---|---|---|
#18+
Панург но надо как-то решить проблему? Возможно файл фронтэнда испорчен, а возможно что-то с приложением... Клиенту это тоже нужно. Сейчас полно способов получить санкционированный дистанционный доступ к машине. Кривцов Анатолий ChA, у вас два свободных поля на форме, и в свойствах указан один из стандартных форматов даты. Я правильно понял? Это важно. Код: vbnet 1. 2. 3.
У меня-то работают практически любые варианты, в том числе и без DateSerial, это уже просто от безнадёги, на авось, хотя выглядит глупо, так как всё равно возвращается тип Date. Если бы не смогло конвертироваться, то вылетала бы ошибка при запуске запроса, как у клиента :) Первоначальный вариант был проще Код: vbnet 1. 2. 3.
и у меня он тоже работал. Я уже подумывал, что это связано с тем, что я всегда в ОС выставляю себе краткий формат даты, совпадающий с ISO - YYYY-MM-DD, но когда клиент попробовал поменять у себя на такой же, то ничего не изменилось, кроме отображения дат, а код как не работал, так и не работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 21:17 |
|
Вопрос о сравнении дат
|
|||
---|---|---|---|
#18+
ChA, ссылки на элементы формы в запросах - инородное тело для SQL. А ActiveX элемент - инородное тело для Акса. Где-то здесь собака и порылась. Лучшее решение - заменить это хозяйство на два обычных поля и всплывающий календарик. В свежих версиях Акса он уже есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2021, 16:23 |
|
Вопрос о сравнении дат
|
|||
---|---|---|---|
#18+
Кривцов Анатолий ссылки на элементы формы в запросах - инородное тело для SQL Кривцов Анатолий ActiveX элемент - инородное тело для Акса. Кривцов Анатолий Где-то здесь собака и порылась. Кривцов Анатолий Лучшее решение - заменить это хозяйство на два обычных поля и всплывающий календарик. В свежих версиях Акса он уже есть. P.S. В принципе, тему для себя закрываю. Ничего нового, к сожалению, я не увидел ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2021, 01:00 |
|
Вопрос о сравнении дат
|
|||
---|---|---|---|
#18+
ChA Кривцов Анатолий ActiveX элемент - инородное тело для Акса. Но Анатолий прав, активы - вне акса, их применение на свой страх и риск. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2021, 11:54 |
|
Вопрос о сравнении дат
|
|||
---|---|---|---|
#18+
Прогер_самоучка ChA удобная вещь для расширения функциональности. P.S. Вот обо всём мне рассказали, кроме того, что я действительно хотел узнать ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2021, 14:18 |
|
Вопрос о сравнении дат
|
|||
---|---|---|---|
#18+
ChA P.S. Вот обо всём мне рассказали, кроме того, что я действительно хотел узнать дык, ты бы хоть сообщение ошибки привёл, чтоле ... а то "не работает" и понимай как знаешь ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2021, 14:21 |
|
Вопрос о сравнении дат
|
|||
---|---|---|---|
#18+
ChA ActiveX - обычный OLE-объект, который следует заданному протоколу обмена данных между приложениями и в среде Windows они сплошь и рядом. они-то, "сплошь и рядом", только даже на одной версии ОС, запросто "оказуются" разных версий А с учётом "дурацкой" черты Акцесса "залипать" на ту версию, на которой компилировался проект, - доставляют много дополнительных "радостей", типа компилирования на конкретной машине :) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2021, 14:31 |
|
Вопрос о сравнении дат
|
|||
---|---|---|---|
#18+
Решено. На всякий случай, опишу причину проблемы, описанной в стартовом топике, вдруг кто-то ещё окажется в подобной ситуации. У клиента стояла безопасность(Сервис/Макрос/Безопасность...) на среднем уровне. В результате, процедуры из объектов MS Access, в данном случае - форм, не запускались внутри Jet SQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2021, 18:36 |
|
|
start [/forum/topic.php?fid=45&msg=40074009&tid=1609677]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
132ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
others: | 268ms |
total: | 511ms |
0 / 0 |