Taille de police :

×

Lecture de la page :

Lire Test2

Le champ DATABASE : Tableau de données externes dans Word

0
(0)

Insère le résultat d’une requête basée sur une source de données via une connexion OLEDB ou ODBC.

  • Si le résultat comporte 61 colonnes ou moins, Word génère un tableau standard,
  • Au-delà de 61 colonnes, les données sont insérées sous forme de texte brut avec séparation par des tabulations.
  • Ne permet pas un accès Cloud, Web, Sharepoint...
  • Permet un accès à une source Excel, Access, SQL Server via ODBC, MySQL via ODBC, CSV via pilote ODBC/OLEDB.

Syntaxe

{ DATABASE [Commutateurs] }

Commutateurs :

  • \d "chemin" : Chemin d'accès à la source de Données.
    • Utilisé pour toutes les requêtes sur la source de données sauf celles utilisant ODBC.
    • Utilisez deux barres obliques inverses dans le chemin, par exemple, "C :\\Data\\Ventes.mdb".
  • \l # : Numéros du format de tableau à utiliser correspondant aux formats visibles dans la boîte de dialogue "Mise en forme automatique de tableau".
    • Valeur entre 1 et 42 (Lors de mes tests, un nombre supérieur à 42 provoque un plantage de Word).
    • Si le commutateur \b n'est pas en plus précisé, le tableau n'aura aucune mise en forme autre qu'une simple bordure noir quel que soit \l.
  • \b Somme : Valeur résultant de la somme de codes correspondant à divers paramètres de formatage (5 soit 1+4, on applique donc Bordure et Remplissage).
    (Logique de drapeaux / Bitmask)
    Liste des codes de formatage pour \b
    • La somme se situe entre 1 et 2047.
    • Si \l est omis seule la valeur 16 (Ajustement des cellule) est prise en compte.
    • Les paramètres "Bandes de lignes" et "Bandes de couleurs" semble inopérant quel que soit le format \l.
      • Pour information : Les valeurs 512 et 1024 sont respectivement ajoutées si ces paramètres sont décochés (désactivation ?) !
    • Certains paramètres :
      • Semble inopérants avec certain format.
      • Ne sont pas compatible suivant le format \l (exemple : l'activation du remplissage/4 fait disparaitre les bordures/1).
  • \c : Instructions de Connexion.
    • Ajouter un antislash (\) avant chaque guillemet dans le texte de l'instruction (caractère d'échappement).
  • \f # : (From) Numéro d’enregistrement du premier enregistrement de données à insérer.
  • \t # : (To) Numéro d’enregistrement du dernier enregistrement de données à insérer.
  • \h : (Header) Utilise des noms de champs de la base de données en tant qu’en-têtes de colonne dans la table obtenue.
  • \o : (Once ou On Merge .) Exécute la mise à jour du champ une seule fois en début de fusion lors d'un publipostage. Chaque document généré aura le même tableau.
    • Sans lui, la requête de mise à jour est faite pour chaque enregistrement du document fusionné pouvant ainsi générer des tableaux différents pour chacun d'eux.
  • \s SQL : Requête SQL
    • Ajouter un antislash (\) avant chaque guillemet dans le texte de la requête (caractère d'échappement).
    • Que des instructions de lecture comme SELECT, WHERE, GROUP BY, HAVING, DISTINCT... (pas de Drop Table, Insert, create / drop table, update ...).

Ajout du champ DATABASE

Il est plus simple de laisser Word configurer ce champ en utilisant la boîte de dialogue Champ plutôt que de le faire manuellement.

  • On insère le champ via le ruban Insertion QuickParts Champs.
  • On sélectionne la catégorie Publipostage puis le champ BaseDeDonnées.
  • On clique sur le bouton Insérer une base de données...
Word Publipostage multibases Insertion du champ DATABASE

Cliquer sur le bouton Obtenir les données (1) pour sélectionner le fichier de la source de données.

Fenêtre de choix du tableau, de la table, de la requête...

Sélectionner dans la fenêtre Sélectionner le tableau le tableau, la table, la requête… à utiliser.

Word Publipostage multibases Paramétrage du champ DATABASE
Word Publipostage multibases Paramétrage du champ DATABASE

Cliquer sur le bouton Options de requête (2) pour ajouter des critères de sélection, des tris et de choisir les champs à importer.

Fenêtre Options de requête

Cliquer sur le bouton Mise en forme automatique du tableau (3) pour choisir la présentation / le formatage à appliquer.

Word Publipostage multibases Formatage du champ DATABASE
  • On retrouve les possibilités de choix pour les commutateurs \l et \b.

Cliquer sur le bouton Insérer des données (4) :

  • Choisir la plage des enregistrements à importer (Tous ou De \f à À \t).
  • Cocher Insérer en tant que champ (5).

Exemples de résultat

Excel

{ DATABASE  
\d "C:\\MesDoc\\BasePubEquipe.xlsx" \c "Provider=Microsoft.ACE.OLEDB.12.0;
User ID=Admin;
Data Source=C:\\MesDoc\\BasePubEquipe.xlsx;Mode=Read;
Extended Properties=\"HDR=YES;IMEX=1;\";
Jet OLEDB:System database=\"\";
Jet OLEDB:Registry Path=\"\";
Jet OLEDB:Engine Type=37;
Jet OLEDB:Database Locking Mode=0;
Jet OLEDB:Global Partial Bulk Ops=2;
Jet OLEDB:Global Bulk Transactions=1;
Jet OLEDB:New Database Password=\"\";
Jet OLEDB:Create System Database=False;
Jet OLEDB:Encrypt Database=False;
Jet OLEDB:Don't Copy Locale on Compact=False;
Jet OLEDB:Compact Without Replica Repair=False;
Jet OLEDB:SFP=False;
Jet OLEDB:Support Complex Data=False;
Jet OLEDB:Bypass UserInfo Validation=False;
Jet OLEDB:Limited DB Caching=False;
Jet OLEDB:Bypass ChoiceField Validation=False" 
\s "SELECT * FROM `Feuil1$`" 
\l "1" 
\b "511" 
\h }
  • HDR=YES (Header / En-tête) : La première ligne de la plage Excel contient les noms des colonnes. Si NO les colonnes seront F1, F2... (Field).
  • IMEX=1 (IMport EXport Mode) : Force le moteur d'Access/Excel (ACE/Jet) à basculer en mode Import et à évaluer l'ensemble de chaque colonne pour en déterminer le type.
    • Par défaut, le moteur se base sur les 8 premières lignes de la colonne (valeur définie par la clé de registre TypeGuessRows de HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\REGISTRY\MACHINE\Software\Microsoft\Office\16.0\Access Connectivity Engine\Engines\Excel) pour "deviner" si la colonne contient du texte ou des nombres. Si une colonne contient principalement des nombres mais quelques textes plus bas, le moteur applique le type "Nombre" et masque ou transforme en valeurs vides (NULL) les cellules contenant du texte ! (Voir Initializing the Microsoft Excel driver | Microsoft Learn).

Version allégée

{ DATABASE 
\d "C:\\MesDoc\\BasePubEquipe.xlsx" 
\c "Provider=Microsoft.ACE.OLEDB.12.0;
Extended Properties=\"HDR=YES;IMEX=1\"" 
\s "SELECT * FROM `Feuil1$`" 
\l "1" 
\b "511" 
\h }

Access

{ DATABASE 
\d "C:\\MesDoc\\Rh.accdb" \c "Provider=Microsoft.ACE.OLEDB.12.0;
User ID=Admin;
Data Source=C:\\MesDoc\\Rh.accdb;Mode=Read;
Extended Properties=\"\";
Jet OLEDB:System database=\"\";
Jet OLEDB:Registry Path=\"\";
Jet OLEDB:Engine Type=6;
Jet OLEDB:Database Locking Mode=0;
Jet OLEDB:Global Partial Bulk Ops=2;
Jet OLEDB:Global Bulk Transactions=1;
Jet OLEDB:New Database Password=\"\";
Jet OLEDB:Create System Database=False;
Jet OLEDB:Encrypt Database=False;
Jet OLEDB:Don't Copy Locale on Compact=False;
Jet OLEDB:Compact Without Replica Repair=False;
Jet OLEDB:SFP=False;
Jet OLEDB:Support Complex Data=False;
Jet OLEDB:Bypass UserInfo Validation=False;
Jet OLEDB:Limited DB Caching=False;
Jet OLEDB:Bypass ChoiceField Validation=False" 
\s "SELECT `intNum`, `strPrenom`, `strNom`, `strSexe`, `strService` FROM `R_Hommes_Rh` WHERE ((`strPrenom` = 'Paul')) ORDER BY `strNom`"
\f "1"
\t "5" 
\l "2" 
\b {=1+2+4+8+16+32+128} 
\h }

  • Noter ici l'utilisation d'un champ Formule pour calculer la valeur du commutateur \b (plus facilement décryptable ainsi).

Word : Mise en œuvre dans un publipostage

Voir l'article Publipostage à partir de 2 tables (Bases) liées

Astuce

  • Par défaut, Word enregistre un chemin absolu pour les commutateurs \d et \c, il est tout à fait possible d'utiliser un chemin relatif.
  • Ajouter \* MERGEFORMAT pour tenter de préserver les mises en forme appliquées.

Mise à jour

Contrairement aux champs classiques, DATABASE ne se met à jour dynamique à l'ouverture du document seulement si l'option Word "Mettre à jour les champs à l'ouverture" est activée.

Merci pour votre attention bienveillante.

Article intéressant ?

Cliquez sur une étoile pour noter cet article !

Note moyenne 0 / 5. Nombre de votes : 0

Aucun vote pour l'instant ! Soyez le premier à noter ce post.

Nous sommes désolés que cet article ne vous ait pas été utile !

Améliorons cet article !

Dites nous comment nous pouvons améliorer cet article ?

Publications similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *