Function OpenFileTextMy()




End Function

Для того чтобы открыть файл для чтения необходимо воспользоваться стандартной процедурой ввода.

 

Процедуры ввода

Перейдем теперь к рассмотрению процедур ввода Input (если данные были записаны процедурой write) и Line input (если данные были записаны процедурой Print).

Синтаксис процедуры Input:

Input #номерФайла, списокПеременных

Списокпеременных — это одна или несколько переменных, разделенных запятыми, в которые будут считываться данные из файла, причем переменные должны иметь тип, к которому могут быть приведены данные. На переменные накладывается еще одно ограничение, они не могут быть массивами, записями или объектами, но могут быть элементами массивов или полями записей.

При чтении информации, которая была записана в файл процедурой Write, происходит автоматический реверс к исходной информации. То есть отбрасываются кавычки для строк, игнорируются запятые и пробелы, слово #Null# переводится в значение Null и т. д.

Процедура Line Input используется для построчного ввода информации. Ее синтаксис следующий:

Line Input #номерФайла, переменная

Здесь переменная должна быть либо строковой, либо иметь тип Variant. В эту переменную без всяких преобразований будут считываться строки файла.

 

Выполним открытие файла FileText.txt в режиме Input и считаем данные построчно в переменные, используя цикл с постусловием, в котором условие — это достижение конца файла, проверяемое функцией EOF (End of File).

Dim K1 As String

Dim K2 As String

Dim K3 As String

Dim K4 As String

Dim K5 As String

Open "D:\FileText.txt" For Input As #1 ' Открывает файл для чтения.

Do While Not EOF(1) ' Цикл до конца файла.

Input #1, K1, K2, K3, K4, K5 ' Читает данные в пять переменных.

Loop

Close #1 ' Закрывает файл.

 

Создадим критерий отбора записей и применим фильтр к форме Расход, для этого запишите следующий код:

Dim strWhereCategory As String

strWhereCategory = "Код_расхода =" & K1 & " and " & "Код_клиента=" & K2 & " and " & "Идентифик№клиента=" & K4

DoCmd.ApplyFilter, strWhereCategory

 

Сохранитесь. Закройте модуль и присвойте ему имя Работа с файлами.

Однако, чтобы запустить данные процедуры не удастся из модуля. Данные процедуры необходимо прикрепить либо к макросу, либо к обработчикам событий.

 

Задача 2. Создание макросов.

Макросы позволяют автоматизировать некоторые операции Access. Макросы заменяют программируемые процедуры, с их помощью осуществляется управление реакцией приложения на различные события (например, на нажатие пользователем командной кнопки).

Основной набор средств Microsoft Access ориентирован на пользователей, не владеющих языками программирования. Для программистов же к этим средствам добавлены макросы (небольшие программы на языке макрокоманд системы Access) и модули (процедуры на языке Visual Basic for Application, VBA). С их помощью можно существенно расширить функциональные возможности создаваемого вами приложения и настроить его на нужды конкретных пользователей.

Познакомимся с одним из этих средств — макросами и одним из языков программирования Access — языком макрокоманд.

Макрос в Access представляет собой структуру, состоящую из одной или нескольких макрокоманд, которые выполняются либо последовательно, либо в порядке, заданном определенными условиями. Набор макрокоманд в Access очень широк, с помощью макросов можно реализовать многое из того, что позволяют сделать процедуры на VBA. Каждая макрокоманда имеет определенное имя и, возможно, один или несколько аргументов, которые задаются пользователем. Например, при использовании макрокоманды ОткрытьФорму (OpenForm) в качестве аргументов необходимо задать, по крайней мере, имя открываемой формы и режим вывода ее на экран.

В табл. 1 содержится список макрокоманд Microsoft Access 2003, сгруппированных по категориям: работа с данными в формах и отчетах; выполнение команд, макросов, процедур и запросов; работа с объектами; импорт/экспорт данных и объектов и прочие. В категорию "Прочие" собраны все макрокоманды, которые позволяют влиять на интерфейс приложения.

Таблица 10.1.

Макрокоманды Microsoft Access 2003

 

Категория Назначение Макрокоманда
Работа с данными в формах и отчетах Отбор данных ПрименитьФильтр (ApplyFilter)
Перемещение по данным СледующаяЗапись (FindNext) НайтиЗапись (FindRecord) КЭлементуУправления (GoToControl) НаСтраницу (GoToPage) НаЗапись (GoToRecord)
Обновление данных или экрана Обновление (Requery) ПоказатьВсеЗаписи (ShowAllRecords)
Выполнение Выполнение команды ВыполнитьКоманду (RunComraand)
Выполнение макроса, процедуры или запроса ЗапускМакроса (RunMacro) ЗалускПрограммы (RunCode) ОткрытьЗапрос (OpenQuery) 3anycк3anpocaSQL (RunSQL)
Выполнение другого приложения ЗапускПриложения (RunApp)
Прерывание выполнения ОтменитьСобытие (CancelEvent) ОстановитьВсеМакросы (StopAllMacros) ОстановитьМакрос (StopMacro)
Выход из Microsoft Access Выход (Quit)
Импорт/экспорт Передача объектов Microsoft Access в другие приложения ВывестиВФормате (OutputTo) ОтправитьОбъект (SendObject)
Преобразование формата данных ПреобразоватьБазуДанных (TransferDatabase) ПереносБазыДанныхSQL (TransferSQLDatabase) ПреобразоватьЭлектроннуюТаблицу (Transfer Spreadsheet) ПреобразоватьТекст (TransferText)
Работа с объектами Копирование, переименование и сохранение объекта КопироватьОбъект (CopyObject) КопироватьФайлБазыДанных (CopyDatabase File) Переименовать (Rename) Сохранить (Save)
Прочие Вывод на экран или скрытие встроенной или специальной панели инструментов Подача звукового сигнала ПанельИнструментов (ShowToolbar) Сигнал (Веер)

 

С помощью макросов можно создать удобные меню и панели инструментов для приложения, и чуть позже мы опишем, как это сделать.

Однако использование макросов имеет и некоторые недостатки, о которых здесь уместно сказать.

§ Возможности макрокоманд ограничены по сравнению с возможностями языка VBA, поэтому в ряде случаев без программирования на VBA не обойтись, хотя сначала нужно быть уверенным, что эти дополнительные возможности действительно нужны. Язык VBA предоставляет более широкие возможности для работы с данными, позволяет использовать механизм программирования объектов для связи с другими приложениями, вызывать функции из библиотек динамической загрузки (DLL) Windows и создавать собственные специализированные функции.

§ Макросы можно использовать практически везде, где применяются процедуры VBA, однако процедуры VBA, как правило, выполняются быстрее.

§ Макросы являются объектами, существующими отдельно от форм и отчетов, в которых они используются, поэтому, когда этих объектов становится очень много, их поддержка достаточно трудоемка. Процедуры обработки событий VBA являются неотъемлемой частью форм и отчетов, и в этом есть свои преимущества. Например, при переносе форм и отчетов из одной базы данных в другую с ними автоматически переносятся связанные процедуры.

Тем не менее, как уже отмечалось, во многих случаях использование макросов вполне оправдано, т. к. это существенно упрощает и ускоряет разработку приложения. С помощью макросов можно создавать небольшие однопользовательские приложения, хотя при создании многопользовательских или клиент-серверных приложений, где скорость работы приложения критична, лучше применять VBA.

Создание макросов

В Microsoft Access существует специальное средство для создания макросов — Конструктор макросов (Macro Design). Рассмотрим процесс создания макроса с помощью Конструктора.

Конструктор макросов

Открыть окно Конструктор макросов (Macro Design) для создания нового макроса можно открыть список макросов в окне База данных (Database), щелкнув левой кнопкой мыши по ярлыку Макросы (Macros), и нажмите кнопку Создать (New) в верхней части окна.

Выполните создание нового макроса.

 

Окно Конструктора макросов построено аналогично окну Конструктора таблиц, т. е. разделено по горизонтали на две части: панель описаний и панель аргументов.

Верхняя часть окна Конструктора — панель описаний — состоит из нескольких столбцов. По умолчанию на этой панели выводится два столбца: "Макрокоманда" (Action) и " Примечание" (Comments). Панель описаний позволяет определить последовательность макрокоманд, из которых состоит макрос.

Строка в столбце " Макрокоманда " (Action) представляет собой поле со списком, в котором можно выбрать нужную макрокоманду.

Строка в столбце " Примечание " (Comments) — это обычное текстовое поле, в которое можно ввести комментарий, описывающий выполняемое действие.

Когда поле " Макрокоманда " (Action) заполнено, в нижней части окна Конструктора макросов появляется панель аргументов, предназначенная для ввода значений аргументов соответствующей макрокоманды. Список полей на этой панели зависит от выбранной макрокоманды и может отсутствовать, если макрокоманда не имеет аргументов. Таким образом, при создании макросов не нужно запоминать список аргументов для каждой макрокоманды.

Создадим макрос, который будет запускать на выполнение созданную ранее нами процедуру SaveFileTextMy().

Для этого выберите из списка Макрокоманда – Запуск программы.

В нижнем окне в списке полей перейдите в поле Имя функции. Выберите в этом поле три точки в правом углу .

В этом случае вам откроется построитель выражений. Выберите функции нашей базы данных, модуль Работа с файлами/ функцию SaveFileTextMy(). Нажмите кнопку Вставить.

Сохраните макрос под именем Сохранить данные в файл.

Аналогично самостоятельно создайте второй макрос на вторую процедуру и сохраните его под именем Открыть данные из файла.

На рис. проиллюстрирован выбор макрокоманды Запуск программы.

Замечание. В Microsoft Word и Excel имеются средства автоматической записи макросов. Эти средства очень удобны для изучения VBA, поскольку позволяют автоматически создать процедуру, включив запись макроса, выполнив необходимые действия и остановив запись. Тогда все действия пользователя, выполняемые после включения записи и до ее остановки, преобразуются в текст процедуры VBA. Затем этот текст можно просмотреть и отредактировать с помощью редактора VBA. В Microsoft Access средств автоматической записи макросов нет так же, как нет и средств автоматической генерации кода VBA (за исключением того, что создают мастера).

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-08-20 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: