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.
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.
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 :
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 :
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.
L’interface de sélection de fichier s’ouvre :
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 :
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.
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.
Choisissez l’emplacement du fichier. L’interface est alors la suivante :
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]...