Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici

Microsoft Access 2021 et Internet

Introduction

Dans un monde qui s’ouvre de plus en plus sur le tout Internet, Microsoft Access 2021 intègre les principaux standards de communication sur ce canal, les formats XML et HTML étant parfaitement pris en charge. L’objectif de ce chapitre est d’aborder le contenu XML comme conteneur de données, les fichiers qui le complètent ainsi que le code VBA qui va permettre de le manipuler au mieux pour optimiser le stockage et le transfert d’informations au sein des applications que vous souhaitez mettre en place. Y sont également traités les fichiers HTML et les requêtes HTTP.

Access 2021 et la navigation web

Bien que les applications Office ne soient pas dédiées initialement à la navigation sur le Web, il reste néanmoins possible de mettre en place des interfaces entre votre application et Internet, que vous souhaitiez naviguer sur un réseau local ou en ligne.

1. Les contrôles Internet

a. Contrôles internes à l’application : NavigateurWeb et Microsoft WebBrowser

Il est possible d’ajouter dans un formulaire un navigateur web. Pour cela, il suffit d’aller dans l’onglet Création du formulaire dans lequel on souhaite ajouter un navigateur. Une fois le formulaire créé, deux solutions sont disponibles, chacune apportant ses propriétés et méthodes.

Contrôle NavigateurWeb - WebBrowserControl

Microsoft 365 intègre à présent directement dans les contrôles par défaut un navigateur web. Vous pouvez l’ajouter en cliquant sur l’icône dans le ruban Conception de formulaires, dans le groupe Contrôles.

images/1201N.png

Une fois que vous avez positionné votre navigateur dans votre formulaire, une fenêtre de configuration s’ouvre, vous permettant de sélectionner un lien hypertexte, ou encore de pointer sur une page web existante.

images/1202N.png

Si, par exemple, vous souhaitez que votre navigateur se lance dès l’ouverture du formulaire sur la page des Éditions ENI, vous pouvez indiquer dans l’URL de base l’adresse http://www.editions-eni.fr.

Principales propriétés du contrôle WebBrowserControl

Propriété

Description

BorderColor

Représente la couleur du contour du contrôle.

Height

Représente la hauteur du contrôle dans le formulaire.

Width

Représente la largeur du contrôle dans le formulaire.

ControlSource

Représente le lien hypertexte ouvert dans le navigateur (page HTML...

Access 2021 et le format XML

Le format XML a déjà été évoqué dans le cadre du chapitre Optimiser les interfaces Access - Exemple de ruban personnalisé. Dans ce chapitre nous allons aborder son utilisation pour sa capacité à stocker des données qui seront utilisables par Access 2021, mais nous verrons également comment il va être possible d’en savoir plus sur sa manipulation par VBA.

1. Le format XML et les données

a. Le format XML

Le langage XML est dérivé du HTML, mais a pour objectif principal la gestion des données sur le Web. Le système de balises qu’il utilise est défini par le créateur du fichier, ce qui rend sa lecture essentiellement simplifiée pour un humain.

La structure d’un fichier XML commence toujours de cette façon :

<?xml version="1.0" encoding="UTF-8"?> 

Ou encore :

<?xml version="1.0" encoding="ISO-8859-1"?> 

On peut y lire la version du XML (1.0) ainsi que le mode d’encodage du fichier.

Il existe une version 1.1 du XML, mais celle-ci n’est pas encore suffisamment prise en charge par les différents acteurs du Web pour s’imposer comme version référence.

Ci-dessous un exemple partiel de fichier XML issu d’une table :

<dataroot xmlns:od="urn:schemas-microsoft-com:officedata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:noNamespaceSchemaLocation="ENI_EMPLOYES_EMP.xsd" 
gene-rated="2022-08-30T14:13:22"> 
<ENI_EMPLOYES_EMP> 
<EMP_ID>1</EMP_ID> 
<EMP_NOM>André</EMP_NOM> 
<EMP_PRENOM>Jean-Philippe</EMP_PRENOM> 
<EMP_DEBUT_EMPLOI>2017-11-06T00:00:00</EMP_DEBUT_EMPLOI> 
<EMP_BUR_ID>1</EMP_BUR_ID> 
<EMP_SALAIRE>0</EMP_SALAIRE> ...

VBA et le format XML

Les aspects de la manipulation vue dans la section Access et les données XML peuvent être traités directement en VBA.

1. L’importation de données XML

Pour importer des données XML, on utilise la méthode ImportXML disponible à partir de l’objet Application. La syntaxe générale de cette méthode est la suivante :

Application.ImportXML SourceDonneesXML, [OptionsdImport] 

L’information SourceDonneesXML est une chaîne de caractères qui indique l’emplacement du fichier XML qui doit être importé. Le paramètre facultatif OptionsImport permet de préciser si l’import ne concerne que la structure (acStructureOnly), la structure et les données (acStructureAndData) ou l’ajout dans une table existante (acAppendData). Dans le cas où le nom de table est déjà utilisé, un nouveau nom de table sera généré automatiquement par Microsoft Access 2021.

Par exemple, pour importer des données dans une nouvelle table à partir du fichier XML se situant dans le dossier C:\temp de la machine, le code VBA devra être le suivant :

Sub Exemple1() 
Application.ImportXML "C:\temp\ENI_EMPLOYES_EMP.xml", _  
    acStructureAndData 
End Sub 

Il permet d’importer les données dans une table ENI_EMPLOYES_EMP :

images/1216N.png

Si seule la structure de la table était souhaitée, le code aurait été :

Sub Exemple2() 
Application.ImportXML "C:\temp\ENI_EMPLOYES_EMP.xml", acStructureOnly 
End Sub 

Et le résultat aurait été le suivant :

images/1217N.png

2. L’exportation de données XML

Pour exporter des données XML en VBA, on peut faire appel à la méthode ExportXML de l’objet Application. La syntaxe générale...

VBA et le format HTML

1. Importer les données HTML dans l’interface

Pour importer des données au format HTML, on peut passer par l’onglet Données externes de Microsoft Access 2021. Sélectionnez l’icône Document HTML en cliquant dans le menu Nouvelle source de données - À partir d’un fichier.

images/1912RI18.png

L’interface de sélection de fichier s’ouvre :

images/1912RI19.png

Cliquez sur le bouton Parcourir pour que la boîte de dialogue de recherche de fichier s’ouvre. Sélectionnez le fichier HTML que vous souhaitez importer. En cliquant sur OK, la fenêtre suivante s’ouvre :

images/1220N.png

Le processus d’importation se déroule de la façon suivante :

  • Indiquez si la première ligne contient les en-têtes de colonnes.

  • Spécifiez le type de donnée contenue dans chacune des colonnes.

Le processus d’importation est en cela identique à celui des fichiers plats comme les fichiers CSV.

En cliquant sur le bouton Avancé, on ouvre l’interface avec les options spécifiques de l’import.

images/1221N.png

2. Exporter les données HTML dans l’interface

De la même façon qu’il est possible d’importer des données au format HTML, il est possible de les exporter.

En effectuant un clic droit sur l’objet à exporter, sélectionnez Exporter - Document HTML.

images/1912RI22.png

Choisissez l’emplacement du fichier. L’interface est alors la suivante :

images/1912RI23.png

Il est possible de spécifier si l’on souhaite exporter les données avec la mise en forme et la mise en page, et si le fichier de destination doit être ouvert une fois l’exportation terminée. Enfin, si un filtre a été appliqué à la table par exemple, la case Exporter uniquement les enregistrements sélectionnés sera accessible et cliquable. Une fois...

VBA et le format HTML

1. L’importation de données HTML

Pour importer des données HTML, on utilise la méthode TransferText disponible à partir de l’objet DoCmd. La syntaxe générale de cette méthode est la suivante :

DoCmd.TransferText acImportHTML, [SpecificationName], [TableName], 
[FileName], [HasFieldNames], [HTMLTableName], [CodePage] 

Les paramètres optionnels qui peuvent être fournis sont les suivants :

Paramètre

Description

SpecificationName

Représente les spécifications qui peuvent être enregistrées dans Access.

TableName

Représente le nom de la table qui est importée.

FileName

Représente l’emplacement du fichier HTML qui sert de source.

HasFieldNames

Indique si la première ligne du fichier HTML contient le nom des champs ou non.

HTMLTableName

Représente le nom de la table dans le fichier HTML, contenu entre les balises <CAPTION> et </CAPTION>.

CodePage

Représente la page de code, soit l’alphabet utilisé pour l’affichage des données.

Par exemple, pour importer des données dans une nouvelle table à partir du fichier XML se situant dans le dossier C:\temp de la machine, le code VBA devra être le suivant :

Sub Exemple1() 
DoCmd.TransferText acImportHTML, , "ENI_EMPLOYES_EMP", _ 
    "C:\temp\ENI_EMPLOYES_EMP.html", True 
End Sub 

Il permet d’importer les données dans une table ENI_EMPLOYES_EMP.

2. L’exportation de données HTML

Pour exporter des données HTML en VBA, on peut faire appel à la même méthode TransferText de l’objet DoCmd. La syntaxe générale de cette méthode est la suivante :

DoCmd.TransferText acExportHTML, [SpecificationName], [TableName], 
[FileName], [HasFieldNames]...