formateur informatique

Compter le nombre d'ouvertures d'une base de données en VBA

Accueil  >  Bureautique  >  Access  >  Access VBA  >  Compter le nombre d'ouvertures d'une base de données en VBA
Livres à télécharger


Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :


Inscription Newsletter    Abonner à Youtube    Vidéos astuces Instagram
Sujets que vous pourriez aussi aimer :


Nombre d'ouvertures de la base de données

C'est une nouvelle astuce VBA Access que nous mettons en avant pour voir comment il est possible, à titre statistique, de connaître le nombre de fois qu'une base de données a été ouverte.

Base de données Access à télécharger
Pour développer cette solution, nous suggérons d'appuyer l'étude sur une base de données Access offrant déjà une table ainsi qu'un formulaire. Comme l'indique le volet de navigation, cette petite base de données est constituée d'une table nommée Tnb ainsi que d'un formulaire nommé fParcourir.
  • Double cliquer sur la table Tnb pour l'afficher en mode exécution,
Table Access pour compter le nombre d-ouverture de la base de données

Comme vous pouvez le voir, cette table est faite de deux champs. Le premier est celui de la clé primaire, certes pas absolument nécessaire dans ce cas, mais il s'agit de la philosophie d'un SGBDR. Le second est initialisé sur la valeur zéro car cette base n'a pas encore été ouverte avec le code VBA de gestion des clics. C'est ce champ qui doit être automatiquement incrémenté à chaque nouvelle ouverture.
  • Cliquer sur la croix de son onglet pour fermer cette table,
  • Dans le volet de navigation, double cliquer sur le formulaire fParcourir pour l'exécuter,
Certes, ce nom n'est pas très pertinent mais il s'agit d'un intitulé qui traîne au fil des formations et parfois, quelques détails nous échappent comme celui de renommer judicieusement un objet.

Formulaire Access de compteur de visites de la base de données

Ce formulaire est on ne peut plus dépouillé. Au milieu d'un texte explicatif, il propose une zone de texte. Comme ce formulaire est construit sur la table, cette zone réceptionne automatiquement l'information du champ que nous devons incrémenter.

Module VBA
Nous devons commencer par créer un module de code VBA pour accueillir la fonction destinée à être appelée à chaque nouvelle ouverture de la base de données.
  • Fermer le formulaire en cliquant sur la croix de son onglet,
  • En haut de la fenêtre Access, cliquer sur l'onglet Créer pour activer son ruban,
  • Dans la section Macros et code du ruban, cliquer sur le bouton Module,
Nous basculons ainsi dans l'éditeur VBA Access sur la feuille de code d'un nouveau module indépendant.

La fonction de décompte
La fonction que nous devons créer doit se charger d'incrémenter le champ Tnb_nb de la table Tnb, à chaque nouvelle ouverture. Mais pour ce faire, des objets sont nécessaires pour piloter la base de données et ses enregistrements.
  • Dans la feuille de ce module, créer la fonction nbFois, comme suit :
Function nbFois() As Long
Dim base As Database: Dim requete As String

End Function


Nous la typons comme un entier long (As Long) puisqu'elle doit retourner le compteur de visites. Puis, nous déclarons un objet de type Database pour prendre possession de la base de données en cours. Ensuite, nous déclarons une variable (requete) comme un texte (As String). Sa vocation est de stocker la syntaxe de la requête de mise à jour à exécuter sur la table, à chaque nouvelle ouverture.

Compteur de visites
Les variables étant déclarées, nous pouvons les initialiser. Nous devons faire pointer l'objet base sur la base de données en cours. C'est ainsi que nous pourrons y exécuter une requête de mise à jour, dont la syntaxe doit être stockée dans la variable requete.
  • Après les variables, ajouter les instructions VBA suivantes :
...
Set base = CurrentDb()
requete = "UPDATE Tnb set Tnb_nb = Tnb_nb + " & 1
base.Execute requete
...


Nous initialisons (Set) l'objet base sur la base de données en cours, grâce à la fonction VBA CurrentDb. Ensuite, nous enregistrons une requête Update dans la variable requete. A chaque appel, elle se charge d'incrémenter la valeur du champ Tnb_nb (Tnb_nb = Tnb_nb + " & 1) dans la table Tnb. Puis, nous exécutons cette requête en exploitant la méthode héritée Execute de l'objet base.

Décharger l'objet de base de données
Une fois la requête exécutée sur la base de données, nous devons décharger l'objet représentant cette dernière.
  • Toujours à la suite du code VBA, ajouter les deux instructions suivantes :
...
base.Close
Set base = Nothing
...


Nous fermons l'instance de la base de données grâce à la méthode héritée Close de l'objet base. Puis, nous le détruisons en le réinitialisant (Set) à Nothing. C'est ainsi que nous le sortons de la mémoire de l'ordinateur.

Exécution à l'ouverture
Pour que ce code se déclenche à chaque ouverture de la base de données, l'astuce est simple. Elle consiste à construire une macro AutoExec dont la vocation est d'appeler cette fonction. Ce nom AutoExec est important. C'est lui qui indique à Access d'exécuter automatiquement la macro au chargement de l'application.
  • Enregistrer les modifications et fermer l'éditeur VBA Access,
  • Dans la section Macros et code du ruban Créer, cliquer sur le bouton Macro,
  • Avec la liste déroulante qui se propose, choisir l'action ExécuterCode,
  • Inscrire le nom de la fonction : nbFois(), dans la zone Nom de la fonction,
  • Déployer la liste déroulante du dessous,
  • Choisir l'action OuvrirFormulaire,
  • Dans la zone Nom de formulaire, désigner le formulaire fParcourir,
  • Puis, enregistrer (CTRL + S) cette macro sous le nom AutoExec,
Créer une macro automatique au démarrage de l-application Access

De cette manière, nous commandons l'ouverture du formulaire juste après l'exécution de la fonction VBA. Nous pourrons ainsi vérifier automatiquement l'incrémentation du compteur de visites.

Compter les ouvertures
Il ne nous reste plus qu'à tester en conditions réelles.
  • Fermer Access en cliquant sur la croix de sa fenêtre,
  • Puis, rouvrir l'application à plusieurs reprises,
Compteur de visites sur formulaire Access

Comme vous pouvez l'apprécier, à chaque ouverture de la base de données, le formulaire est affiché et son compteur de visites est automatiquement incrémenté.

 
Sur Facebook
Sur Youtube
Les livres
Contact
Mentions légales



Abonnement à la chaîne Youtube
Partager la formation
Partager sur Facebook
Partager sur Twitter
Partager sur LinkedIn