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. Щоб побудувати макрос створення резервної копії, використайте новий макрос та команду ЗапускМакроса. В новий макрос будуть включені обидва раніше створені макроси без змін.Щоб побудувати макрос:
Заміна макрокоманд інструкціями на мові VBA. Для перетворення макроса виконайте дії:
|