Беда с датами (синтаксическая ошибка в выражении запроса)

Alex_Piter
Дата: 08.09.2005 16:39:22
Доброго времени суток всем. Ситуация в следующем: мне необходимо сформировать итоговый отчет по продажам за конкретный период дат, которые будут задаваться вручную перед печатью отчета. Делаю в форме 2 свободных поля, ввожу в них даты, эти даты дальше при помощи переменных (или без них, пробовал и так, и так) передаю в запрос SQL в коде VBA, который заполняет у меня таблицу, а на основании этой таблицы уже и формируется отчет. И вот при попытке выполнить запрос с датами вываливается синтаксическая ошибка. Стал разбираться - выяснилось, что почему-то не воспринимается дата в российском формате, введенная по маске дд.мм.гггг, а в буржуйском, по маске мм/дд/гггг воспринимается отлично. Вопрос - как-то можно сделать это преобразование из одного формата даты в другой формат в VBA, не изменяя настройки системной локали, чтоб даты можно было вводить без проблем?
У меня А2003, база в формате А2000
Кстати, в A2000 таких проблем не было, когда я разрабатывал там задачу, тоже использующую отбор по датам в запросе. А в A2003 они почему-то вылезли. Или просто надо что-то в нем самом настроить?
Владимир Саныч
Дата: 08.09.2005 16:40:47
Даты в запросе обязаны быть в буржуйском формате.
http://www.sql.ru/faq/faq_topic.aspx?fid=157
CookieMonster
Дата: 08.09.2005 16:42:46
мне очень помогает Format(me.поле_с_датой, "mm\/dd\/yyyy") вместо простой ссылки на поле_с_датой при формировании текста SQL в VBA
Alex_Piter
Дата: 08.09.2005 17:29:15
Владимир Саныч и CookieMonster, спасибо! Ваши советы очень помогли!

Удачи! :-)
RedBlin
Дата: 09.09.2005 20:25:01
Public Function ToAccessDate(ByVal dateToConvert As Variant) As String
'Преобразует дату в формат Access

If Not IsNull(dateToConvert) Then
ToAccessDate = "#" & Month(dateToConvert) & "/" _
& Day(dateToConvert) & "/" & Year(dateToConvert) & "#"
Else
ToAccessDate = "NULL"
End If

End Function
Victosha
Дата: 09.09.2005 20:57:54
RedBlin
Public Function ToAccessDate(ByVal dateToConvert As Variant) As String
'Преобразует дату в формат Access

If Not IsNull(dateToConvert) Then
ToAccessDate = "#" & Month(dateToConvert) & "/" _
& Day(dateToConvert) & "/" & Year(dateToConvert) & "#"
Else
ToAccessDate = "NULL"
End If

End Function


? format(date,"\#mm\/dd\/yyyy\#")
RedBlin
Дата: 10.09.2005 06:40:36
Я не претендую на то, что функция лучше. Кстати и в нее можно вставить предыдущую фразу. Да и переименовать её (функцию) лучше, сделать короче например DatA(), тогда всего 6 раз пальцы коснутся Клавы (Один мой юзер все время просчитывал телодвижения при выполнении любой новой операции на форме, к чему и приучил меня).

Функция взята из книги: И.Харинонова, Н.Вольман "Программирование в Access 2002: учебный курс.-СПб,:Питер, 2002" (стр. 103) еще в те времена, когда у меня совсем не было опыта программирования на VBA. Вчера пытался указать на это, но что-то не получилось.

Кстати, не плохо бы создать на форуме список литературы по Access и VBA, по образцу FAQов. Полезно с двух сторон: 1. много вопросов по литературе, 2. можно будет делать ссылки в квадратных скобочках с указанием страницы.

Москвичи! Сейчас проходит на ВВЦ книжная ярмарка (сегодня, наверное, последний день). Там много хорошего. В былые времена, я видел и Гетца, да вот уже год 3 не попадаю на эту выставку. Жаль.
RedBlin
Дата: 10.09.2005 06:42:09
Я не претендую на то, что функция лучше. Кстати и в нее можно вставить предыдущую фразу. Да и переименовать её (функцию) лучше, сделать короче например DatA(), тогда всего 6 раз пальцы коснутся Клавы (Один мой юзер все время просчитывал телодвижения при выполнении любой новой операции на форме, к чему и приучил меня).

Функция взята из книги: И.Харинонова, Н.Вольман "Программирование в Access 2002: учебный курс.-СПб,:Питер, 2002" (стр. 103) еще в те времена, когда у меня совсем не было опыта программирования на VBA. Вчера пытался указать на это, но что-то не получилось.

Кстати, не плохо бы создать на форуме список литературы по Access и VBA, по образцу FAQов. Полезно с двух сторон: 1. много вопросов по литературе, 2. можно будет делать ссылки в квадратных скобочках с указанием страницы.

Москвичи! Сейчас проходит на ВВЦ книжная ярмарка (сегодня, наверное, последний день). Там много хорошего. В былые времена, я видел и Гетца, да вот уже год 3 не попадаю на эту выставку. Жаль.
msdatabaseru
Дата: 10.09.2005 10:47:49
RedBlin

Москвичи! Сейчас проходит на ВВЦ книжная ярмарка (сегодня, наверное, последний день). Там много хорошего. В былые времена, я видел и Гетца, да вот уже год 3 не попадаю на эту выставку. Жаль.


в былые времена книга была в свободной продаже в каждой лавке технической литературы но тираж распродан и пока не переиздан....