Файл: Освой самостоятельно программирование для MS Access 2002 за 24 часа [П.Киммел].pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 21.10.2020

Просмотров: 7881

Скачиваний: 25

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

 I

 j Состав |

 |

 .

Автор:

-

Рис. 9.9. С помощью макроса легко ото-
бразить

 содержащее ин-

формацию о текущей базе данных Access

Импорт данных

Импорт

 из внешних источников — это весьма распространенная опе-

рация. Рано или поздно вам наверняка потребуется скопировать в таблицу Access со-

держимое электронной таблицы, воспользоваться текстовой информацией из разных

источников либо перенести данные из одной базы Access в другую.

Преобразование базы данных

Чтобы осуществить преобразование базы данных с помощью макроса, вначале не-

обходимо создать соответствующий новый макрос. Для параметра Макрокоманда над-
лежит выбрать значение

 (TransferDatabase). В этом случае

группа интерфейсных элементов Аргументы макрокоманды окна Макрос будет содер-
жать следующие поля ввода: Тип преобразования (Transfer Type), Тип базы данных

(Database Type), Имя базы данных (Database Name), Тип объекта (Object Type),
Источник (Source), Получатель (Destination) и Только структура (Structure Only).

Параметр Тип преобразования допускает выбор одного из трех значений — Импорт

(Import), Экспорт (Export) и Связь (Link). Элемент Импорт соответствует ситуации,
когда требуется сохранить информацию из внешнего источника в текущей базе дан-

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

 на внешний источник данных. Связывание дан-

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

170

Часть III. Использование ресурсов Access


background image

Аргумент Тип базы данных

В качестве значения параметра Тип базы данных может быть выбрано символиче-

ское наименование любой базы данных, для которой имеется соответствующий драй-
вер, корректно установленный в компьютерной системе. Названия всех таких драйве-

ров перечислены в раскрывающемся списке. Выбор последнего элемента списка, База

данных ODBC

 Database), требует задания соответствующего имени источника

данных ODBC в поле аргумента Имя базы данных.

 ODBC

 (сокращение от

 Open DataBase Connectivity) —

 протокол, обеспечи-

 вающий взаимодействие между компьютерными приложениями и раз-

личными системами управления базами данных. ODBC поддерживается

большинством производителей программного обеспечения.

Аргумент Имя базы данных

В качестве значения аргумента Имя базы данных необходимо задать имя физиче-

ского файла данных либо название источника данных ODBC, взаимодействие с кото-

рым предполагается осуществлять.

Аргумент Тип объекта

Параметр Тип объекта описывает разновидность объекта данных. Множество до-

пустимых значений — это Таблица (Table), Запрос (Query), Форма (Form), Отчет

(Report), Макрос (Macro), Модуль (Module). Выбранный тип объекта должен соответ-

ствовать как существу источника, так и природе получателя данных.

Аргументы Источник и Получатель

Параметр Источник задает наименование объекта-источника данных, а Получа-

тель — название, которое будет присвоено объекту-копии или связывающей ссылке.

Аргумент Только структура

Аргумент Только структура допускает выбор одного из двух значений — Да (Yes)

или Нет (No). Если выбрано значение Нет, операции экспорта/импорта будет подвер-

жена как структура объекта данных источника, так и его содержимое. В противном

случае будет скопирована только структура.

Режим Только структура применим лишь в случае, если

 качестве

источника данных выбран объект Таблица.

С помощью макроса на основе команды

 легко решить

задачу создания резервной копии таблицы, рассмотренную ранее.

Преобразование текста

Макрос типа ПреобразоватьТекст позволяет обрабатывать (импортировать, экспор-

тировать или связывать) текстовые данные упорядоченной структуры. (Если данные

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

родные данные по нескольким источникам с помощью дополнительной программы.)

Чтобы воспользоваться макросом

 основе команды ПреобразоватьТекст

(TransferText), следует выполнить две важные операции. Во-первых, создайте новый

макрос, выбрав макрокоманду ПреобразоватьТекст и задав нужные аргументы. Во-
вторых, определите спецификацию преобразования (но это не так просто).

Множество аргументов макрокоманды ПреобразоватьТекст состоит из следующих

элементов: Тип преобразования, Название спецификации (Specification Name), Имя

таблицы (Table Name), Имя файла (File Name), С именами полей (Has Field Names),

Имя таблицы HTML (HTML Table Name) и Кодовая страница (Code Page).

 час. Работа с макросами 171


background image

Аргумент Тип преобразования

Множество значений параметра Тип преобразования охватывает различные вариан-

ты экспорта, импорта и связывания данных. Чтобы, например, осуществить импорт
текстовых данных с разделителями полей, достаточно выбрать значение Импорт
(разделители) (Import Delimiter), при этом режиму экспорта в формат HTML
соответствовать Экспорт (HTML).

Определение спецификации преобразования

В качестве значения параметра Название спецификации выступает содержимое оп-

ределенного поля одной из скрытых системных таблиц Access.

Освоение процедуры определения спецификации мы начнем с создания текстового

файла

 Txt,

 содержащего строки данных с разделителями. Формат каждой

строки имеет следующий вид:
Имя, Адрес, Город, Область,

Для определения спецификации этих данных вполне достаточно.

Создание спецификации преобразования — составная часть процесса импорта,

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

 PhoneBook. Txt.

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

выполните следующие действия.

 Создайте новую базу данных.

2. В окне базы данных выберите элемент Таблицы (Tables) из списка Объекты.
3. Щелкните на кнопке Создать панели инструментов.
4. В списке режимов диалогового окна Новая таблица (New Table) выберите элемент

Импорт таблиц (Import).

5. В раскрывающемся списке Тип файлов (Files of Types) диалогового окна

(Import) укажите элемент Текстовые файлы (Text Files).

6. Проследуйте к папке, содержащей файл

 PhoneBook. Txt,

 выберите его и щелкните на

кнопке Импорт.

7. В окне мастера Импорт текста будет автоматически выбрана опция С разделителями.

Чтобы увидеть, как создается спецификация, щелкните на кнопке Дополнительно

(Advanced).

8. Откроется диалоговое окно Спецификация импорта (Import Specification) (рис.

В нижней части окна отображается список распознанных системой столбцов (в
нашем примере их пять) с временными наименованиями вида Поле1, Поле2, ...;
замените названия более конкретными (Name, Address, City, Region,

9. Сохраните спецификацию: щелкните на кнопке Сохранить как (Save As), в поле

Название спецификации диалогового окна Сохранение спецификации импорта и

экспорта оставьте без изменений название, предложенное системой по умолчанию

(PhoneBook — спецификация импорта)

 и щелкните на кнопке ОК. Закройте диалого-

вое окно Спецификация импорта щелчком на кнопке ОК.

10. Щелкните на кнопке Далее (Next) окна мастера Импорт текста. Установите фла-

жок опции Первая строка содержит имена полей (First Row Contains Field Names).

11. Щелкните на кнопке Далее.
12. Третье диалоговое окно мастера Импорт текста позволяет указать, где необходимо

сохранить данные — в новой или существующей таблице. Примите вариант, пред-

ложенный по умолчанию, — В новой таблице (New Table).

13. Щелкните на кнопке Далее.

 Часть III. Использование ресурсов Access


background image

 -

 -

I

I

 шлей:

 '

I

. Р.

 10. Так выглядит диалоговое окно Спецификация импорта

14.

 Четвертое окно мастера Импорт текста дает возможность задать наименование и

тип каждого поля,  также признак принадлежности поля индексу. Выберите поле

Region и укажите в раскрывающемся списке Индекс (Index) элемент Да
(Допускаются совпадения) (Yes (Duplicates

15. Щелкните на кнопке Далее.

16. Оставьте выбранной опцию Автоматически создать ключ.

17.

 Щелкните на кнопке Далее.

18. Не изменяя предложенного системой имени таблицы — приемника данных

 щелкните на кнопке Готово (Finish), чтобы завершить процедуру.

Создание и сохранение спецификации преобразования было осуществлено нами

при выполнении пп.8 и 9 инструкции. Откройте таблицу PhoneBook и взгляните на
ее содержимое; если оно вас устраивает, значит, спецификация верна.

Теперь перейдите к окну создаваемого макроса и с помощью раскрывающегося

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

Аргумент Имя таблицы

В поле Имя таблицы необходимо указать уникальное название таблицы. Чтобы из-

бежать ошибок, связанных с использованием существующих имен, можно воспользо-
ваться макросом на основе команды УдалитьОбъект, рассмотренной в разделе

 макросов

Аргумент Имя файла

Параметр Имя файла обязателен. Но одного имени файла, недостаточно. Как же про-

верить, действительно ли заданный файл существует? Чтобы ответить на этот вопрос, при-

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

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

 "Введите имя файла для

 "Имя

 )

9-й час. Работа с макросами

173


background image

Не забудьте в начале выражения ввести символ равенства (=).

 при выпол-

нении макроса откроется диалоговое окно, в поле которого пользователь сможет вве-
сти имя требуемого файла (по умолчанию предлагается

Аргумент С именами полей

ЕСЛИ необходимо, чтобы во время выполнения макроса первая строка данных

трактовалась системой как перечень названий полей, в качестве значения аргумента С

именами полей выберите Да.

Аргумент Имя таблицы HTML

Access способна взаимодействовать и с данными в формате HTML. При заполне-

нии поля Имя таблицы HTML убедитесь, что в качестве значения параметра Тип
преобразования выбрано одно из следующих — Импорт (HTML), Экспорт (HTML) или

Связь (HTML).

Аргумент Кодовая страница

Список допустимых значений параметра Кодовая страница весьма обширный. Ваш вы-

бор зависит от того, в какой кодовой странице набраны импортируемые/экспортируемые
текстовые данные.

Замена макрокоманд инструкциями

на языке VBA

В ходе выполнения

 или процедуры, написанной на языке

 может быть

имитирован вызов любой из макрокоманд Access. С этой целью используется объект
класса

 Каждому типу макрокоманд, доступных в окне создания макроса, соот-

ветствует определенный метод объекта DoCmd. Так, например, при необходимости пре-
образования текста с помощью кода VBA следует применить следующую конструкцию:

 [ТипПреобразования]

 ИмяТаблицы HTML]

 Кодовая страница]

Аргументы ИмяТаблицы и ИмяФайла обязательны. Параметру ТипПреобразования по

умолчанию присваивается значение Импорт (разделители). Выполняя операцию импорта с
разделителями, нет необходимости использовать особую спецификацию преобразования.
Значение аргумента СИменамиПолей, предлагаемое по умолчанию, равно False.

Ниже приведен листинг 9.2, содержащий описание процедуры, которая решает

рассмотренную выше задачу импорта текстовых данных с разделителями.

Листинг 9.2. Пример процедуры импорта текстовых данных с разделителями

Sub

 )

Const DefaultFileName =
Const

 = "Название спецификации"

Dim FileName As String

 = InputBox ( "Введите имя файла для

"Имя файла",

 FileName

End Sub

174

Часть III. Использование ресурсов Access