La multiplication du formulaire Access Par Maxence HUBICHE Date de publication

La multiplication du formulaire Access Par Maxence HUBICHE Date de publication : 15 octobre 2004 Dernière mise à jour : 15 octobre 2004 Voici un petit exercice facile à réaliser sur Acces. Il devrait vous permettre de comprendre tout l'avantage de considérer les formulaires Access comme des classes. Bon apprentissage. La multiplication du formulaire Access par Maxence HUBICHE I - Le résultat............................................................................................................................................................... 3 I-1 - De quoi vous avez besoin............................................................................................................................. 3 I-2 - A quoi cela va servir...................................................................................................................................... 3 II - Le formulaire Access............................................................................................................................................. 4 II-1 - Propriétés du formulaire Access................................................................................................................... 4 III - Le code................................................................................................................................................................. 5 III-1 - Les concepts utiles.......................................................................................................................................5 III-1-a - Notions de base sur les classe........................................................................................................... 5 III-1-b - Les variables - Portée, Type et Durée de vie..................................................................................... 6 III-1-c - Rappels sur la classe Collection......................................................................................................... 7 III-2 - Le code de base.......................................................................................................................................... 7 III-2-a - Les déclarations...................................................................................................................................7 III-2-b - Les fonctions utiles.............................................................................................................................. 8 III-2-b-i - Réinitialisation de la collection..................................................................................................... 8 III-2-b-ii - Récupération du nombre de subalternes.................................................................................... 8 III-2-b-iii - Création d'un nouvel objet formulaire.........................................................................................9 III-2-c - Sur activation d'un enregistrement.................................................................................................... 10 III-2-d - Sur clic du bouton cmdFermer.......................................................................................................... 10 III-2-e - Sur clic du bouton cmdResponsable.................................................................................................10 III-2-f - Sur clic du bouton cmdSubalternes....................................................................................................11 III-3 - Le code complet.........................................................................................................................................11 IV - Téléchargement.................................................................................................................................................. 16 - 2 - Copyright ® 15/10/2004 Maxence Hubiche. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. https://mhubiche.developpez.com/Access/classes/formulaires/ La multiplication du formulaire Access par Maxence HUBICHE I - Le résultat I-1 - De quoi vous avez besoin Pour réaliser notre objectif, il vous faut un formulaire Access, et la table 'Employés' que vous trouverez dans la base 'comptoir.mdb', sur votre poste de travail (installée avec Access) Rien d'autre... et pourtant, vous allez pouvoir afficher une grande quantité de formulaires. I-2 - A quoi cela va servir L'objet de cet exercice est de construire un formulaire Access permettant la visualisation d'un employé, et d'ouvrir autant de formulaires Access identiques que de subalternes. Vous devriez également, à partir du même formulaire, pouvoir afficher le responsable de ce même employé... s'il en a un ! Pour parvenir à ce résultat, il va falloir réussir à concevoir le formulaire comme un module de classe, et non comme un objet, ce qui n'est pas exact. Cela nécessitera un petit passage par l'explication de la notion de module de classe. Explication rapide, car, il n'y a pas lieu de faire tout un article à ce sujet dans ce chapitre. - 3 - Copyright ® 15/10/2004 Maxence Hubiche. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. https://mhubiche.developpez.com/Access/classes/formulaires/ La multiplication du formulaire Access par Maxence HUBICHE II - Le formulaire Access Il suffit de créer un formulaire Access, basé sur la table employé. Ici, je n'ai gardé que quelques champs. Mais rien ne vous empêche de tous les mettre. Prévoir également 3 boutons cmdResponsable, cmdSubalternes et cmdFermer II-1 - Propriétés du formulaire Access Commençons par configurer correctement notre formulaire Access, que nous enregistrerons sous ce nom : frmEmployes_Responsables. Affichez les propriétés du formulaire Access, et définissez-les comme suit : Nom de la propriété Valeur Légende Employé d'origine ... Barre défilement Aucune Afficher sélecteur Non Boutons déplacement Non Diviseurs d'enregistrement Non Taille ajustée Oui Auto centré Oui Style bordure Trait double fixe Boîte contrôle Non Boutons MinMax Aucun Bouton Fermer Non Modif Autorisée Non Suppr Autorisée Non Ajout Autorisé Non Type Recordset Instantané Fen Indépendante Oui - 4 - Copyright ® 15/10/2004 Maxence Hubiche. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. https://mhubiche.developpez.com/Access/classes/formulaires/ La multiplication du formulaire Access par Maxence HUBICHE III - Le code III-1 - Les concepts utiles III-1-a - Notions de base sur les classe Comme promis, nous allons rapidement aborder la notion de classe. La programmation en VBA cherche à se rapprocher de la programmation objet(POO = Programmation Orientée Objet), même s'il s'agit en fait plus d'une Programmation Orientée Type (POT :) ). Mais ceci est un autre débat. Puisque nous cherchons, en VBA, à nous rapprocher de la notion physique de l'objet, partons d'un exemple physique très connu : le téléphone portable... Cet objet (élément que nous manipulons) a des caractéristiques (que nous appelerons propriétés) qui sont, systématiquement des valeurs. Il est également possible d'exercer des actions sur l'objet (ces 'actions' sont les méthodes). Enfin, un évènement peut toujours survenir, évènement que nous pourrons intercepter pour déclencher une action que nous programmerons (lorsqu'on reçoit un appel, on peut déclencher une sonnerie différente en fonction du carnet dans lequel se trouve le numéro appelant, par exemple). La classe correspond au 'plan', au 'cahier des charges' qui permet la réalisation de cet objet, ainsi que de tous ceux qui sont construits en suivant les principes qu'il décrit. Régulièrement, nous créons des objets, issus des classes. En voici un exemple très simple: Déclaration et affectation d'une variable objet 'demande à l'interpréteur la création d'une variable objet issue de la classe Recordset de la bibliothèque DAO Dim rstClient As DAO.Recordset 'création de l'objet Recordset, et affectation à la variable Set rstClient = CurrentDB().OpenRecordset("tblClients") 'exécution d'une action (méthode) de déplacement sur l'objet rstClient.MoveLast 'demande de la valeur d'une caractéristique(propriété = valeur) de l'objet MsgBox rstClient.RecordCount '... Vous noterez à travers cet exemple, que vous ne manipulez pas 'Recordset' qui est la classe, le modèle de tous les recordsets, mais l'objet recordset représenté par la variable rstClient. Il en est de même dans la vie courante : - 5 - Copyright ® 15/10/2004 Maxence Hubiche. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. https://mhubiche.developpez.com/Access/classes/formulaires/ La multiplication du formulaire Access par Maxence HUBICHE pour téléphoner, vous n'utilisez pas le cahier des charges, mais bien le téléphone qui a été créé d'après le cahier des charges. Prenons l'exemple d'un formulaire Access. Il a des propriétés qui sont définies, que vous pouvez modifier. il y a également des évènements que vous pouvez intercepter pour programmer les actions que vous souhaitez entreprendre lorsque cet évènement ce produit. Nous sommes donc bien en présence d'une classe, qui permet la génération d'un nouvel objet dès que vous l'ouvrez. III-1-b - Les variables - Portée, Type et Durée de vie Voilà une partie que tout le monde devrait connaître, mais un petit rappel est peut-être utile... alors, allons-y. Premièrement, le concept de base de la déclaration d'une variable : {Dim|Private|Public|Static} NomVariable As NomDuType NomDuType :Comme son nom l'indique, il s'agit du nom du type de la variable. Une variable de donnée aura un type de données (String, Byte, Integer, Long, Single, Double, Decimal, Currency, Date, Boolean), alors qu'une variable de type objet recevra un nom de classe (Workspace, Database, Recordset, Field, Form, Report, ...) {Dim|Private|Public|Static} : suivant le terme que vous utiliserez, et l'endroit où vous l'inscrirez, différents éléments seront affectés : la portée et la durée de vie. De quoi s'agit-il ? La Portée : Cela correspond à la 'visibilité' de la variable, à son accessibilité. Si je souhaite qu'une variable ne soit accessible qu'à l'intérieur d'une procédure, et qu'une autre soit partagée entre plusieurs procédures, elles auront des portées différentes. On distingue essentiellement 4 portées : Publique, Projet, Module et Procédure. La Durée de Vie : Cette information permet de savoir pendant combien de temps on a accès à la valeur contenue dans la variable. On pourrait ainsi décider qu'une fois qu'une procédure est terminée, une variable doit être réinitialisée, et qu'une autre doit conserver sa valeur jusqu'au prochain appel de la procédure. Ces 2 variables ont donc des durées de vie différentes. Illustrons tous les cas (1) : Durée de Vie/Portée Déclaration dans la procédure Déclaration en tête de module (avant la première procédure) DIM Procédure / Procédure Projet / Module PRIVATE --Interdit-- Projet / Module STATIC Projet / Procédure --Interdit-- PUBLIC --Interdit-- Projet / Publique Donnons une explication sur le mode de lecture de ce tableau : Une variable déclarée avec Dim en tête de module sera interrogeable/modifiable uniquement par une procédure du module où elle est déclarée, et sera disponible aussi longtemps que le sera le projet (que la base sera ouverte). Elle sera par contre invisible pour toutes les procédures issues d'autres modules (au sens large du terme, soit 'module standard', 'module de classe', 'module de classe formulaire', uploads/Finance/ class-form.pdf

  • 32
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Sep 14, 2022
  • Catégorie Business / Finance
  • Langue French
  • Taille du fichier 0.3390MB