Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Нужно сделать вывод записей по заданному интервалу времени
 
 автор: Alechek   (08.12.2008 в 18:16)   личное сообщение
 
 

2003 офис
есть такой запрос:
st = "SELECT [Фамилия] & ' ' & [ИО] AS ФИО, Заявки.АудКаб, Заявки.Корпус, Территории.[Наименование територии], Format([ВремяПЗ],'Long Date') AS Дата, Заявки.ЗаявНеисп " & _
"FROM Статус INNER JOIN ((Территории INNER JOIN Сотрудники ON Территории.КодТерритории = Сотрудники.КодТерритории) INNER JOIN Заявки ON (Территории.КодТерритории = Заявки.КодТерритории) " & _
"AND (Сотрудники.КодСотрудника = Заявки.КодСотрудника)) ON Статус.КодСтатус = Заявки.Статус " & _
"WHERE ((Format(Заявки.ВремяПЗ,'Long Date'))>=[Forms]![Отчеты]![ДатаС] And (Format(Заявки.ВремяПЗ,'Long Date'))<=[Forms]![Отчеты]![ДатаПо]) AND Сотрудники.КодСотрудника<>26 and Статус.КодСтатус=" & status

Он не хочет почему-то брать эту дату корректно, что самое интересное происходит такой глюк: сначала выдает записи, но не верно отобрана дата, при втором запуске данные совсем не отбираються. Between уже тоже пробовала, тот же самый баг.

  Ответить  
 
 автор: Lukas   (08.12.2008 в 18:46)   личное сообщение
 
 


Format Function
Returns a Variant (String)

Может быть по этому.

  Ответить  
 
 автор: alechek   (09.12.2008 в 11:48)   личное сообщение
 
 

Переделала запрос:
st = "SELECT [Фамилия] & ' ' & [ИО] AS ФИО, Заявки.АудКаб, Заявки.Корпус, Территории.[Наименование територии], Format([ВремяПЗ],'Long Date') AS Дата, Заявки.ЗаявНеисп " & _
"FROM Статус INNER JOIN ((Территории INNER JOIN Сотрудники ON Территории.КодТерритории = Сотрудники.КодТерритории) INNER JOIN Заявки ON (Территории.КодТерритории = Заявки.КодТерритории) " & _
"AND (Сотрудники.КодСотрудника = Заявки.КодСотрудника)) ON Статус.КодСтатус = Заявки.Статус " & _
"WHERE (Заявки.ВремяПЗ Between " & CDate(ДатаС) & " And " & CDate(ДатаПо) & ") AND Сотрудники.КодСотрудника<>26 and Статус.КодСтатус=" & status

Как сделать так, чтобы он брал дату не как строку, а именно как дату? Потому что в обычном запросе он все выводит, но сортировка не верная - именно как строчная. А из=за этого в DAO он выдает ошибку

  Ответить  
 
 автор: Мюллер   (08.12.2008 в 18:49)   личное сообщение
 
 

WHERE (Заявки.ВремяПЗ)>=FORMAT([Forms]![Отчеты]![ДатаС],"mm.dd.yyyy") And
Заявки.ВремяПЗ<=FORMAT([Forms]![Отчеты]![ДатаПо],"mm.dd.yyyy")

Это при условии, что в таблицах сидят корректные даты. Вообще можно преобразовать к американскому формату и даты в таблицах - по аналогии с датами в полях формы

  Ответить  
 
 автор: Lukas   (08.12.2008 в 18:52)   личное сообщение
 
 

Мог бы и FORMAT ответить. Ему тут и карты в руки.

  Ответить  
 
 автор: Alechek   (09.12.2008 в 11:49)   личное сообщение
 
 

Проблема в пользователе
Она не сообразит тогда как правильно дату нужно ввести
Поэтому делаю не по американскому стилю

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList