Преобразование данных из Word в базу данных Access
Хотя Access – это приложение базы данных, которое имеет надежные объекты интерфейса, пользователи не знакомы с этим приложением. Во многих случаях Access не установлен ни в одной пользовательской системе, или вы можете запретить пользователям получать доступ к вашей базе данных.
В этой статье TipsMake.com расскажет, как использовать приложение Word для сбора пользовательских данных и последующего переноса всех этих данных в таблицу в Access. Для этого метода требуются коды Access, приложения базы данных Word и Visual Basic для приложений (VBA). (Приведенные ниже инструкции реализованы в Word 2003 и 2007, но этот метод также будет совместим с версиями Win 2000, XP и 2002).
Примечание к базе данных
Для простоты представьте, что Word куда-то передаст данные, а аналогичная база данных будет передана в Access. При применении этого метода на работе перед созданием файла Word необходимо знать следующие детали:
- Путь и имя базы данных.
- Имя таблицы в Access.
- Назовите поля в таблице и тип данных.
Пример выполняется в форме (форме) Word (рисунок A), вы обновляете два поля в таблице Shippers: Название компании а также Телефон . Оба эти поля представлены в текстовой форме. Пример пути:
C: Программные файлы Microsoft Office11Office11SamplesNorthwind.mdb
Возможно, вам потребуется обновить путь для настройки системы.
Рисунок A: Приложение Word упрощает ввод данных для сбора данных для Access.
Сбор данных из формы Word
Форма Word – это документ, содержащий пустые ячейки, называемые полями, чтобы вы могли вводить данные. Поле – это предопределенная ячейка, в которой хранятся и принимаются входные данные. В примере формы Word, показанном на рисунке A, у нас есть два поля ввода. Используя это приложение, пользователи могут обновлять таблицу Shippers, а затем аналогичные базы данных будут перенесены в Access без необходимости запускать Access или даже вам не нужно разбираться в базе данных.
В таблице «Грузоотправители» 3 поля, но одно из них – автоматическая нумерация ( AutoNumber ). Когда приложение передает новую запись, Access отсортирует значения. Поэтому отображаются только два поля: txtCompanyName а также txtPhone .
Чтобы создать пример в форме Word, вставьте два текстовых поля (символа) в документ Word следующим образом:
1. В меню «Просмотр» выберите «Панели инструментов», а затем – «Формы».
2. Вставьте два элемента управления «Поле текстовой формы» и укажите, как провести линию между ними.
3. Дважды щелкните поле, чтобы открыть диалоговое окно «Параметры поля».
4. Использование свойства Bookmark для определения первого поля: txtCompanyName , Рисунок Б.
5. Повторите шаг 4 и определите второй элемент управления как txtPhone .
6. Сохраните файл.
Рисунок B. Определите два текстовых элемента управления
В Word 2007 вам нужно добавить тег разработчика следующим образом:
1. Нажмите кнопку «Офис», а затем выберите «Параметры Word» (в правом нижнем углу).
2. Щелкните “Популярные”.
3. Выберите вкладку «Показать разработчика» в разделе «Лента» и нажмите «ОК».
Обратите внимание, что имена полей в Word должны совпадать с именами полей в Access, которые будут Название компании а также Телефон . Единственная разница в том, что текст приставка. Нет необходимости называть поля в Word таким образом, но такое именование упростит сопоставление полей в Word и Access. ( текст чтобы определить, что это поле для ввода текста).
После завершения документа вам понадобится функция VBA для преобразования импортированных значений в базу данных Access. Выполните следующие действия, чтобы добавить функцию:
1. Откройте редактор Visual Basic (VBE), нажав Alt + F11.
2. Выберите «Модуль» в меню «Вставка».
3. Введите функцию в Код А. Обязательно обновите путь правильно, если ваш путь отличается от примера.
4. В меню «Инструменты» выберите «Ссылки» и установите флажок «Библиотека объектов данных Microsoft ActiveX 2.x (ADO)», как показано на рисунке C. (Он не будет выбирать этот элемент библиотеки самостоятельно, вы должны выбрать его). Будет сделана ссылка на объект Word и библиотеку VBA.
5. Щелкните OK, чтобы вернуться в модуль.
Код
Sub TransferShipper ()
‘Передача новой звукозаписывающей компании
‘Таблица грузоотправителей в базе данных Northwind.
Dim cnn As ADODB.Connection
Dim strConnection как строка
Dim strSQL как строка
Dim strPath как строка
Dim doc As Word.Document
Dim strCompanyName As String
Dim strPhone As String
Dim byt Продолжить как Byte
Dim lngSuccess As Long
Установить doc = ThisDocument
При ошибке GoTo ErrHandler
strCompanyName = Chr (39) & doc.FormFields (“txtCompanyName”). Результат и Chr (39)
strPhone = Chr (39) & doc.FormFields (“txtPhone”). Результат и Chr (39)
‘Подтвердите новую запись.
bytContinue = MsgBox («Вы хотите вставить эту запись?», vbYesNo, «Добавить запись»)
Debug.Print bytContinue
‘Обработка значений значений.
Если bytContinue = vbYes Тогда
strSQL = “ВСТАВИТЬ В грузоотправителей” _
& “(Название компании, Телефон)” _
& “ЗНАЧЕНИЯ (” _
& strCompanyName & “,” _
& strPhone & “)”
Отладка.Печать strSQL
‘Если возможно, замените путь и строку подключения на DSN.
strPath = “C: Program FilesMicrosoft Office11Office11SamplesNorthwind.mdb”
strConnection = “Provider = Microsoft.Jet.OLEDB.4.0;” _
& “Источник данных =” & strPath
Debug.Print strConnection
Установите cnn = New ADODB.Connection
cnn.Open strConnection
cnn.Execute strSQL, lngSuccess
cnn.Close
MsgBox “Вы вставили” & lngSuccess & “record”, _
vbOKOnly, “Ошибка добавлена”
doc.FormFields (“txtCompanyName”). TextInput.Clear
doc.FormFields (“txtPhone”). TextInput.Clear
Конец, если
Установить doc = Nothing
Установите cnn = Nothing
Дополнительный выход
ErrHandler:
MsgBox Err.Number & “:” & Err.Description, _
vbOKOnly, “Ошибка”
При ошибке GoTo 0
При ошибке Возобновить Далее
cnn.Close
Установить doc = Nothing
Установите cnn = Nothing
Конец подписки
Рисунок C: Ссылка на библиотеку ADO
Вернитесь в приложение Word и дважды щелкните на txtPhone . В диалоговом окне Параметры выберите TransferShipper из Выход раскрывающийся список, рисунок D. Делайте это до тех пор, пока последнему полю не будет присвоен код для передачи входных данных в Access.
Это самый простой способ выполнить код. Вы можете использовать другие методы, такие как добавление случайных элементов управления на панель инструментов. После того, как вы укажете TransferShipper в свойстве Exit. Наконец, закройте диалоговое окно.
Рисунок D: Выполнение функции из элемента управления Выход последнего элемента управления
Теперь вы защитите форму, созданную в Word. Нажмите «Защитить форму» на панели инструментов «Формы». Сохраните всю карту образцов и закройте ее.
Используйте форму
Откройте файл формы Word и введите значение в оба поля, рис. E. Поле «Телефон» в таблице «Грузоотправители» принимает значение «телефон» почти для всех форматов. При применении этого метода убедитесь, что вы указали специальные атрибуты форматирования.
Рисунок E: Введите новую запись
После ввода номера телефона нажмите Tab, чтобы закрыть это поле, TransferShipper () дочерняя функция будет работать (известная как макрос). После операторов объявления числа код объединит некоторые Chr () функции для ввода значения для добавления специальных символов. В этом случае Chr (39) функция возвращает значение (‘). Дата требует символов (#). Для числовых значений не требуются специальные символы.
Простое сообщение, которое вы видите на рисунке F, позволяет вам повторно подтвердить процесс передачи данных (рисунок E). Это также знак для проверки правильности входных значений пользователя. Например, вы можете проверить пустое поле или несоответствующий тип данных.
Рисунок F: Подтвердите новую запись
Когда вы нажмете Да, код создаст инструкцию SQL INSERT INTO, которая включает поля доступа и значения, введенные в примерную таблицу:
ВСТАВИТЬ В accesstable (acessfld1, acessfld2,.)
ЗНАЧЕНИЯ (wordinputfld1, wordinputfld2,.)
Вам не нужно вводить значения для каждого поля в таблице Access, но вам нужно ввести обязательные поля. Обратите внимание на порядок совпадения полей ввода данных в Access и Word. Если вы опускаете ссылку на поле Access, вы также должны опустить входное значение в Word, поле AutoNumber вводить не нужно.
Далее код определит путь и откроет соединение. Обратите внимание, что вы можете включить пароль, если вы установили пароль для файла Access, используя следующий синтаксис:
cnn. Открыть строку подключения, идентификатор пользователя, пароль, параметры
Если для базы данных существует имя источника данных (DSN), обратитесь к нему следующим образом:
cnn.Open = “DSN = имя источника данных”
С DSN легче работать, чем со сложной цепочкой соединений. Наконец, метод Execute поместит данные в таблицу Shippers. База данных может быть открыта, но вы захотите подсчитать много пользователей и заблокировать возможности.
На рисунке G показано сообщение, подтверждающее завершение процесса передачи данных. Если вы пропустите этот шаг, произойдет ошибка. Если оператор INSERT INTO не работает, вам нужно будет решить эту проблему несколькими способами.
Например, вы можете удалять поля и добавлять новые значения. Лучшее решение – выявить ошибки, чтобы вовремя их избежать. Помните, что входные данные должны соответствовать всем свойствам поля в Access. Два наиболее распространенных инцидента:
- Несовместимые типы данных – Это означает, что вы не можете вводить текст в числовое поле и наоборот.
Игнорируйте обязательные значения в таблице доступа – Если для запрошенного свойства поля доступа установлено значение «Да», вы не можете ввести нулевое значение. Если ты уйдешь txtCompanyName пусто, код будет ошибочным, потому что Access должно иметь значение в этом поле.
<
p style=”text-align: justify;”>
<br>Рисунок G: Пример таблицы, показывающий код, который вставил новую запись
После успешного преобразования код очистит поля в Word. Очень простое управление ошибками. Тщательно проверьте эту технику и учтите все возможные ошибки. Если вы не уверены, что он работает должным образом, вы можете открыть панель «Отправители» в Access. На рисунке H показана только что добавленная запись. (Не беспокойтесь о AutoNumber значения; они не важны.)
Рисунок H: Значения добавлены в таблицу
Успешное преобразование
Знание данных является ключом к преобразованию каждой новой записи без серьезных проблем. Пример кода содержит необходимые навыки для начала работы. Вам необходимо улучшить технологию для корректировки данных и некоторых других требований.