|
|
|
VBA & Построитель выражений
|
|||
|---|---|---|---|
|
#18+
Тогда так: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2004, 21:59:56 |
|
||
|
VBA & Построитель выражений
|
|||
|---|---|---|---|
|
#18+
автор)]";Дата=#" & Владимир Саныч, но ты допускаешь ту же ожибку - условие не в строке... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2004, 22:03:53 |
|
||
|
VBA & Построитель выражений
|
|||
|---|---|---|---|
|
#18+
2 Serge Gavrilov, пять баллов, большое спасибо! Недопонял тебя сначала 2 Владимир Саныч, я так пробовал... даже просто с DateSerial(2004,06,30) не заработало. Ну, вопрос снят, тем не менее. Спасибо за помощь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2004, 22:04:46 |
|
||
|
VBA & Построитель выражений
|
|||
|---|---|---|---|
|
#18+
Serge GavrilovВладимир Саныч, но ты допускаешь ту же ожибку - условие не в строке... Это не ошибка, это и есть замысел. Сначала посчитать дату, а потом включить ее в строку. А не наоборот, как было. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2004, 22:07:54 |
|
||
|
VBA & Построитель выражений
|
|||
|---|---|---|---|
|
#18+
А. Таки понял. =Nz(DLookUp("[Остатки (хранение)]![Остаток (кг)]";"[Остатки (хранение)]"; " Дата=#" & format(DateAdd("m";1;DateSerial(Year(Forms!Отчеты![Конец периода]);Month(Forms!Отчеты![Конец периода]);1))-1; "mm\/dd\/yyyy") & "# " );"0") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2004, 22:09:09 |
|
||
|
VBA & Построитель выражений
|
|||
|---|---|---|---|
|
#18+
Так не будет проще? Nz(DLookup("[Остаток (кг)]", "[Остатки (хранение)]", "Дата = CDate('" & _ DateAdd("m", 1, CDate("01/" & Format(Forms!Отчеты![Конец периода], "mm/yyyy"))) & "'"), "0") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2004, 22:40:36 |
|
||
|
VBA & Построитель выражений
|
|||
|---|---|---|---|
|
#18+
Еденичку и скобку потерял Nz(DLookup("[Остаток (кг)]", "[Остатки (хранение)]", "Дата = CDate('" & _ DateAdd("m", 1, CDate("01/" & Format(Forms!Отчеты![Конец периода], "mm/yyyy"))) & "') - 1"), "0") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2004, 22:42:21 |
|
||
|
VBA & Построитель выражений
|
|||
|---|---|---|---|
|
#18+
Если я не ошибаюсь, CDate трактует подсунутый ему стринг в соответствии с региональными настройками. То есть CDate("1/2/2004") может оказаться и первым февраля, и вторым января. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2004, 22:44:04 |
|
||
|
VBA & Построитель выражений
|
|||
|---|---|---|---|
|
#18+
Владимир СанычЕсли я не ошибаюсь, CDate трактует подсунутый ему стринг в соответствии с региональными настройками. То есть CDate("1/2/2004") может оказаться и первым февраля, и вторым января. Правильно! Но тем же и хорошо - в текстбоксе - тот же формат! И приклейка с помощью # тоже опасна по этой причине, а может быть даже еще опаснее, т.к. Акс переворачивает дату как он ее понимает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2004, 22:52:33 |
|
||
|
VBA & Построитель выражений
|
|||
|---|---|---|---|
|
#18+
Rivkin DmitryПравильно! Но тем же и хорошо - в текстбоксе - тот же формат! Понял. Действительно. Rivkin Dmitry И приклейка с помощью # тоже опасна по этой причине, а может быть даже еще опаснее, т.к. Акс переворачивает дату как он ее понимает Но я ведь приклеиваю после форматирования по MMDDYYYY. А форматирую это значение как дату, а не как стринг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2004, 22:56:19 |
|
||
|
VBA & Построитель выражений
|
|||
|---|---|---|---|
|
#18+
Стоп!!! Нет!!! Дмитрий, почитай, что ты написал. CDate("01/" & Format(Forms!Отчеты![Конец периода], "mm/yyyy") То есть ты заведомо подкладываешь в CDate стринг по формату DDMMYYYY, а не из текстбокса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2004, 22:58:22 |
|
||
|
VBA & Построитель выражений
|
|||
|---|---|---|---|
|
#18+
Но я же дважды пользуюсь CDate !!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2004, 23:04:59 |
|
||
|
VBA & Построитель выражений
|
|||
|---|---|---|---|
|
#18+
Но внешний срабатывает правильно (его параметр либо дата, либо целое число), а внутренний неправильно. Так что взаимно нейтрализоваться они не могут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2004, 23:06:23 |
|
||
|
VBA & Построитель выражений
|
|||
|---|---|---|---|
|
#18+
Почему? Если наружный верно работает, так и внутренний отработает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2004, 23:08:30 |
|
||
|
VBA & Построитель выражений
|
|||
|---|---|---|---|
|
#18+
Но сначала-то работает внутренний! И если его результат неправильный, то ошибка так и пойдет дальше, вплоть до конечного результата всего выражения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2004, 23:09:31 |
|
||
|
VBA & Построитель выражений
|
|||
|---|---|---|---|
|
#18+
Извиняюсь за перерыв - спать ходил... CDate("01/" & Format(Forms!Отчеты![Конец периода], "mm/yyyy")) возвращает date без проблем. DateAdd продлжает возвращать date и Дата = CDate только корректно передает критерий ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2004, 10:09:51 |
|
||
|
VBA & Построитель выражений
|
|||
|---|---|---|---|
|
#18+
Rivkin DmitryCDate("01/" & Format(Forms!Отчеты![Конец периода], "mm/yyyy")) возвращает date без проблем. Если в настройках указано mm/dd/yyyy, то CDate("01/" & ...) вернет какое-нибудь число месяца января, тогда как по замыслу автора программы должно быть первое число какого-нибудь месяца. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2004, 20:45:30 |
|
||
|
|

start [/forum/topic.php?fid=45&gotonew=1&tid=1673791]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
11ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
72ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 393ms |

| 0 / 0 |
