Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПособиеЧасть1_2007_4_шага_c_настройкой.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
3.25 Mб
Скачать

Создаем ленточную форму.

По созданному запросу создаем ленточную автоформу.

получаем вот такую форму

Доводка формы.

Теперь ее надо довести до нужного вида, а затем заставить работать.

  • Расширим заголовок формы и передвинем подписи вниз заголовка.

  • В верхнюю часть заголовка всавим поле со списком, и два поля для дат

  • Поставим две кнопки, отключив мастера, чтобы не мешал.

  • В примечание поставим поле для вычисления итогов

  • Напишем процедуры, котрые будут изменять источник записей для формы в соотвествии с выбранными (заданными) полями.

        1. Поле со списком для выбора клиента.

Тащим мышкой поле со списком с панели элементов без помощи мастера

Изменяем имя этого поля на удобоваримое (ВыборКлиента)

Устанавливаем источник строк для поля со списком

После выбора таблицы строим запрос на основе этой таблицы (нажимаем кнопочку ... )

Этот запрос можно не сохранять

Изменяем несколько свойств поля.

  • Число столбцов поставить 2

  • Связанный столбец – 1 (он и так 1)

  • Чтобы столбец с кодом клиента не отображался задать его ширину =0

Поле со списком готово.

        1. Поля для ввода дат.

Ставим поле для даты

Изменяем ему имя на ДАТ1

Выбираем формат – Краткий формат даты

Ставим значение по умолчанию текущую дату

Копируем поле ДАТ1 и изменем в новом поле имя на ДАТ2

Можно поставить значение по умолчанию для даты 1 – текущую дату DATE() – 30 (тогда будет период – последние 30 дней)

        1. Кнопка для показа отобранных записей

Ставим кнопку без мастера.

Изменяем имя и подпись на “ПОКАЗАТЬ”

Получилась вот такая форма

Изменение источника данных для формы.

Изменяем базовый запрос с учетом фильтра.

Открываем базовый запрос в конструкторе и сохраняем его под именем ПродажиКлиентов_F.

В условиях отбора для клиента, и дат строим выражения

Добавляем поля КодКлиента и два раза Дата

В строке ГРУППИРОВКА изменяем в этих полях слово ГРУППИРОВКА на УСЛОВИЕ и строим условия .

Для учета дополнительных условий (пустые поля фильтров) придется строить фильтр программно, проверяя наличие данных в полях формы и формировать условия отбора. Это процесс описан в приложении

Предположим, что в полях фильтра всегда будет выбран клиент и задан период и проверять это мы не будем. Тогда можно обойтись двумя кнопками. Одна кнопка будет выбирать данные из таблиц с учетом фильтра, а другая – просто показывать все записи для всех клиентов за все время существования базы.

Поставим в форме 2 кнопки, напишем на них “ФИЛЬТР” и “ВСЕ”. (Кнопки ставим без мастера.).

Изменим имя и подпись кнопки.

Изменяем кнопку ФИЛЬТР. Изменим ИМЯ кнопки на FiltrKlient.

Изменим источник записей для формы.

В свойствах кнопки ФИЛЬТР . На вкладке “СОБЫТИЯ” выбираем процедуру обработки событий “НАЖАТИЕ КНОПКИ”.

Нажмем на кнопочку с тремя точками и попадем в страшный редактор VBA. Там где окажется курсор напишем две строчки.

Private Sub FiltrKlient_Click()

‘Первая строчка задает в качестве источника записей для формы запрос с фильтрами по клиенту и за период.

Me.RecordSource = "ПродажиКлиентов_Ff"

‘Вторая строчка – обновляет данные в форме.

Me.Requery

End Sub

Аналогичную операцию проделаем с кнопкой для показа всех записей. Кнопку назовем ShowAll

В качестве источника записей в процедуре нажатия кнопки напишем запрос без фильтра (базовый запрос)

Me.RecordSource = "ПродажиКлиентов"

Me.Requery

Сохраним форму и посмотрим, что получилось, выбрав вид “форма”.