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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Сортировка дат в Access 2007
 
 автор: natayan   (22.05.2008 в 12:16)   личное сообщение
 
 

Доброго времени суток!
Помогите, пожалуйста, сортировать даты.

Задумка следующая:
Есть таблица, с полем ДатаРождения, на основе которой сделан отчет ДатаРождения_Отчет.
Есть форма с переключателями Январь, Февраль, Март и т.д. и кнопка ПросмотрОтчета.
Выбирается переключатель, например Январь, нажимается кнопка ПросмотрОтчета и открывается отчет ДатаРождения_Отчет, но с отфильтрованными данными – даты только за январь.
Помогите написать код, пожалуйста.

Я знаю, как это можно сделать при помощи запросов. Но тогда придется сделать 12 запросов (по числу месяцев) и 12 отчетов. Уверена - можно сделать все намного проще и использовать только один отчет.
Спасибо

  Ответить  
 
 автор: osmor   (22.05.2008 в 12:40)   личное сообщение
 
 

вариант 1
Открывать отчет передавая строку фильтра см. Help по Docmd.OpenReport
Вариант 2
Создать запрос который будет содержать парамерт из поля формы
Select * from таблица where [месяц] = form.ИмяФормы.Переключатель
И на этом запросе построить отчет.

  Ответить  
 
 автор: natayan   (22.05.2008 в 14:03)   личное сообщение
 
 

Спасибо за отклик.
Попробовала вариант 1
Пишу: DoCmd.OpenReport "ДатаРождения_Отчет", acViewPreview, , DatePart ("m", ДатаРождения) = 1
Не получается. В чем ошибка?
Я в этом новичок зеленый-зеленый

  Ответить  
 
 автор: osmor   (22.05.2008 в 14:15)   личное сообщение
 
 

а так

DoCmd.OpenReport "ДатаРождения_Отчет", acViewPreview, , "DatePart ('m', ДатаРождения) = 1"
или

DoCmd.OpenReport "ДатаРождения_Отчет", acViewPreview, , "Month( ДатаРождения) = 1"

  Ответить  
 
 автор: Кабан   (22.05.2008 в 14:26)   личное сообщение
 
 

я даты в базе храню в формате yyyymmdd
если надо преобразовать для вывода, то

?cdate(Format(20080521,"####\.##\.##"))
  21.05.2008

  Ответить  
 
 автор: natayan   (22.05.2008 в 15:39)   личное сообщение
 
 

Как все просто!
Спасибо огромное, все работает!!!

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