ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
DoCmd.OpenForm "Сводная форма", acFormPivotTableоткроет форму "Сводная форма" в режиме сводной таблицы.
Самое сложное в нашем программном коде – это создание условия отбора данных. С этой целью была объявлена переменная strWhereCategory строкового типа. Условие отбора в форме «Приход» только тех записей, которые соответствуют названию поставщику, выбранному в списке текущей формы «Отчеты о продажах», выглядит так: strWhereCategory = "Код_поставщика = Forms![Отчеты о продажах]!Spisok"
где Код_поставщика – поле в форме, которую будете открывать и по которому производите выборку данных (в нашем случае это поле из формы Приход) Forms![Отчеты о продажах]!Spisok – обращение к выбранному значению списка на форме «Отчеты о продажах». При этом условие strWhereCategory – является условием языка SQL, где используются специальные конструкции языка. В частности для обращения к семейству всех форм используется объект Forms. Затем указывается имя формы, затем имя элемента управления. Разделителем между именами служит знак восклицания. Если в именах присутствуют пробелы, то они заключаются в квадратные скобки.
Таким образом, например, в результате выбора пользователем из списка названия – МЧП Белинда будет передано значение "Код_поставщика = 2" где «МЧП Белинда» имеет код =2. Поэтому после нажатия кнопки «Просмотр формы» вам будет открыта форма с двумя записями с поставщиком МЧП Белинда.
Метод Close применяется для закрытия определенного вида объекта. Синтаксис метода: expression.Close(ObjectType, ObjectName, Save) Аргументы метода:
Поэтому в нашем случае мы записали: DoCmd.Close acForm, "Отчеты о продажах" Что соответствует закрытию формы "Отчеты о продажах".
Для того, чтобы учесть период дат, необходимо добавить условный блок на проверку значения в флаге. Если флаг не установлен, то не выполнять сортировку записей по датам. А если флаг выбран, то выполнять сортировку по датам. Такими условными конструкциями будут If flag.Value = False Then End If и If flag.Value = true Then End If
Для отбора записей с учетом периода дат необходимо объявить новую строковую переменную для создания условия, а именно переменную strWhereCategory2. Чтобы выполнить выборку данных в периоде дат воспользуемся уже знакомой конструкцией Between..And. Аналогично с запросами, условная строка будет иметь вид: strWhereCategory2 = "Дата_накладной Between Forms![Отчеты о продажах]!txtNach And Forms![Отчеты о продажах]!txtConch" где txtNach – значение текстового поля с начальной датой, а txtConch – значение текстового поля с конечной датой. А для отбора записей с учетом периода дат и названия поставщиков необходимо объявить строковую переменную strWhereCategory3. Для объединения двух условий воспользуемся логической функцией And. Условная строка будет иметь вид: strWhereCategory3 = "Код_поставщика = Forms![Отчеты о продажах]!Spisok And Дата_накладной Between Forms![Отчеты о продажах]!txtNach And Forms![Отчеты о продажах]!txtConch" где txtNach – значение текстового поля с начальной датой, а txtConch – значение текстового поля с конечной датой. Окончательно программный код будет иметь вид, приведенный в листинге 4. Листинг 4. Обработчик события нажатия кнопки «Просмотр форм» Private Sub comOpenForm_Click() Не нашли, что искали? Воспользуйтесь поиском:
|