Страница: 1 |
Страница: 1 |
Вопрос: Формат даты для выборки из access
Добавлено: 30.05.05 17:45
Автор вопроса: Илья
Народ, что не правильно?
Заполняю базу через recordset:
rs.Fields("ДатаВызова").Value = Format(ДатаВызова.Text, "dd.mm.yyyy")
Потом пытаюсь отфилтровать записи по дате:
Set rsprint = New ADODB.Recordset
With rsprint
.ActiveConnection = cnn
.LockType = adLockReadOnly
.CursorType = adOpenDynamic
.Source = "SELECT * FROM tabl WHERE " & ConStr
.Open
End With
Появляется ошибка о несоответствии формата данных и запроса....
Данные берутся из MaskEdBox Format: Date (dd.mm.yyyy), Формат в Access Короткий формат даты, Маска Ввода:00.00.0000;0;_
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа:
Mihalыch
ICQ: 373-509-101
Вопросов: 56
Ответов: 330
Профиль | | #1
Добавлено: 30.05.05 18:14
Вообще дату в запросе нужно заключать в решетки #, в этом случае ошибки несоответствия типов не будет. Но лично у меня не получалось выбрать записи соответствующие указанному условию, пробовал и DateValue() и CDate(). Поэтому я делаю так,
"SELECT * FROM tabl WHERE Date > #" & ChengeDateFormat (Date_1) & “# OR Date < #“ & ChengeDateFormat (Date_2) & “#”
Private Function ChengeDateFormat(DateValue As Date)
 im aUnit() As String
aUnit = Split(DateValue, "."
'разбиваем дату на составляющие
ChengeDateFormat = aUnit(1) & "/" & aUnit(0) & "/" & aUnit(2)
'меняем местами число и месяц, заменяем . на /
'т.е. приводим дату к ихнему формату
End Function
Номер ответа: 2
Автор ответа:
Илья
Вопросов: 5
Ответов: 6
Профиль | | #2
Добавлено: 31.05.05 13:59
Пробовал не сработало, может поле в access не правильно настроил? формат поля: короткий формат даты, маска 00.00.0000;0;_ хотя в конструкторе прописывается 00/00/0000;0;_ потом автоматом при сохранении перекидывает в 00.00.0000;0;_.
поменять . на / можно было просто организовав составив строку запроса следующим образом:
Format (Data, "dd\/mm\/yyyy"
Просматриваю строку запроса не проходит не 22/10/2005 не 22.10.2005 .
У кого еще какие по
Номер ответа: 3
Автор ответа:
Илья
Вопросов: 5
Ответов: 6
Профиль | | #3
Добавлено: 31.05.05 15:43
Все у меня работает строка
Или
Rs.Source = "SELECT * FROM tabl WHERE " & ConStr
Private Function ChengeDateFormat(DateValue As Date)
 im aUnit() As String
aUnit = Split(DateValue, "."
'разбиваем дату на составляющие
ChengeDateFormat = aUnit(1) & "/" & aUnit(0) & "/" & aUnit(2)
'меняем местами число и месяц, заменяем . на /
'т.е. приводим дату к ихнему формату
End Function
Спасибо за консультацию товарищу Mihalыch - очень помогло