Я занимаюсь углубленными панелями функциональных областей в excel, которые обновляются после команды конечного пользователя кнопки «Обновить все». Единственная проблема, с которой я сталкиваюсь, - это обновлять ежедневное производство, когда прошло полночь, тем самым обращаясь к обратному запросу «date()», к текущему дню в полночь.Доступ к запросам из Excel: переменные параметры
Это условие, в котором я хочу работать правильно: я хочу, чтобы все> = 5 утра для сегодняшнего или предыдущего дня в зависимости от времени NOW.
WHERE start_time >=
(iif(timevalue(now()) between #00:00# and #4:59#,date()-1,date()))
AND timevalue(start_time) >= #5:00#;
Дело в том, что она возвращается в такой чрезвычайно медленно.
Я не думаю, что я когда-либо ждал его завершения. Я не уверен, что он вычисляет эту логику на каждой записи, вовлеченной в задний стол или нет, что объясняет блокировку.
Я действительно хочу избежать динамического построения любой логики, поскольку я просто использую Excel для вызова этого запроса Access с помощью мастера запросов. Мне не хотелось бы прибегать к кнопке доступа, запускающей модуль для динамического построения запроса, а затем фокусировки окна excel и обновления.
Было бы неплохо создать объект, скажем, [Форма]! но это полезно только тогда, когда форма активна. Даже тогда SQL отклоняет любые подвычисления в объекте формы.
Любые мысли?
Бах, я просто понял, что все равно будет игнорировать полночь - 4:59 с # 5: 00 # последнее условие. Причина, по которой я начинал в # 5: 00 #, заключалась в том, чтобы опустить данные о кровотечении вскоре после полуночи ... Я не думаю, что есть способ НЕ построить это в VBA. У меня нет проблем писать в VBA, чтобы выполнить то, что мне нужно сделать; Может ли единственный вариант использовать Excel VBA для создания динамического запроса в доступе, сохранить определение запроса в доступе и затем вызвать его через excel? –
Итак, когда now() - # 5: 00 #, то вам нужно, чтобы start_time> = now()? Полагаю, это не даст много результатов, верно? Я думаю, вы должны сначала записать, возможно, псевдокод, что вы действительно хотите. Сделайте требования однозначно понятными. – trincot
Если я обновляюсь в любое время в течение дня с 5:00 до 23:59, просто для того, чтобы вернуться> = дата() , если его после полуночи .. должен быть в предыдущий день после 5 утра и все для текущего дня (что быть чем-нибудь после полуночи - 4:59).Gustav сделал хороший момент ниже, я просто борюсь, по какой-то причине, с аномально длинным временем запроса –