|
Проблема с date в VBA
|
|||
---|---|---|---|
#18+
Исходя из FAQ по формированию строки sql использую следующее: #" & Format([бд]![Внутренний заказДата],"mm\/dd\/yyyy") & "# В запросе, созданным в конструкторе, работает нормально, но копируя код в VBA появляется ошибка 2465 “не удается найти поле”, пробовал с разными полями в разных базах, т.е. ошибка в синтаксисе, но перепробовав различные варианты, не смог ее найти. Поиск не помог. Dim q As Date q = Now с подстановкой q вместо [бд]![Внутренний заказДата] не помогает также. Как правильно писать в vba #" & Format([бд]![Внутренний заказДата],"mm\/dd\/yyyy") & "#. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2012, 11:35 |
|
Проблема с date в VBA
|
|||
---|---|---|---|
#18+
Автор123, пробовали использовать одинарные кавычки вместо двойных? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2012, 11:42 |
|
Проблема с date в VBA
|
|||
---|---|---|---|
#18+
Если менять какие-то одни, vba ругается и краснеет, если все 4 - ошибка синтаксиса. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2012, 11:47 |
|
Проблема с date в VBA
|
|||
---|---|---|---|
#18+
Автор123, покажите ту часть кода, где образуется скл строка полностью и где вба становится стыдно настолько, что она краснеет )))) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2012, 11:56 |
|
Проблема с date в VBA
|
|||
---|---|---|---|
#18+
Автор123, Я так подозреваю, что Вы делаете несколько иное... Два примера для размышлений: Код: vbnet 1. 2. 3. 4.
Код: vbnet 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2012, 12:04 |
|
Проблема с date в VBA
|
|||
---|---|---|---|
#18+
Пример, в конструкторе работает, vba нет. DoCmd.RunSQL "UPDATE бд SET бд.Прим2 = DSum('[Количество]','[бдп]','[бдп]![Внутренний заказДата]=#" & Format([бд]![Внутренний заказДата], "mm\/dd\/yyyy") & "#') WHERE (((бд.Количество)=1));" ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2012, 12:07 |
|
Проблема с date в VBA
|
|||
---|---|---|---|
#18+
Автор123, у меня это выражение красным не выделяет. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2012, 12:14 |
|
Проблема с date в VBA
|
|||
---|---|---|---|
#18+
Ну, во-первых короче и красивше выглядит строка: Format([бд]![Внутренний заказДата],"\#mm\/dd\/yyyy\#") Во-вторых кавычки внутри текстовой константы должны быть продублированы, а в случае с SQL строкой могут быть заменены на апострофы. Т.е. запрос в виде: sSQL = "SELECT ... WHERE [Поле]=Format(Now(), "" \#mm\/dd\/yyyy\# "" )" или sSQL = "SELECT ... WHERE [Поле]=Format(Now(), ' \#mm\/dd\/yyyy\# ' )" или q = Now sSQL = "SELECT ... WHERE [Поле]=Format(" q ", ' \#mm\/dd\/yyyy\# ' )" работать будет. А вот если вместо Now() указать [бд]![Внутренний заказДата], то будет работать, если таблица "бд" включена в раздел FROM запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2012, 12:18 |
|
Проблема с date в VBA
|
|||
---|---|---|---|
#18+
Есть у меня подозрение, что дело может быть в разных версиях (Access 2010, Vba 7.0), но скорее всего просто пишу с ошибкой. Agapov_stas, не понял Вашу мысль, в обоих случаях выводит #25/09/2012# alvk., Вы все 4 " меняете на ' или только пару? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2012, 12:30 |
|
Проблема с date в VBA
|
|||
---|---|---|---|
#18+
Анатолий ( Киев )Ну, во-первых короче и красивше выглядит строка: Format([бд]![Внутренний заказДата],"\#mm\/dd\/yyyy\#") Во-вторых кавычки внутри текстовой константы должны быть продублированы, а в случае с SQL строкой могут быть заменены на апострофы. Т.е. запрос в виде: sSQL = "SELECT ... WHERE [Поле]=Format(Now(), "" \#mm\/dd\/yyyy\# "" )" или sSQL = "SELECT ... WHERE [Поле]=Format(Now(), ' \#mm\/dd\/yyyy\# ' )" или q = Now sSQL = "SELECT ... WHERE [Поле]=Format(" q ", ' \#mm\/dd\/yyyy\# ' )" работать будет. А вот если вместо Now() указать [бд]![Внутренний заказДата], то будет работать, если таблица "бд" включена в раздел FROM запроса. Что-то ни один из таких вариантов не работает, то тип неизвестный, то ошибка синтаксиса. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2012, 12:43 |
|
Проблема с date в VBA
|
|||
---|---|---|---|
#18+
Автор123Анатолий ( Киев )Ну, во-первых короче и красивше выглядит строка: Format([бд]![Внутренний заказДата],"\#mm\/dd\/yyyy\#") Во-вторых кавычки внутри текстовой константы должны быть продублированы, а в случае с SQL строкой могут быть заменены на апострофы. Т.е. запрос в виде: sSQL = "SELECT ... WHERE [Поле]=Format(Now(), "" \#mm\/dd\/yyyy\# "" )" или sSQL = "SELECT ... WHERE [Поле]=Format(Now(), ' \#mm\/dd\/yyyy\# ' )" или q = Now sSQL = "SELECT ... WHERE [Поле]=Format(" q ", ' \#mm\/dd\/yyyy\# ' )" работать будет. А вот если вместо Now() указать [бд]![Внутренний заказДата], то будет работать, если таблица "бд" включена в раздел FROM запроса. Что-то ни один из таких вариантов не работает, то тип неизвестный, то ошибка синтаксиса. Я не сомневаюсь, но просто: [бд]![Внутренний заказДата] - это конечно же me.[бд].[Внутренний заказДата].value? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2012, 12:58 |
|
Проблема с date в VBA
|
|||
---|---|---|---|
#18+
Автор123alvk., Вы все 4 " меняете на ' или только пару? я просто скопировал как есть ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2012, 13:00 |
|
Проблема с date в VBA
|
|||
---|---|---|---|
#18+
George-III, запрос работает только с данными таблиц, me.[бд].[Внутренний заказДата].value это же если бы была форма? alvk., у меня тоже ничего не выделяет, но не работает. А краснеет, если по совету askerli меняю " на ' Запрос конструктора (работает): UPDATE бд SET бд.Прим2 = DSum("[Количество]","[бдп]","[бдп]![Внутренний заказДата]=#" & Format([бд]![Внутренний заказДата],"mm\/dd\/yyyy") & "#") WHERE (((бд.Количество)=1)); Запрос в VBA (ошибка, не удается найти поле “|1”, указанное в выражении) DoCmd.RunSQL "UPDATE áä SET áä.Ïðèì2 = DSum('[Êîëè÷åñòâî]','[áäï]','[áäï]![Âíóòðåííèé çàêàçÄàòà]=#" & Format([áä]![Âíóòðåííèé çàêàçÄàòà], "mm\/dd\/yyyy") & "#') WHERE (((áä.Êîëè÷åñòâî)=1));" ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2012, 13:15 |
|
Проблема с date в VBA
|
|||
---|---|---|---|
#18+
Автор123, предполагаю, что первым параметром в функции Format должна быть ссылка на поле формы, которая содержит ту самую дату, по которой идет проверка. Есть ли такое поле на форме с указанным вами названием? Если есть, то и обращаться к ней надо как к полю формы. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2012, 13:27 |
|
Проблема с date в VBA
|
|||
---|---|---|---|
#18+
Автор123, 1.перед копированием сюда включайте русский язык на клавиатуре. 2.пользуйтесь тэгами ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2012, 13:29 |
|
Проблема с date в VBA
|
|||
---|---|---|---|
#18+
askerliАвтор123, предполагаю, что первым параметром в функции Format должна быть ссылка на поле формы, которая содержит ту самую дату, по которой идет проверка. Есть ли такое поле на форме с указанным вами названием? Если есть, то и обращаться к ней надо как к полю формы. М ... тут только две таблицы, никаких форм нетути. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2012, 13:30 |
|
Проблема с date в VBA
|
|||
---|---|---|---|
#18+
alvk.Автор123, 1.перед копированием сюда включайте русский язык на клавиатуре. Большое спасибо, думал что такие кракозябры норма. DoCmd.RunSQL "UPDATE бд SET бд.Прим2 = DSum('[Количество]','[бдп]','[бдп]![Внутренний заказДата]=#" & Format([бд]![Внутренний заказДата], "mm\/dd\/yyyy") & "#') WHERE (((бд.Количество)=1));" Но суть от названия полей и таблиц не меняется, они точно правильные. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2012, 13:32 |
|
Проблема с date в VBA
|
|||
---|---|---|---|
#18+
Автор123, Попробуйте метод BuildCriteria. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2012, 13:35 |
|
Проблема с date в VBA
|
|||
---|---|---|---|
#18+
Автор123, если у вас две таблицы, то пользуйтесь объединением inner join и агрегатными функциями (sum) и не надо никаких format() ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2012, 13:37 |
|
Проблема с date в VBA
|
|||
---|---|---|---|
#18+
А ее в DLookUp можно засунуть? И не совсем понятно, сравнивая дату с датой, разве нужно к ней прибегать? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2012, 13:43 |
|
Проблема с date в VBA
|
|||
---|---|---|---|
#18+
alvk., в faq-е есть хороший совет. цитирую Код: html 1. 2. 3. 4. 5.
обязательно сделайте и если не разберетесь, то и мне было бы интересно на результат дебага посмотреть ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2012, 13:44 |
|
Проблема с date в VBA
|
|||
---|---|---|---|
#18+
askerli, вы это зачем написали сейчас? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2012, 14:03 |
|
Проблема с date в VBA
|
|||
---|---|---|---|
#18+
askerlialvk., в faq-е есть хороший совет. цитирую Код: html 1. 2. 3. 4. 5.
обязательно сделайте и если не разберетесь, то и мне было бы интересно на результат дебага посмотреть Если это мне (вроде alvk. ничего не писал про ошибки), я не знаю как использовать отладочное окно. Debug - Run to cursor выдает ту же ошибку: Run-time error '2465' Приложению Micrisift Access не удается найти поле "1|", указанное в выражении ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2012, 14:05 |
|
Проблема с date в VBA
|
|||
---|---|---|---|
#18+
alvk.askerli, вы это зачем написали сейчас? ТС пытается создать скл-строку и есть проблемы. надо дебажить, чтобы увидеть, что именно у него возвращается в коде. а вы о чем подумали? ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2012, 14:08 |
|
Проблема с date в VBA
|
|||
---|---|---|---|
#18+
Автор123DoCmd.RunSQL "UPDATE бд SET бд.Прим2 = DSum('[Количество]','[бдп]','[бдп]![Внутренний заказДата]=#" & Format([бд]![Внутренний заказДата], "mm\/dd\/yyyy") & "#') WHERE (((бд.Количество)=1));" Чтоб наглядно увидеть проблему со строкой, вместо DoCmd.RunSQL сделайте Debug.Print, посмотрите как готовая строка выглядит в окне отладки и покажите нам. По меньшей мере апостроф после второй решетки надо убрать, а сразу после 1-й - добавить. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2012, 14:13 |
|
|
start [/forum/topic.php?fid=45&tid=1610882]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
2ms |
others: | 263ms |
total: | 419ms |
0 / 0 |