Головна
Лекції
Завдання
Побажання
Гостьова
Лінки
Лекція №11 Лекція №9  Скачати лекцію

Access 10

Імпорт тексту з файла

В складі класу Application є вкладений клас DoCmd. Обєкт типу Application дозволяє посилатись на додаток Access, як таковий. Він містить інструменти керування Access. DoCmd має багато властивостей та методів серед яких є функції імпорта вмісту текстових файлів.

Процедура імпорту вмісту текстових файлів носить назву TransferText. Синтаксис виклику:

Call DoCmd.TransferText ([ТипПеретворення][,ІмяCпецифікації][,ІмяТаблиці, ,ІмяФайла][,ФлагЗоголовків][,ІмяСторінкиHTML][,КодоваСторінка]

Оскільки метод TransferText належить класу DoCmd, потрібно при виклику процедури префікс DoCmd та символ крапки. В якості необов’язкового аргументу ТипПеретворення за замовчуванням встановлюється ознака acImportDelim – імпорт тексту з роздільниками. Аргумент ІмяCпецифікації - теж необов’язковий. Параметри ТипПеретворення, ІмяCпецифікації знаходять застосування у випадку імпорту тексту більш складної структури. Аргументи ІмяТаблиці (найменування таблиці-одержувача інформації) та ІмяФайла (найменування файла-джерела) - обов’язкові. Інші параметри - ФлагЗоголовків, ІмяСторінкиHTML, КодоваСторінкадозволяється не задавати.

 

Приклад текстового файла із роздільниками.

Виконавець, Назва альбому, Формат, Видавець

Queen, The Game, Radio Gaga, Audio-CD, Polygram

 

Приклад процедури імпорту тексту із роздільниками

Sub ImportMusicFile(ByVal FileName As String, ByVal TableName As String)

Const HASFIELDNAMES = True

Dim Connection As ADODB.Connection

Set Connection = CurrentProject.Connection

If (FileExists(FileName)) Then

Call DoCmd.TransferText(acImportDelim, "", TableName, FileName, HASFIELDNAMES, "")

Else

MsgBox "Файл " & FileName & " не найден!"

End If

End Sub

Function FileExists(ByVal FileName As String) As Boolean

FileExists = Len(Dir(FileName)) > 0

End Function

Sub ImportTest()

Dim TName As String

Dim FName As String

TName = "Music3"

FName = "C:\Мои документы\Music1.txt"

Call ImportMusicFile(FName, TName)

End Sub

 

Робота з макросами

Мова макросів – це мова програмування. Макрокод обробляється додатком інтерпретатором, який зчитує текст програми, написаний у відповідності із визначеними синтаксичними правилами, аналізує та виконує його.

Макроси Access призначені для використання у двох напрямках. По-перше з їх допомогою можна створювати повноцінні програми для розвязання різних задач, або застосовувати епізодично в межах великих проектів. По-друге, макроси зручні як засіб навчання основ програмування та швидкого одержання чорнових рішень.

Кожна сучасна система програмування надає у розпорядження користувача визначений набір вбудованих інструментальних засобів – зокрема типів даних та функцій. Мова макросів Access реалізує деякі з можливостей доступних у VBA. При використанні макросів не потрібні модулі та тестові функції. Їх зручно використовувати як засіб швидкої реалізації експериментальних зразків коду.

Створення макроса. Макроси зберігаються у вигляді обєктів бази даних. Щоб створити макроси, у вікні бази даних оберіть елемент Макроси списку Обєкти та клацніть на кнопці Создать панелі інструментів. Відкриється вікно Макрос, що дозволяє ввести текст нового макроса.

Макрос визначається багато в чому також як, структура таблиці даних. Лівий стовпчик вікна Макрос – Макрокоманда – дозволяє обрати із списку, що розкривається потрібну макрокоманду, а правий – Примечание – призначений для введення коментарів.

Після того, як макрокоманду обрано, в лівій нижній частині вікна зявляються поля введення аргументів макрокоманди. Вони виконують приблизно ту ж роль, що аргументи процедури та функції. Аргументи постачають макрокоманду даними, необхідними для її коректного виконання.

В першій чарунці стовпчика Макрокоманда введіть або оберіть за допомогою списку, що розкривається значення ЗапускМакроса. При цьому відкриється 3 поля введення аргументів – Имя макроса, Число повторов, Условие повтора. Увівши значення аргументів, ви зможете виконати макрос, вказаний в полі Имя макроса.

Вікно Макрос дозволяє відобразити ще 2 стовпчики для запдання додатковий властивостей макроса - Имя макроса и Условие. Побачити їх на екрані можна, виконуючи послідовно 2 команди рядка меню ВидÞ Имя Макросов и ВидÞ Условия. Якщо необхідно, щоб система завжди відображала ці стовпчики, оберіть команду СервисÞ Параметри, перейдіть на вкладку Вид діалогового вікна Параметри, зверніться до групи елементів Конструктор макросов, встановіть прапорці Столбец имен и Столбец условий.

Стовпчик Условие дуже корисний, так як дозволяє задати логічну умову виконання макроса. Якщо результат обчислень дорівнює True, макрокоманда виконується; в іншому разі нічого не відбувається.

Приклад. Макрос створення таблиці.

Имя макроса CreateDocumentSQL

Умова Not TableExists(“Document”)

Макрокоманда Запуск запроса SQL

Інструкція SQL Create Table Document(ID number Primary key(ID), Nazva Text)

Лістинг Функція перевірки наявності таблиці.

Function TableExists(ByVal TableName As String) As Boolean

On Error GoTo Except

TableExists=True

Call DoCmd.SelectObject(acTable,TableName)

Exit Function

Except:

TableExists=False

Err.Clear

End Function

Макроси групи КопироватьОбъект. Макроси основані на команді КопироватьОбъект дозволяють виконувати операції копіювання різних обєктів – таблиць, запитів, форм, звітів, макросів, модулів як у поточній базі, так і між різними базами даних.

Имя макроса BackupDocument

Макрокоманда КопироватьОбъект

База Дапих МояБаза

НовоеИмя МоеИмя

ТипОбъекта Таблица

ИмяОбъекта Document.

Використання макросів УдалитьОбъект. Макрос типа УдалитьОбъект в сполученні із побудованим раніше макросом копіювання і функцією перевірки існування таблиць – TableExists – зручний засіб організапції повнофункціональної схеми резервного копіювання таблиць. Щоб реалізувати цю ідею у відношенні таблиці Document створимо ноаий макрос на основі команди УдалитьОбъект та використаємо його разом із макросом BackupDocument та функцією TableExists.

Макрокоманда УдалитьОбъект

ТипОбъекта Таблица

ИмяОбъекта DocumentBackup.

Щоб об’єднати рішення у загальну схему, потрібно створити новий макрос, скопіювавши в нього рядки існуючих. В нових макросах можна частково використовувати код старих, але при цьому необхідно проводити тестування. А якщо будувати новий обєкт на основі існуючих, то тестування можна не провадити.

Макрос, який ми збираємось побудувати, повинен спочатку перевіряти фает існування обєкта (таблиці DocumentBackup) і тільки тоді здійснювати спробу його видалення. Якщо обєкт існує, послідовно повинні бути виконані макроси DeleteDocument та DocumentBackup. Щоб побудувати макрос створення резервної копії, використайте новий макрос та команду ЗапускМакроса. В новий макрос будуть включені обидва раніше створені макроси без змін.

Щоб побудувати макрос:

  1. Запустіть конструктор макросів.
  2. В стовпчику Макрокоманда оберіть елемент ЗапускМакроса.
  3. Введіть логічний вираз TableExists (“DocumentBackup”) в стовпчику Условие
  4. У списку Имя макроса оберіть найменування макроса DeleteDocument.
  5. Додайте новий рядок макроса і у стовпчику Макрокоманда знов оберіть ЗапускМакроса
  6. У списку Имя макроса оберіть найменування макроса DocumentBackup.
  7. Збережіть створений макрос.

Заміна макрокоманд інструкціями на мові VBA. Для перетворення макроса виконайте дії:

  1. Для макроса, який потрібно перетворити оберіть Сохранит как
  2. Задате імя та в списку Как оберіть Модуль.
  3. В діалоговому вікні Преобразования макроса залиште параметри за замовчуванням.
Лекція №11 Лекція №9  Скачати лекцію

 

 

Hosted by uCoz