Создание поля со списком Word, которое содержит более 25 элементов, в базе данных Microsoft Access


Версия данной статьи для Microsoft Word 97:253552 (Эта ссылка может указывать на содержимое полностью или частично на английском языке).

Аннотация


В статье описывается создание и использование поля со списком UserForm как макроса для того, чтобы в текстовом поле была показана информация из базы данных Microsoft Access. Этот макрос можно использовать для обхода ограничения в 25 элементов в списках.

Дополнительные сведения о том, как это выполнить без использования базы данных Microsoft Access , см. в следующих статьях базы знаний Майкрософт:

198561 Создание поля со списком, содержащим более 25 элементов (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
306258 Создание поля со списком, содержащего более 25 элементов в Word 2002 (Эта ссылка может указывать на содержимое полностью или частично на английском языке)

Дополнительная информация


Корпорация Майкрософт предлагает примеры программного кода только для иллюстрации. и не предоставляет явных или подразумеваемых гарантий относительно их пригодности для применения в пользовательских приложениях. Примеры в данной статье рассчитаны на пользователя, имеющего достаточный уровень знаний соответствующего языка программирования и необходимых средств разработки и отладки. Специалисты служб технической поддержки Майкрософт могут пояснить назначение тех или иных конструкций кода в конкретном примере, но модификация примеров и их адаптация к задачам разработчика не предусмотрена.
Для получения дополнительных сведений щелкните следующий номер статьи базы знаний Майкрософт:

212536 Запуск кода примера из статей базы знаний Майкрософт в Office 2000 (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
В шаблоне выполните следующие действия.

Примечание. Для того, чтобы закрыть окно (например, окно программы или окно Свойства ), щелкните X в правом верхнем углу окна.

Создания поля со списком UserForm

  1. В Microsoft Office Word 2003 и более ранних версиях выберите Макрос в меню Сервис, затем щелкните Редактор Visual Basic.

    В Word 2007 щелкните вкладку Разработчик и выберите Редактор Visual Basic
  2. В окне Проект выберите TemplateProject.

    Примечание. Если окно Проект не появляется, щелкните Обозреватель проектов в меню Вид.
  3. В меню Вставка выберите UserForm. Появятся пользовательская форма и Панель элементов. Щелкните правой кнопкой мыши в Пользовательской форме, а затем выберите Просмотреть код в контекстном меню. Добавьте в событие Initialize следующий код:
    Option Explicit
    'Define Variables

    Private Sub UserForm_Initialize()

    Dim dbDatabase As Database
    Dim rsNorthwind As Recordset
    Dim i As Integer
    Dim aResults()

    ' This code activates the Database connection. Change
    ' the path to reflect your database.
    Set dbDatabase = OpenDatabase("C:\My Documents\NorthWind.mdb")

    ' This code opens the Customers table. Change the Table
    ' to reflect the desired table.
    Set rsNorthwind = dbDatabase.OpenRecordset("Customers", dbOpenSnapshot)

    i = 0

    With rsNorthwind
    ' This code populates the combo box with the values
    ' in the CompanyName field.

    Do Until .EOF
    ComboBox1.AddItem (i)
    ComboBox1.Column(0, i) = .Fields("CompanyName")
    .MoveNext
    i = i + 1
    Loop

    End With
    End Sub
  4. Выберите в меню Сервис команду Ссылки.
  5. Щелкните Microsoft DAO 3.6 Object Library.
  6. Нажмите кнопку OK, чтобы закрыть диалоговое окно Ссылки.
  7. Закройте окно программы.
  8. Щелкните правой кнопкой мыши Пользовательская форма, затем выберите Свойства в контекстном меню. На вкладке По алфавиту переименуйте (Имя) на frmcombo, затем переименуйте Заголовок на Microsoft Word. Закройте окно Свойства пользовательской формы.
  9. На вкладке Элементы управления панели инструментов выберите Поле со списком и поместите его в пользовательскую форму. Щелкните правой кнопкой мыши элемент управления Пользовательская форма, а затем выберите Просмотреть код в контекстном меню. Измените код поля со списком на следующий.

    Private Sub ComboBox1_Change()
    ActiveDocument.FormFields("Text1").Result = ComboBox1.Value
    End Sub
    Примечание. Text1 –– это название закладки в текстовом поле, вставленной в шаблон на этапе 2, описанном в разделе "Создание текстового поля" данной статьи.
  10. Закройте окно программы.
  11. На вкладке Элементы управления панели инструментов выберите CommandButton и поместите его в пользовательскую как кнопку Закрыть. Щелкните правой кнопкой мыши CommandButton, а затем выберите Просмотреть код в контекстном меню. Измените код CommandButton на следующий.
    Private Sub Cmdclose_Click()
    End
    End Sub
  12. Закройте окно программы.
  13. Щелкните правой кнопкой мыши CommandButton, затем выберите Свойства в контекстном меню. На вкладке По алфавиту переименуйте (Имя) на Cmdclose, затем переименуйте Заголовок на Закрыть. Закройте окно Свойства CommandButton.
Поле со списком пользовательской формы теперь готово. Перейдите к этапу "Создание макроса".

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

  1. В окне "Проект" выберите TemplateProject.
  2. В меню Insert выберите команду Module. Появится список кодов пустого модуля.
  3. Введите следующий код:
    Sub gocombobox()
    frmcombo.Show
    End Sub
Теперь макрос готов. В меню Файл выберите команду Закрыть и вернуться в Microsoft Excel.

Создание текстового поля

  1. в шаблоне, в меню Вид выберите Панели инструментов и щелкните Формы.
  2. Поместите курсор в то местоположение, в которое необходимо ставить результат раскрывающегося списка. На панели инструментов Формы щелкните Текстовое поле (первая кнопка слева). Текстовое поле вставлено в шаблон с серым затенением.

    Примечание. Если вы видите поле {FORMTEXT}, нажмите сочетание клавиш ALT+F9, чтобы отключить коды поля.
  3. Щелкните правой кнопкой мыши Текстовое поле, затем выберите Свойства в контекстном меню.
  4. В диалоговом окне Параметры текстового поля в разделе Выполнить макрос выберите макрос gocombobox в текстовом поле Ввод: .


    Примечание. Убедитесь в том, что имя закладки текстового поля совпадает с указанным на этапе 9 раздела "Создание поля со списком UserForm" этой статьи.
  5. На панели Формы щелкните Защита формы.
  6. Сохраните и закройте шаблон.
Для использования шаблона в Word 2003 и более ранних версиях щелкните Создать в меню Файл. Выберите шаблон и нажмите кнопку ОК.

Для использования шаблона в Word 2007 нажмите кнопку Microsoft Office, щелкните Новый, выберите шаблон, а затем щелкните Создать.

Появится новый документ, основанный на шаблоне. UserForm, содержащий ComboBox с вашими элементами, появится при использовании клавиши TAB для перемещения в следующее текстовое поле.