Comment faire pour créer une zone de liste déroulante de Word qui possède plus de 25 éléments à partir d’une base de données de Microsoft Access


Pour obtenir une version Microsoft Word 97 de cet article, reportez-vous à la section 253552 .

Résumé


Cet article décrit comment créer et utiliser une zone de liste déroulante UserForm en tant que macro d’entrée pour un champ texte pour afficher des informations à partir d’une base de données Microsoft Access. Cette macro peut être utilisée comme solution de contournement pour la limite de 25 éléments dans les champs de formulaire de type liste déroulante.

Pour plus d’informations sur la procédure à suivre lorsque vous n’utilisez pas une base de données Microsoft Access, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la Base de connaissances Microsoft :

198561 comment créer une zone de liste modifiable contenant plus de 25 éléments

306258 comment créer une zone de liste modifiable contenant plus de 25 éléments dans Word 2002

Plus d'informations


Microsoft fournit des exemples de programmation à titre d'illustration uniquement, sans garantie expresse ou implicite. Ceci inclut, mais n'est pas limité à, les garanties implicites de qualité marchande ou d'adéquation à un usage particulier. Cet article suppose que vous êtes familiarisé avec le langage de programmation présenté et les outils utilisés pour créer et déboguer des procédures. Les ingénieurs du support technique Microsoft peuvent vous expliquer les fonctionnalités d'une procédure particulière, mais ils ne modifieront pas ces exemples pour fournir des fonctionnalités supplémentaires ou créer des procédures répondant à vos besoins spécifiques.
Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :

212536 comment faire pour exécuter l’exemple de code à partir des articles de la Base de connaissances dans Office 2000

Dans votre modèle, procédez comme suit.

Remarque: pour fermer une fenêtre (par exemple, une fenêtre de code ou la fenêtre Propriétés ), cliquez sur le X dans le coin supérieur droit de la fenêtre.

Créez une zone de liste déroulante UserForm

  1. Dans Microsoft Office Word 2003 et version antérieure, pointez sur Macro dans le menu Outils , puis cliquez sur Visual Basic Editor.

    Dans Word 2007, cliquez sur l’onglet développeur , puis cliquez sur Visual Basic Editor
  2. Dans la fenêtre projet , sélectionnez votre TemplateProject.

    Remarque: si la fenêtre projet n’apparaît pas, cliquez sur Explorateur de projets dans le menu affichage .
  3. Dans le menu Insertion , cliquez sur UserForm. Un nouvel objet UserForm et la Boîte à outils des contrôles doivent apparaître. Avec le bouton droit à l’intérieur de l' objet UserForm, puis cliquez sur Afficher le Code dans le menu contextuel. Ajoutez le code suivant à l’événement 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. Dans le menu Outils , cliquez sur références.
  5. Cliquez sur Microsoft DAO 3.6 objet bibliothèque.
  6. Cliquez sur OK pour fermer la boîte de dialogue références .
  7. Fermez la fenêtre de code.
  8. Cliquez sur l' objet UserFormet puis cliquez sur Propriétés dans le menu contextuel. Sous l’onglet alphabétique , renommez (nom) en frmcomboet puis renommez la légende dans Microsoft Word. Fermez la fenêtre Propriétés de l’objet UserForm .
  9. Sous l’onglet contrôles de la boîte à outils, sélectionnez la zone de liste déroulante et placez-la sur votre UserForm. Droit sur le contrôle zone de liste déroulante , puis cliquez sur Afficher le Code dans le menu contextuel. Modifiez le code de ComboBox en :

    Private Sub ComboBox1_Change()
    ActiveDocument.FormFields("Text1").Result = ComboBox1.Value
    End Sub
    Remarque: Text1 est le nom du signet du champ de formulaire texte que vous insérez dans votre modèle de procédure de l’étape 2 de la « création du champ texte » de cet article.
  10. Fermez la fenêtre de code.
  11. Sous l’onglet contrôles de la boîte à outils, sélectionnez le bouton de commande et placez-le sur votre formulaire utilisateur sous la forme d’un bouton Fermer . Cliquez droit sur le contrôle CommandButton, puis cliquez sur Afficher le Code dans le menu contextuel. Modifiez le code de CommandButton en :
    Private Sub Cmdclose_Click()
    End
    End Sub
  12. Fermez la fenêtre de code.
  13. Cliquez droit sur le contrôle CommandButtonet puis cliquez sur Propriétés dans le menu contextuel. Sous l’onglet alphabétique , renommez (nom) en Cmdcloseet puis renommez la légende pour la Fermer. Fermez la fenêtre de Propriétés du contrôle CommandButton .
La zone de liste déroulante UserForm est maintenant terminée. Passez à la procédure « Création de la Macro d’entrée ».

Créez la Macro d’entrée

  1. Dans la fenêtre projet, sélectionnez votre TemplateProject.
  2. Dans le menu Insertion, cliquez sur Module. Une feuille de code de module vide s’affiche.
  3. Tapez le code suivant :
    Sub gocombobox()
    frmcombo.Show
    End Sub
La macro d’entrée est maintenant terminée. Dans le menu fichier , cliquez sur Fermer et retourner à Microsoft Word.

Créer le champ de formulaire texte

  1. Dans votre modèle, dans le menu affichage , pointez sur barres d’outils, puis cliquez sur formulaires.
  2. Placez le point d’insertion où vous souhaitez que le résultat de la liste déroulante inséré. Dans la barre d’outils formulaires , cliquez sur le Champ de formulaire texte (le premier bouton de gauche). Le Champ de formulaire de texte est inséré dans votre modèle en grisé.

    Remarque: Si vous consultez le champ {FORMTEXT} , appuyez sur ALT + F9 pour désactiver les codes de champ.
  3. Cliquez sur le Champ de formulaire de texteet puis cliquez sur Propriétés dans le menu contextuel.
  4. Dans la boîte de dialogue Options de champ texte , sous la section exécuter la macro , sélectionnez la macro gocombobox à partir de la entrée : appelé zone de liste déroulante.


    Remarque: Assurez-vous que le nom du signet de votre champ texte est le même que celui que vous avez spécifié à l’étape 9 de la procédure « Création de la zone de liste déroulante UserForm », plus haut dans cet article.
  5. Dans la barre d’outils formulaires , cliquez sur Protection du formulaire.
  6. Enregistrez et fermez votre modèle.
Pour utiliser le modèle dans Word 2003 et version antérieure, cliquez sur Nouveau dans le menu fichier . Sélectionnez votre modèle, puis cliquez sur OK.

Pour utiliser le modèle dans Word 2007, cliquez sur le Bouton de Microsoft Officeet cliquez sur Nouveau, sélectionnez votre modèle, puis cliquez sur créer.

Un nouveau document basé sur votre modèle s’affiche. Le formulaire UserForm contenant la zone de liste déroulante avec vos éléments apparaît lorsque vous utilisez la touche TAB pour vous déplacer dans le champ de formulaire texte.