powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Проблема с date в VBA
25 сообщений из 76, страница 1 из 4
Проблема с date в VBA
    #37971049
Автор123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Исходя из FAQ по формированию строки sql использую следующее: #" & Format([бд]![Внутренний заказДата],"mm\/dd\/yyyy") & "#
В запросе, созданным в конструкторе, работает нормально, но копируя код в VBA появляется ошибка 2465 “не удается найти поле”, пробовал с разными полями в разных базах, т.е. ошибка в синтаксисе, но перепробовав различные варианты, не смог ее найти. Поиск не помог.
Dim q As Date
q = Now
с подстановкой q вместо [бд]![Внутренний заказДата] не помогает также.
Как правильно писать в vba #" & Format([бд]![Внутренний заказДата],"mm\/dd\/yyyy") & "#. Спасибо.
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #37971060
askerli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автор123,

пробовали использовать одинарные кавычки вместо двойных?
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #37971075
Автор123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если менять какие-то одни, vba ругается и краснеет, если все 4 - ошибка синтаксиса.
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #37971093
askerli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автор123,

покажите ту часть кода, где образуется скл строка полностью и где вба становится стыдно настолько, что она краснеет ))))
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #37971107
Agapov_stas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автор123,
Я так подозреваю, что Вы делаете несколько иное...
Два примера для размышлений:

Код: vbnet
1.
2.
3.
4.
'Пример 1
Dim q As Date
q = Now
MsgBox Format(q, "\#dd\/mm\/yyyy\#")



Код: vbnet
1.
2.
3.
4.
5.
6.
'Пример 2
Dim q As Date
Dim strSQL As String
q = Now
strSQL = " SELECT * FROM tbl WHERE DateBegin >= #" & Format(q, "dd\/mm\/yy") & "# "
MsgBox strSQL
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #37971112
Автор123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пример, в конструкторе работает, vba нет.
DoCmd.RunSQL "UPDATE бд SET бд.Прим2 = DSum('[Количество]','[бдп]','[бдп]![Внутренний заказДата]=#" & Format([бд]![Внутренний заказДата], "mm\/dd\/yyyy") & "#') WHERE (((бд.Количество)=1));"
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #37971129
alvk.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автор123,

у меня это выражение красным не выделяет.
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #37971145
Ну, во-первых короче и красивше выглядит строка:
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 запроса.
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #37971169
Автор123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть у меня подозрение, что дело может быть в разных версиях (Access 2010, Vba 7.0), но скорее всего просто пишу с ошибкой.
Agapov_stas, не понял Вашу мысль, в обоих случаях выводит #25/09/2012#
alvk., Вы все 4 " меняете на ' или только пару?
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #37971197
Автор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 запроса.
Что-то ни один из таких вариантов не работает, то тип неизвестный, то ошибка синтаксиса.
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #37971223
Фотография George-III
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автор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?
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #37971226
alvk.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автор123alvk., Вы все 4 " меняете на ' или только пару?
я просто скопировал как есть
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #37971251
Автор123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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));"
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #37971280
askerli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автор123,

предполагаю, что первым параметром в функции Format должна быть ссылка на поле формы, которая содержит ту самую дату, по которой идет проверка. Есть ли такое поле на форме с указанным вами названием? Если есть, то и обращаться к ней надо как к полю формы.
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #37971286
alvk.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автор123,

1.перед копированием сюда включайте русский язык на клавиатуре.
2.пользуйтесь тэгами
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #37971290
Автор123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
askerliАвтор123,

предполагаю, что первым параметром в функции Format должна быть ссылка на поле формы, которая содержит ту самую дату, по которой идет проверка. Есть ли такое поле на форме с указанным вами названием? Если есть, то и обращаться к ней надо как к полю формы.
М ... тут только две таблицы, никаких форм нетути.
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #37971302
Автор123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alvk.Автор123,

1.перед копированием сюда включайте русский язык на клавиатуре.

Большое спасибо, думал что такие кракозябры норма.
DoCmd.RunSQL "UPDATE бд SET бд.Прим2 = DSum('[Количество]','[бдп]','[бдп]![Внутренний заказДата]=#" & Format([бд]![Внутренний заказДата], "mm\/dd\/yyyy") & "#') WHERE (((бд.Количество)=1));"
Но суть от названия полей и таблиц не меняется, они точно правильные.
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #37971311
PMVolga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Автор123,

Попробуйте метод BuildCriteria.
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #37971317
alvk.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автор123,

если у вас две таблицы, то пользуйтесь объединением inner join и агрегатными функциями (sum) и не надо никаких format()
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #37971328
Автор123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А ее в DLookUp можно засунуть? И не совсем понятно, сравнивая дату с датой, разве нужно к ней прибегать?
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #37971329
askerli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alvk.,

в faq-е есть хороший совет. цитирую
Код: html
1.
2.
3.
4.
5.
Составив такой стринг, содержащий команду SQL, и отправив его на выполнение, 
вы можете получить ошибку. В таком случае распечатайте этот стринг в отладочное окно и посмотрите на
 него глазами. Возможно, ошибка сразу бросится в глаза. Если не бросится, создайте новый запрос в 
конструкторе запросов, переключите в режим SQL, вставьте туда текст запроса и запустите на 
выполнение. Если ошибка есть, то она будет показана более явным образом.


обязательно сделайте и если не разберетесь, то и мне было бы интересно на результат дебага посмотреть
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #37971367
alvk.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
askerli,

вы это зачем написали сейчас?
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #37971372
Автор123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
askerlialvk.,

в faq-е есть хороший совет. цитирую
Код: html
1.
2.
3.
4.
5.
Составив такой стринг, содержащий команду SQL, и отправив его на выполнение, 
вы можете получить ошибку. В таком случае распечатайте этот стринг в отладочное окно и посмотрите на
 него глазами. Возможно, ошибка сразу бросится в глаза. Если не бросится, создайте новый запрос в 
конструкторе запросов, переключите в режим SQL, вставьте туда текст запроса и запустите на 
выполнение. Если ошибка есть, то она будет показана более явным образом.


обязательно сделайте и если не разберетесь, то и мне было бы интересно на результат дебага посмотреть
Если это мне (вроде alvk. ничего не писал про ошибки), я не знаю как использовать отладочное окно. Debug - Run to cursor выдает ту же ошибку:
Run-time error '2465'
Приложению Micrisift Access не удается найти поле "1|", указанное в выражении
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #37971379
askerli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alvk.askerli,

вы это зачем написали сейчас?
ТС пытается создать скл-строку и есть проблемы. надо дебажить, чтобы увидеть, что именно у него возвращается в коде. а вы о чем подумали? )))
...
Рейтинг: 0 / 0
Проблема с date в VBA
    #37971389
Автор123DoCmd.RunSQL "UPDATE бд SET бд.Прим2 = DSum('[Количество]','[бдп]','[бдп]![Внутренний заказДата]=#" & Format([бд]![Внутренний заказДата], "mm\/dd\/yyyy") & "#') WHERE (((бд.Количество)=1));"

Чтоб наглядно увидеть проблему со строкой, вместо DoCmd.RunSQL сделайте Debug.Print, посмотрите как готовая строка выглядит в окне отладки и покажите нам. По меньшей мере апостроф после второй решетки надо убрать, а сразу после 1-й - добавить.
...
Рейтинг: 0 / 0
25 сообщений из 76, страница 1 из 4
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Проблема с date в VBA
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]