LE MANUEL IL A ÉTÉ CONÇU POUR RÉPONDRE À PLUSIEURS OBJECTIFS :
situer Access dans le contexte plus général de la micro-informatique accompagner votre progression dans la connaissance de Access vous indiquer pour chaque manipulation la procédure à suivre vous aider dans tous les travaux que vous pourrez être amenés à effectuer en tant que guide et conseil CE SUPPORT PRÉSENTE DIFFÉRENTES RUBRIQUES REPÉRÉES PAR UNE ICONE
DES PROCÉDURES DÉCRIVENT LA MARCHE À SUIVRE POUR EFFECTUER UNE ACTION PROCÉDURE
Des informations viennent compléter ces procédures INFORMATION
des exemples viennent illustrer ces procédures EXEMPLE
Des conseils vous aident à mettre en pratique vos connaissances CONSEIL
Des mises en garde vous permettent d'éviter les piéges ou d'en sortir ATTENTION
DES EXERCICES PERMETTENT DE TESTER LES PROCÉDURES ET DE METTRE VOS CONNAISSANCES À L'ÉPREUVE EXERCICE
Des procédures avancées décrivent des actions plus complexes AVANCÉ
des emplacements vous permettent de prendre des notes directement sur le support en bas de chaque page. NOTES
Edition I O S
I. LES MACROS Les macros ont pour but d'automatiser les actions effectuées de manière régulière et répétitive. Des menus et des boutons vont permettre à l'utilisateur de naviguer facilement entre les macros. Elles vont aussi permettre de diminuer de manière très importante le risque d'erreur lors de l'utilisation de la base.
A A.. C CR RÉ ÉE ER RU UN NE EM MA AC CR RO O La création d'une macro va simplement consister à enregistrer les actions effectuées d'un moment à un autre. CRÉER UNE MACRO : DANS LA FENÊTRE PRINCIPALE DE LA BASE DE DONNÉES PROCÉDURE
<CLIC G> SUR L'OBJET
(volet de gauche)
<CLIC G> SUR L'OUTIL
La barre d'outils suivante s'affiche en mode création :
NOTES
Edition I O S
page 1
Une fenêtre composée de 2 volets s'affiche : Le volet haut permet de sélectionner et commenter les actions Le volet bas (arguments de l'action) permet de décrire les objets et données à associer à la ligne sélectionnée <F6> permet de passer d'un volet à l'autre INFORMATION
MACROS "FOURNISSEURS" DE LA BASE "COMPTOIR"
Volet haut Volet bas
L'ensemble des macros affichées dans une fenêtre macro s'appelle un GROUPE DE MACROS INFORMATION
La liste déroutante des cellules "action" affiche les actions possibles
NOTES
page 2
reproduction réservée
PROCÉDURE
CRÉER UNE ACTION : <CLIC G> DANS UNE CELLULE DE LA COLONNE ACTION, <CLIC G> SUR À DROITE POUR DÉROULER LA LISTE <CLIC G> SUR L'ACTION À INSÉRER - DÉFINIR LES ARGUMENTS DOCUMENTER L'ACTION PAR UN COMMENTAIRE
créer les tables, requêtes, formulaires et états nécessaires au bon fonctionnement de l'application avant de créer la macro CONSEIL
B B.. E EN NR RE EG GIIS STTR RE ER RU UN NE EM MA AC CR RO O Il est indispensable d'enregistrer la macro. ENREGISTRER UNE MACRO : PROCÉDURE
<CLIC G> SUR
DE LA BARRE D'OUTILS "MACRO" NOMMER LA MACRO POUR VALIDER
enregistrer la macro au plus tôt et régulièrement si elle est complexe (et au plus tard lorsqu'elle est terminée) ; ainsi, un éventuel problème n'obligera pas l'utilisateur à repartir de zèro. CONSEIL
Les noms proposés par défaut sont macro1, macro2… Il est nécessaire de donner des noms un peu plus explicites INFORMATION
NOTES
Edition I O S
page 3
C C.. E EX XÉ ÉC CU UTTE ER RU UN NE EM MA AC CR RO O EXÉCUTER UNE MACRO : DANS LA FENÊTRE PRINCIPALE DE LA BASE DE DONNÉES PROCÉDURE
<CLIC G> SUR L'OBJET (volet de gauche) <DOUBLE CLIC> SUR LA MACRO À ÉXÉCUTER
Il est souvent nécessaire de lancer une macro à partir d'un formulaire ou d'une requête. EXÉCUTER UNE MACRO : PROCÉDURE
MENU OUTILS MACRO SÉLECTIONNER LA MACRO <OK> POUR VALIDER
L'action ÉXÉCUTERMACRO va permettre d'imbriquer des macros pour créer des sous-menus de différents niveaux AVANCÉ
NOTES
page 4
reproduction réservée
D D.. TTE ES STTE ER RU UN NE EM MA AC CR RO O Il est rare de créer une macro parfaite dés le premier essai. Le plus souvent, il est nécessaire de procéder à de nombreux tests et corrections avant que la macro ne fonctionne correctement. Le mode "pas à pas" permet de mener à bien ces étapes de création et de validation.
PROCÉDURE
INFORMATION
<CLIC G> SUR
MODE PAS À PAS PUIS EXÉCUTER LA MACRO
MENU PRINCIPAL ÉXÉCUTER
L'action indiquée s'exécute lorsque l'on appuie sur le bouton . S'il n'y a pas de problème, l'action suivante est affichée ; si une erreur est rencontrée, un message avertit automatiquement que l'action a échoué, puis affiche la cause de l'erreur. Le bouton affiche la fenêtre Macro afin de corriger l'erreur. Pour désactiver le mode Pas à Pas, <CLIC G> sur le bouton
ÉXÉCUTER LA MACRO "TRANSFERT FEUILLE" EN MODE "PAS À PAS"
EXERCICE
NOTES
Edition I O S
page 5
NOTES
page 6
reproduction réservée
II. PROGRAMMER AVEC LES MACROS Les macros vont permettre de générer des actions qui vont être automatisées et s'exécuter en fonction de certaines conditions. Des commentaires vont venir documenter ces macros.
A A..
LLE ES SM MA AC CR RO OS SE ETT LLE ES SA AU UTTR RE ES SO OB BJJE ETTS S
Les macros peuvent être autonomes et fonctionner dans un environnement global ou bien elles peuvent êtres liées à un objet de la base (formulaire, état…) et ne fonctionner que dans l'environnement de cet objet. La macro est alors associée à une action de cet objet.
PROCÉDURE
ASSOCIER UNE MACRO: OUVRIR L'ÉTAT, LE FORMULAIRE… EN MODE CRÉATION SÉLECTIONNER LE CHAMP, L'OBJET (BOUTON) OU AUTRE auquel la macro doit être associée <CLIC D> ONGLET ASSOCIER LA MACRO À L'ÉVÉNEMENT
(voir chapitre "ACTIONS")
B B.. LLE ES SA AC CTTIIO ON NS S LLIIÉ ÉE ES SA AU UX XM MA AC CR RO OS S Ce tableau non exhaustif, liste les actions les plus courantes. LIBELLE
ACTION
ACTUALISER
MET À JOUR LES DONNÉES OU L'AFFICHAGE DANS UN CONTRÔLE OU UN OBJET ACTIF.
AFFICHERBARREOUTILS
AFFICHE OU MASQUE UNE BARRE D'OUTILS PAR DÉFAUT OU PERSONNALISÉE
AFFICHERTOUSENREG
SUPPRIME LES FILTRES DE L'OBJET ACTIF ET AFFICHE TOUS LES ENREGISTREMENTS
AGRANDIR
AGRANDIT LA FENÊTRE ACTIVE "PLEIN ÉCRAN".
AJOUTERMENU
INSÈRE UNE BARRE DE MENU DÉROULANT DANS UN MENU UTILISATEUR.
ANNULEREVÉNEMENT
ANNULE L'ÉVÉNEMENT QUI A PROVOQUÉ L'EXÉCUTION DE LA MACRO
APPLIQUERFILTRE
FILTRE APPLIQUÉ À UN FORMULAIRE OU À UN ÉTAT.
ARRÊTMACRO
INTERROMPT L'EXÉCUTION DE LA MACRO EN COURS.
ARRÊTTOUTESMACROS
INTERROMPT TOUTES LES MACROS EN COURS D'EXÉCUTION.
ATTEINDRECONTRÔLE
SÉLECTIONNE UN CONTRÔLE DANS L'OBJET ACTUELLEMENT OUVERT.
ATTEINDREENREGISTREMENT
TRANSFORME UN ENREGISTREMENT EN ENREGISTREMENT COURANT.
ATTEINDREPAGE
ATTEINT LE 1ER CONTRÔLE DE LA PAGE INDIQUÉE.
AVERTISSEMENTS
ACTIVE OU DÉSACTIVE LES MESSAGES DU SYSTÈME.
BIP
EMET UN SIGNAL SONORE.
BOÎTEMSG
AFFICHE UNE BOÎTE DE MESSAGE.
COPIEROBJET
COPIE UN OBJET SÉLECTIONNÉ DANS UNE BASE DE DONNÉES ACCESS.
COPIERVERS
PERMET DE COPIER LES DONNÉES DE L'OBJET SPÉCIFIÉ DANS UN FICHIER EXCEL (*.XLS), MS-DOS TEXT (*.TXT), OU RICH TEXT FORMAT (*.RTF)…
Edition I O S
page 7
DÉFINIRELÉMENTMENU
PERMET DE DÉFINIR L'ÉTAT D'ÉLÉMENTS DU MENU (ACTIFS OU INACTIFS, COCHÉS OU NON COCHÉS) DANS LA BARRE D'OUTILS PERSONNALISÉE OU LA BARRE DE MENUS GLOBALE.
DÉFINIRVALEUR
POUR UN CHAMP, UN CONTRÔLE OU UNE PROPRIÉTÉ DANS UN FORMULAIRE OU UN ÉTAT.
DÉPLACERDIMENSIONNER.
DÉPLACE UNE FENÊTRE ACTIVE OU EN MODIFIE LA TAILLE.
ECHO
INDIQUE SI L'ÉCRAN EST OU NON MIS À JOUR LORS DE L'EXÉCUTION D'UNE MACRO.
ENREGISTRER
ENREGISTRE SOIT UN OBJET ACCESS SPÉCIFIQUE, SOIT L'OBJET ACTIF SI AUCUN OBJET N'EST SPÉCIFIÉ.
ENVOITOUCHES
TRANSMET DES TOUCHES À ACCESS OU À UNE APPLICATION ACTIVE SOUS W INDOWS.
ENVOYEROBJET
INCLUT L’OBJET SPÉCIFIÉ DANS UNE MESSAGERIE ÉLECTRONIQUE QUI PERMET DE L'AFFICHER ET DE L'ENVOYER.
EXÉCUTERAPPLICATION
EXÉCUTE UNE APPLICATION DOS OU W INDOWS
EXÉCUTERCODE
EXÉCUTE UN CODE PROCÉDURE FONCTION DANS UNE MACRO.
EXÉCUTERCOMMANDE
EXÉCUTE UNE DES COMMANDES INTÉGRÉES D’ACCESS. LA COMMANDE PEUT APPARAÎTRE SUR UNE BARRE DE MENUS, UNE BARRE D'OUTILS OU UN MENU .
EXÉCUTERMACRO
EXÉCUTE UNE MACRO OU UN GROUPE DE MACROS, UNE OU PLUSIEURS FOIS.
EXÉCUTERSQL
INSTRUCTION SQL QUI PERMET D'EXÉCUTER UNE REQUÊTE ACTION.
FERMER
FERME LA FENÊTRE DÉSIGNÉE OU PAR DÉFAUT CELLE QUI EST ACTIVE.
IMPRIMER
IMPRIME L'OBJET ACTUELLEMENT ACTIF.
OUVRIRETAT
OUVRE UN ÉTAT DANS LE MODE DÉSIRÉ
OUVRIRFORMULAIRE
OUVRE UN FORMULAIRE DANS LE MODE DÉSIRÉ
OUVRIRMODULE
OUVRE LE MODULE SPÉCIFIÉ AU NIVEAU DE LA PROCÉDURE (SUB, FUNCTION, EVT)
OUVRIRREQUÊTE
OUVRE UNE REQUÊTE DANS LE MODE DÉSIRÉ OU EXÉCUTE UNE REQUÊTE ACTION.
OUVRIRTABLE
OUVRE UNE TABLE EN CRÉATION, FEUILLE DE DONNÉES OU APERÇU AVANT IMPRESSION.
QUITTER
QUITTE ACCESS, EN ENREGISTRANT LES OBJETS DE LA BASE OUVERTE.
REDESSINEROBJET
MET À JOUR L'AFFICHAGE D'UN OBJET DÉSIGNÉ SANS MISE À JOUR DES ENREGISTREMENTS DE LA BASE DE DONNÉES OUVERTE 'ACTUALISER).
RÉDUIRE
RÉDUIT LA FENÊTRE ACTIVE À LA TAILLE D'UNE ICÔNE PLACÉE EN BAS DE L'ÉCRAN.
NOTES
page 8
reproduction réservée
LIBELLE
ACTION
RENOMMER
RENOMME L'OBJET SÉLECTIONNÉ.
RESTAURER
RÉTABLIT LA TAILLE PRÉCÉDENTE D'UNE FENÊTRE ACTIVE (SUITE À UN AGRANDISSEMENT OU À UNE RÉDUCTION.
SABLIER
TRANSFORME LE POINTEUR SOURIS EN UN SABLIER PENDANT L'EXÉCUTION D'UNE MACRO.
SÉLECTIONNEROBJET
SÉLECTIONNE UN OBJET POUR DES ACTIONS À VENIR.
SUPPRIMEROBJET
SUPPRIME L'OBJET DÉSIGNÉ
TRANSFÉRERBASE
TRANSFÉRE DES TABLES ENTRE ACCESS ET UN AUTRE LOGICIEL DE BASE DE DONNÉES, OU ENTRE DEUX BASES DE DONNÉES ACCESS (EXPORTATION/IMPORTATION).
TRANSFÉRERFEUILLECALCUL
IMPORTE OU EXPORTE DES DONNÉES ENTRE LA BASE DE DONNÉES ET UN TABLEUR.
TRANSFÉRERTEXTE
TRANSFÉRE DES DONNÉES ENTRE UNE TABLE ACCESS ET UN FICHIER TEXTE.
TROUVERENREGISTREMENT
RECHERCHE UN ENREGISTREMENT CORRESPONDANT AUX CRITÈRES DÉSIGNÉS.
TROUVERSUIVANT
RECHERCHE L'ENREGISTREMENT SUIVANT DÉFINI PAR L'ACTION TROUVERENREGISTREMENT.
C C.. G GÉ ÉR RE ER R LLE ES SC CO ON ND DIITTIIO ON NS S Les conditions déterminent l'exécution de la macro. AJOUTER UNE CONDITION : PROCÉDURE
<CLIC G> SUR CONDITIONS - BARRE D'OUTILS MACRO Une colonne condition s'affiche dans la feuille Lorsque qu'une macro est exécutée, ACCESS évalue chaque expression Si l'expression est évaluée comme étant vraie, ACCESS exécute l'action figurant dans cette ligne ainsi que toutes les actions qui suivent immédiatement et qui sont précédées de points de suspension (...) dans la colonne Condition. ACCESS poursuit ensuite l'exécution de toutes les actions supplémentaires dans la macro contenant une colonne Condition vierge jusqu'à ce qu'il atteigne une autre expression, un nom de macro ou la fin de la macro. Si l'expression est évaluée comme étant fausse, ACCESS ignore l'action ainsi que toutes les actions qui suivent immédiatement et qui sont précédées de points de suspension dans la colonne Condition, puis passe à la ligne action suivante contenant une expression ou une colonne Condition vierge. Ceci peut s'avérer intéressant par exemple pour le contrôle des saisies dans un formulaire.
NOTES
Edition I O S
page 9
le N° du fournisseur est testé (non NULL). Dans le cas où le champ est vide, un message apparaît en avertissement EXEMPLE
BOUTON DE COMMANDE VISUALISATIONPRODUITS (FORMULAIRE FOURNISSEURS)
page 10
reproduction réservée
L'argument Sur clic désigne l'objet groupe de Macros "Fournisseurs" et la macro "Visualisation produits" décrite ci-dessus INFORMATION
CONSEIL
Il est également possible de tester la condition fausse en ajoutant l'opérateur Pas pour exécuter une action précise dans ce cas. - Dans l'exemple, si le N°du fournisseur n’est pas NULL aucun traitement n'est effectué car la condition est fausse. Au contraire avec l'opérateur Pas, une action peut être exécutée si la condition est fausse Si une condition vraie doit exécuter plusieurs actions, il faut ajouter trois points de suspension (...) dans chacun des champs de la colonne Condition
AVANCÉ
D D.. A AFFFFIIC CH HE ER RD DE ES SM ME ES SS SA AG GE ES S Les messages informent l'utilisateur du déroulement de la macro-commande. Ils sont affichés dans des boîtes de dialogue spécifiques. BOITEMSG (MSGBOX) Quatre arguments sont utilisables dans l'action BoîteMsg : MESSAGE
TEXTE DU MESSAGE (MAXIMUM 255 CARACTÈRES).
BIP
ÉMISSION D'UN SIGNAL SONORE.
TYPE
SYMBOLE AFFICHÉ DANS LA BOÎTE : AUCUN SI PAS DE PICTOGRAMME.
TITRE
TITRE DE LA BOÎTE DE DIALOGUE.
NOTES
Edition I O S
page 11
ECHO (DOCMD.ECHO) : L'instruction ECHO (comme en DOS) permet de désactiver la mise à jour de l'affichage de l'écran. NON
NE MET PAS À JOUR L'AFFICHAGE
OUI
MET À JOUR L'AFFICHAGE.
Les erreurs, les messages et les entrées utilisateurs ne seront pas gênées par la désactivation de l'écho, et apparaîtront tout de même INFORMATION
SABLIER (DOCMD.HOURGLASS) : Le sablier permet d'informer l'utilisateur qu'un traitement est en cours. Il est conseillé d'utiliser cette action lorsque l'écho est désactivé.
INFORMATION
NON
Sablier non actif
OUI
Sablier actif.
l'icône affichée à l'aide de cette action correspond à l'icône définie pour "Occupé" dans l'onglet "Pointeurs" de la boîte de dialogue "Souris" du Panneau de configuration de Windows (la valeur par défaut est un sablier animé)
AVERTISSEMENTS (DOCMD.SETWARNINGS) : Cette action est utile pour empêcher l'interruption de la macro par des avertissements et des zones de messages modaux. En réglant sur Non, l'argument actif de l'action Avertissements, le bouton de confirmation des boîtes de dialogue reste activé ; ce qui permet un déroulement ininterrompu de la macro. L'action Echo ne désactive pas l'affichage des boîtes de dialogue modales nécessitant une confirmation par un bouton "OK", ni les formulaires indépendants. Les messages d'erreur restent eux aussi affichés ATTENTION
NOTES
page 12
reproduction réservée
E E.. R RÉ ÉP PO ON NS SE ES SA AU UX XÉ ÉV VÉ ÉN NE EM ME EN NTTS S Dans les formulaires ou états, ACCESS reconnaît certaines manipulations comme événements :
Le déplacement d'un enregistrement à un autre Le double clic sur un contrôle L'ouverture ou fermeture d'un formulaire Accéder à un complément d'informations à partir d'un bouton Pour l'objet concerné, dans la liste des propriétés, rechercher celle de l'événement auquel doit être associée l'action ou la suite d'actions. RÉPONSE : <CLIC G> DANS LA CASE DE LA PROPRIÉTÉ PROCÉDURE
OUVRIR LA LISTE DÉROULANTE CONTENANT LES NOMS DES MACROS SÉLECTIONNER LE NOM DE LA MACRO
Si la macro à choisir fait partie d'un groupe de macros, indiquer le nom du groupe suivi d'un point, puis du nom de la macro INFORMATION
Écrire au préalable une macro contenant les actions à déclencher pour l'événement. Puis, définir la propriété de l'événement CONSEIL
1 RÉPONSES AUX ÉVÉNEMENTS POUR UN FORMULAIRE LIBELLE
ACTION
SUR ACTIVATION
EXÉCUTE UNE MACRO CHAQUE FOIS QU'UN NOUVEL ENREGISTREMENT EST ACTIVÉ.
AVANT INSERTION
LORSQUE L'UTILISATEUR TAPE LE PREMIER CARACTÈRE D'UN NOUVEL ENREGISTREMENT. AVANT LA CRÉATION EFFECTIVE.
APRÈS INSERTION
APRÈS L'AJOUT D'UN NOUVEL ENREGISTREMENT.
AVANT MAJ
AVANT QU'ACCESS ACCEPTE UNE MODIFICATION
APRÈS MAJ
APRÈS QU'ACCESS AIT ACCEPTÉ UNE MODIFICATION
SUR SUPPRESSION
DÈS DEMANDE DE SUPPRESSION D'ENREGISTREMENT, MAIS AVANT
AVANT SUPPRESSION
APRÈS SUPPRESSION D'UN OU PLUSIEURS ENREGISTREMENTS, MAIS AVANT AFFICHAGE DE LA BOÎTE DE DIALOGUE DE CONFIRMATION.
APRÈS SUPPRESSION
APRÈS CONFIRMATION ET SUPPRESSION DES ENREGISTREMENTS OU APRÈS ANNULATION DE LA SUPPRESSION.
SUR OUVERTURE
APRÈS OUVERTURE DU FORMULAIRE, MAIS AVANT AFFICHAGE DU PREMIER ENREGISTREMENT.
CHARGEMENT
LORSQU'UN FORMULAIRE EST OUVERT ET AFFICHE DES ENREGISTREMENTS.
SUR LIBÉRATION
APRÈS FERMETURE DU FORMULAIRE, MAIS AVANT QUE LE FORMULAIRE DISPARAISSE DE L'ÉCRAN.
NOTES
Edition I O S
page 13
LIBELLE
ACTION
SUR REDIMENSIONNEMENT
LORSQU'UN FORMULAIRE EST OUVERT OU REDIMENSIONNÉ.
SUR FERMETURE
APRÈS LIBÉRATION DU FORMULAIRE MAIS AVANT QU'IL NE DISPARAISSE DE L'ÉCRAN.
SUR ACTIVÉ
LORSQU'UN FORMULAIRE EST ACTIVÉ ET DEVIENT LA FENÊTRE ACTIVE.
SUR DÉSACTIVÉ
LORSQU'UN FORMULAIRE EST DÉSACTIVÉ AU PROFIT D'UNE AUTRE FENÊTRE TABLE, REQUÊTE, ETAT, MODULE, MACRO OU BASE DE DONNÉES.
SUR RÉCEPTION FOCUS
LORSQU’UN FORMULAIRE EST ACTIVÉ
SUR PERTE FOCUS
LORSQU’UN FORMULAIRE EST DÉSACTIVÉ
SUR CLIC
Lorsqu'un formulaire est ouvert ou redimensionné.
SUR DOUBLE CLIC
APRÈS FERMETURE DU FORMULAIRE, MAIS AVANT QUE LE FORMULAIRE DISPARAISSE DE L'ÉCRAN.
APERÇU DES TOUCHES
SI LES PROCÉDURES ÉVÉNEMENTIELLES DE CLAVIER AU NIVEAU DU FORMULAIRE SONT APPELÉES AVANT CELLES DES CONTRÔLES.
SUR ERREUR
LORSQU'UNE ERREUR D'EXÉCUTION SE PRODUIT DANS ACCESS ALORS QU'UN FORMULAIRE EST ACTIVÉ.
SUR MINUTERIE
SE PRODUIT POUR UN FORMULAIRE À INTERVALLES RÉGULIERS DONNÉ PAR INTERVALLE MINUTERIE.
INTERVALLE MINUTERIE
SPÉCIFIE L'INTERVALLE EN MILLISECONDES ENTRE DES ÉVÉNEMENTS MINUTERIE.
Lorsque l'on ouvre un formulaire, les événements suivant se produisent dans cet ordre : ÉVÉNEMENT
PROPRIÉTÉ DE TYPE ÉVÉNEMENT
OUVERTURE
Sur Ouverture
EXÉCUTE LA MACRO OU LA PROCÉDURE ÉVÉNEMENTIELLE LORSQUE VOUS OUVREZ LE FORMULAIRE, MAIS AVANT QUE LE PREMIER ENREGISTREMENT SOIT AFFICHÉ.
CHARGEMENT
Sur Chargement
LORSQUE VOUS OUVREZ LE FORMULAIRE ET QUE SES ENREGISTREMENTS SONT AFFICHÉS.
REDIMENSIONNEMENT
Sur Redimensionnement
LORSQUE VOUS AFFICHEZ LE FORMULAIRE POUR LA PREMIÈRE FOIS. CET ÉVÉNEMENT SE PRODUIT ÉGALEMENT LORSQUE LA TAILLE DU FORMULAIRE EST MODIFIÉE.
ACTIVÉ
Sur Activé
LORSQUE LE FORMULAIRE DEVIENT LA FENÊTRE ACTIVE.
ACTIVATION
Sur Activation
LORSQUE VOUS OUVREZ LE FORMULAIRE POUR LA 1ÈRE FOIS ET QUE SES ENREGTS SONT AFFICHÉS, MAIS AVANT QUE LE 1ER ENREGT SOIT EN COURS. CET ÉVÉNEMENT SE PRODUIT ÉGALEMENT LORSQUE LE FOCUS PASSE D'UN ENREGT À UN AUTRE.
NOTES
page 14
reproduction réservée
Lorsque l'on ferme un formulaire, les événements suivants se produisent dans cet ordre : ÉVÉNEMENT
PROPRIÉTÉ DE TYPE EVT
EXÉCUTE LA MACRO OU LA PROCÉDURE ÉVT
LIBÉRATION
Sur Libération
LORSQUE LE FORMULAIRE EST FERMÉ ET QUE SES ENREGISTREMENTS SONT LIBÉRÉS, MAIS AVANT QUE LE FORMULAIRE DISPARAISSE DE L'ÉCRAN.
DÉSACTIVATION
Sur Désactivation
FERMETURE FORMULAIRE. ET AUSSI LORSQUE VOUS PASSEZ À UNE AUTRE FENÊTRE DANS
ACCESS.
FERMETURE
Sur Fermeture
FERMETURE FORMULAIRE ET QU'IL DISPARAÎT DE L'ÉCRAN.
Lorsque du passage d'un formulaire ouvert à l'autre, l'événement Désactivation associé au premier formulaire se produit, puis l'événement Activé associé au second formulaire se produit. L'événement Désactivation associé à un formulaire se produit également lorsque vous passez du formulaire à une autre fenêtre dans ACCESS. Toutefois, l'événement Désactivation ne se produit pas lorsque vous passez à une boîte de dialogue, à un formulaire dont la propriété FenIndépendante est définie sur Oui ou à une fenêtre d'une autre application. L'événement Minuterie associé à un formulaire se produit à intervalles réguliers, comme spécifié par la propriété IntervalleMinuterie du formulaire. Les événements associés aux contrôles et aux enregistrements se produisent lorsque vous passez d'un enregistrement du formulaire à un autre et modifiez des données. Lorsque l'on ouvre un formulaire pour la première fois, les événements suivants se produisent dans cet ordre : 1.
OUVERTURE (ASSOCIÉ AU FORMULAIRE)
2.
CHARGEMENT (ASSOCIÉ AU FORMULAIRE)
3.
REDIMENSIONNEMENT (ASSOCIÉ AU FORMULAIRE)
4.
ACTIVÉ (ASSOCIÉ AU FORMULAIRE)
5.
ACTIVATION (ASSOCIÉ AU PREMIER ENREGISTREMENT DU FORMULAIRE)
6.
ENTRÉE (ASSOCIÉ AU PREMIER CONTRÔLE DU FORMULAIRE)
7.
RÉCEPTIONFOCUS (ASSOCIÉ AU PREMIER CONTRÔLE DU FORMULAIRE)
Lorsque l'on ferme un formulaire, les événements suivants se produisent : 1.
SORTIE (ASSOCIÉ AU CONTRÔLE QUI A LE FOCUS)
2.
PERTEFOCUS (ASSOCIÉ AU CONTRÔLE QUI A LE FOCUS)
3.
LIBÉRATION (ASSOCIÉ AU FORMULAIRE)
4.
DÉSACTIVATION (ASSOCIÉ AU FORMULAIRE)
5.
FERMETURE (ASSOCIÉ AU FORMULAIRE)
NOTES
Edition I O S
page 15
INFORMATION
Si vous avez modifié des données dans un contrôle, les événements AVANTMAJ et APRÈSMAJ associés au contrôle et à l'enregistrement se produisent avant les événements SORTIE et PERTEFOCUS associés au contrôle et les événements Libération, Désactivation et Fermeture associés au formulaire LES SOUS-FORMULAIRES : Lors de l'ouverture d'un formulaire contenant un sous-formulaire, le sous-formulaire et ses enregistrements sont chargés avant le formulaire principal. Ainsi les événements associés au sous-formulaire et à ses contrôles (par exemple, Ouvrir, Activation, Entrée et RéceptionFocus) se produisent avant les événements associés au formulaire. L'événement Activé ne se produit pas pour les sous-formulaires; l'ouverture d'un formulaire contenant un sous-formulaire ne déclenche donc aucun événement Activé pour le sousformulaire (mais provoque un événement Activé associé au formulaire) Lors de la fermeture d'un formulaire contenant un sous-formulaire, le sous-formulaire et ses enregistrements sont libérés après le formulaire. L'événement Désactivation ne se produit pas pour les sous-formulaires; la fermeture d'un formulaire contenant un sousformulaire ne déclenche donc aucun événement Désactivation associé au formulaire (mais déclenche un événement DÉSACTIVATION associé au formulaire). Les événements associés aux contrôles, formulaire et sous-formulaire se produisent dans l'ordre suivant : 1.
ÉVÉNEMENTS ASSOCIÉS AUX CONTRÔLES DU SOUS-FORMULAIRE
2.
ÉVÉNEMENTS ASSOCIÉS AUX CONTRÔLES DU FORMULAIRE (y compris au contrôle du sous-formulaire)
3.
ÉVÉNEMENTS ASSOCIÉS AU FORMULAIRE (EXEMPLE : DÉSACTIVATION ET FERMETURE)
4.
ÉVÉNEMENTS ASSOCIÉS AU SOUS-FORMULAIRE
REMARQUE : Si la macro ou procédure événementielle effectue une action ATTEINDRECONTRÔLE ou ATTEINDREENREGISTREMENT en réponse à un événement Ouverture, l'événement Activation se produit. L'événement ACTIVATION se produit également lorsque l'on rafraîchit ou lance une requête de nouveau sur la table ou la requête sous-jacente d'un formulaire. Par exemple, lorsque l'on choisit dans le menu ENREGISTREMENTS la commande AFFICHER TOUS LES ENREGISTREMENTS ou utilisez l'action ACTUALISER dans une macro ou la méthode REQUERY dans du code Access Basic. L'événement OUVERTURE ne se produit pas lorsque de l'ouverture d'un formulaire déjà ouvert par exemple, lorsque du passage à ce formulaire depuis une autre fenêtre de ACCESS ou de l'utilisation de l'action OUVRIRFORMULAIRE dans une macro pour amener au premier plan le formulaire ouvert. Lorsque de l'ouverture d'un formulaire, ACCESS exécute la requête sous-jacente associée au formulaire avant d'exécuter la macro ou la procédure événementielle Ouverture.
NOTES
page 16
reproduction réservée
2 RÉPONSES AUX ÉVÉNEMENTS POUR UN ÉTAT Lorsque vous ouvrez un état pour l'imprimer ou en afficher un aperçu, puis le refermez ou passez à une autre fenêtre ACCESS, les événements suivants se produisent dans cet ordre : EVÉNEMENT
PROPRIÉTÉ DE TYPE ÉVÉNEMENT
EXÉCUTE LA MACRO OU LA PROCÉDURE ÉVÉNEMENTIELLE
OUVERTURE
Sur Ouverture
LORSQUE VOUS OUVREZ L'ÉTAT, MAIS AVANT QU'IL SOIT AFFICHÉ OU IMPRIMÉ.
ACTIVÉ
Sur Activé
LORSQUE L'ÉTAT DEVIENT LA FENÊTRE ACTIVE.
DÉSACTIVATION
Sur Désactivation
LORSQUE VOUS PASSEZ À UNE AUTRE FENÊTRE DANS ACCESS OU QUE VOUS FERMEZ L'ÉTAT.
FERMETURE
Sur Fermeture
LORSQUE VOUS FERMEZ L'ÉTAT ET QU'IL DISPARAÎT DE L'ÉCRAN.
Lors du passage d'un état ouvert à un autre, l'événement Désactivation associé au premier état se produit, puis l'événement Activé se produit pour le second état. L'événement Désactivation associé à un état se produit également lorsque vous passez de l'état à une autre fenêtre ACCESS. Toutefois, l'événement Désactivation ne se produit pas lors du passage à une boîte de dialogue, à un formulaire dont la propriété FenIndépendante est définie sur Oui ou à une fenêtre d'une autre application. Lors de l'ouverture d'un état, ACCESS exécute la macro ou la procédure événementielle Ouverture avant d'exécuter la requête sous-jacente associée à l'état. Il est possible ainsi de définir les critères de l'état à partir de la macro ou la procédure événementielle. (Par exemple, vous pouvez utiliser la macro ou la procédure événementielle pour ouvrir une boîte de dialogue personnalisée dans laquelle vous entrez les critères de l'état). Lors de l'impression ou de l'aperçu d'un état, les événements suivants se produisent pour les sections de l'état après les événements Ouverture et Activé associés à l'état et avant ses événements Désactivation ou Fermeture. ÉVÉNEMENT FORMATAGE
PROPRIÉTÉ DE TYPE
EXÉCUTE LA MACRO OU LA PROCÉDURE
ÉVÉNEMENT
ÉVÉNEMENTIELLE
AuFormatage
LORSQU'ACCESS A SÉLECTIONNÉ LES DONNÉES DE CETTE SECTION, MAIS AVANT QUE LES DONNÉES NE SOIENT FORMATÉES POUR L'IMPRESSION OU L'APERÇU.
IMPRESSION
Sur Impression
UNE FOIS QUE ACCESS A FORMATÉ LES DONNÉES DE LA SECTION POUR L'IMPRESSION OU L'APERÇU, MAIS AVANT QUE LA SECTION SOIT IMPRIMÉE OU QUE SON APERÇU SOIT AFFICHÉ.
NOTES
Edition I O S
page 17
En outre, l'événement Reformatage se produit lorsqu'ACCESS retourne à la section précédente de l'état pendant sa mise en forme. Dans certains cas, ACCESS doit retourner à une section précédente de l'état afin de déterminer la position de certains contrôles et sections, et de savoir s'ils pourront tenir dans un espace donné. Par exemple : Les niveaux de regroupement (à l'exception des en-têtes et pieds de page) dont la propriété SectionInsécable est définie sur Groupe entier ou Avec Premier Détail. Les sous-formulaires ou les sous-états dont les propriétés AutoExtensible et/ou AutoRéductible sont définies sur Oui. Les sections situées sur la dernière page d'un état.
INFORMATION
L'événement FORMATAGE se produit lorsqu'ACCESS détermine comment les sections tiendront sur la page imprimée (aucun événement Impression ne survient car les sections ne sont pas encore imprimées). S'il est impossible d'imprimer les sections, ACCESS retourne à l'endroit approprié pour pouvoir les imprimer sur la page suivante. L'événement AUREFORMATAGE porte sur toutes les sections situées après celle à laquelle ACCESS retourne. L'événement AUFORMATAGE se reproduit pour chaque section qu'ACCESS se prépare à réimprimer. Par exemple, lorsqu'ACCESS atteint la fin de la dernière page lorsqu'il met en forme l'état, l'événement AUREFORMATAGE se produit pour chaque section précédente jusqu'à ce qu'ACCESS atteigne la première section en haut de la dernière page. L'événement Formatage se produit alors à nouveau pour chaque section de la page, suivi par les événements Impression
3 RÉPONSES AUX ÉVÉNEMENTS SOURIS Si vous appuyez sur un bouton de la souris, puis le relâchez, alors que le pointeur de la souris se trouve dans un contrôle d'un formulaire, les événements suivants associés au contrôle se produisent dans cet ordre. EVÉNEMENT
PROPRIÉTÉ DE TYPE
EXÉCUTE LA MACRO OU LA PROCÉDURE
ÉVÉNEMENT
ÉVÉNEMENTIELLE
SUR SOURIS APPUYÉE
SurSourisAppuyée
Lorsque vous appuyez sur le bouton de la souris.
SUR SOURIS DÉPLACÉE
SurSourisDéplacée
Lorsque vous déplacez la souris.
SUR SOURIS RELÂCHÉE
SurSourisRelâchée
Lorsque vous relâchez le bouton de la souris.
CLIC
SurClic
Lorsque vous appuyez sur le bouton gauche de la souris, puis le relâchez. Cet événement ne se produit pas si vous cliquez sur le bouton droit de la souris.
Le pointeur peut apparaître sous la forme d'une flèche ou d'une barre verticale au point d'insertion dans une zone de texte ou une zone de liste modifiable INFORMATION
NOTES
page 18
reproduction réservée
Si un contrôle a le focus et que vous cliquez sur un autre contrôle pour y déplacer le focus, les événements suivants se produisent : 1
SORTIE (ASSOCIÉ AU PREMIER CONTRÔLE)
2
PERTEFOCUS (ASSOCIÉ AU PREMIER CONTRÔLE)
3
ENTRÉE (ASSOCIÉ AU SECOND CONTRÔLE)
4
RÉCEPTIONFOCUS (ASSOCIÉ AU SECOND CONTRÔLE)
5
SOURISAPPUYÉE (ASSOCIÉ AU SECOND CONTRÔLE)
6
SOURISRELÂCHÉE (ASSOCIÉ AU SECOND CONTRÔLE)
7
CLIC (ASSOCIÉ AU SECOND CONTRÔLE)
REMARQUE : Lors d'un <CLIC G> sur un contrôle d'un autre enregistrement, l'événement Activation associé au nouvel enregistrement se produit également après l'événement PERTEFOCUS associé au premier contrôle. L'événement CLIC d'un groupe d'options se produit lors de la modification de la valeur de l'un des contrôles du groupe d'options en cliquant sur ce contrôle. Par exemple, lors d'un CLIC sur un bouton bascule, un bouton d'options ou une case à cocher dans le groupe d'options, l'événement CLIC associé au groupe d'options se produit après les événements AVANTMAJ et APRÈSMAJ associés au groupe d'options. L'événement CLIC d'un bouton de commande se produit lors du choix du bouton de commande. En outre, si le bouton de commande n'a pas encore le focus au moment où il est choisi, les événements ENTRÉE et RÉCEPTIONFOCUS lui étant associés se produisent avant l'événement CLIC. L'événement DOUBLECLIC associé à un contrôle se produit lors d'un <DOUBLE CLIC> sur le contrôle, mais avant que le résultat de cette action ne se produise (par exemple, avant que ACCESS sélectionne le mot sur lequel se trouve le point d'insertion dans une zone de texte). Si le contrôle n'a pas encore le focus lorsque vous cliquez deux fois dessus, les événements ENTRÉE et RÉCEPTIONFOCUS associés au contrôle se produisent avant l'événement DOUBLECLIC. Lorsque d'un <double clic> sur un bouton de commande, les événements suivants se produisent dans cet ordre : 1
SOURISAPPUYÉE
2
SOURISRELÂCHÉE
3
CLIC
4
DOUBLECLIC
5
SOURISRELÂCHÉE
6
CLIC
NOTES
Edition I O S
page 19
REMARQUE : Le second CLIC peut n'avoir aucun effet (par exemple, si la macro CLIC ouvre une boîte de dialogue modale en réponse au premier événement CLIC). Pour empêcher l'exécution de la seconde macro ou procédure événementielle CLIC, placez une action ANNULEREVÉNEMENT dans la macro DOUBLECLIC ou utilisez l'argument Annuler dans la procédure événementielle DOUBLECLIC. Si vous cliquez deux fois sur un autre contrôle situé en regard d'un bouton de commande, le second événement CLIC n'a pas lieu. Si l'événement DOUBLECLIC ne se produit pas pendant le délai accordé au double clic par le système, le contrôle interprète le double clic en tant que deux événements CLIC distincts et non comme un seul événement DOUBLECLIC. Le délai accordé au DOUBLE CLIC dépend du paramètre Vitesse du DOUBLE CLIC défini dans la section Souris du Panneau de configuration de Windows. L'événement SourisDéplacée associé à un contrôle se produit lorsque vous déplacez le pointeur de la souris au-dessus du contrôle. Cet événement est indépendant des autres événements de souris. REMARQUE : Pour provoquer un événement de souris associé à un formulaire, appuyez sur le bouton de la souris ou déplacez le pointeur de la souris sur une zone vierge, le sélecteur d'enregistrements ou la barre de défilement. Pour provoquer un événement de souris associé à une section de formulaire, appuyez sur le bouton de la souris ou déplacez le pointeur de la souris sur une zone vierge de la section de formulaire après avoir sélectionné cette section. Pour sélectionner une section de formulaire, cliquez sur l'en-tête de cette section.
FF.. LLE ES SO OB BJJE ETTS S 1 TRAITER UN OBJET OUVRIR : - OuvrirRequête, (DoCmd.OpenQuery) - OuvrirEtat, (DoCmd.OpenReport) - OuvrirFormulaire, (DoCmd.OpenForm) - OuvrirTable.(DoCmd.OpenTable) Pour les actions d'ouverture d'objets, laisser la propriété Visible sur Oui, pour l'ouverture et affichage de l'objet INFORMATION
Arguments de l'action : nom de l'objet mode d'affichage. mode de données sera à définir en Modification, Ajout ou Lecture seule. mode fenêtre à définir en Standard (mode de données), Masquée, Icône (sous forme d'icône en bas à gauche) ou boîte de dialogue.
NOTES
page 20
reproduction réservée
FERMER (DOCMD.CLOSE) : Permet de fermer un objet préalablement ouvert. L'argument Type objet sera TABLE, REQUÊTE, FORMULAIRE, ETAT, MACRO ou MODULE. L'argument Nom objet sera choisi dans la liste déroutante et déterminera l'objet à fermer. L’argument Enregistrer sera Avec confirmation, Oui, Non. AGRANDIR (DOCMD.MAXIMIZE) La fenêtre de l'objet occupera la totalité de l'écran, en couvrant les autres. REDUIRE (DOCMD.MINIMIZE) : Permet de réduire une fenêtre sous forme d'icône. Cela permet de libérer la surface de l'écran sans avoir à fermer puis à ouvrir l'objet de nouveau pour de nouvelles manipulations. SELECTIONNEROBJET (DOCMD.SELECTOBJECT) : Sélectionne l'objet désigné pour permettre d'agir dessus. Un objet masqué devient visible. REDESSINEROBJET (DOCMD.REPAINTOBJECT) : Actualise un objet lorsque des calculs ont eu lieu dans des contrôles de l'objet actif. N'agit pas sur les enregistrements, mais sur les objets et contrôles présents à l'écran. RESTAURER (DOCMD.RESTORE) Permet de redonner sa taille initiale à une fenêtre précédemment redimensionnée. DEPLACERDIMENSIONNER (DOCMD.MOVESIZE) : Détermine la taille et l'emplacement d'une fenêtre active. L'unité de mesure est le centimètre (métrique) : Droite(Nouvelle position horizontale de l'angle supérieur gauche de la fenêtre par rapport au bord gauche de la fenêtre) ; Bas (Nouvelle position verticale de l'angle supérieur gauche de la fenêtre par rapport au bord supérieur de la fenêtre) ; Largeur (Nouvelle largeur) ; Hauteur (Nouvelle hauteur de la fenêtre).
NOTES
Edition I O S
page 21
2 IMPRIMER UN OBJET Les macros peuvent permettre l'impression d'un objet.
REMARQUE : L'argument IMPRIMER permet de choisir entre TOUTES, SÉLECTION et PAGES. Les arguments DE LA PAGE et A LA PAGE pour la sélection partielle ou totale de l'objet. L'argument COPIES détermine le nombre d'exemplaires à imprimer. L'argument COPIES TRIÉES imprime les feuilles en vrac d'une manière plus rapide.
3 EXÉCUTER DU CODE DANS DES OBJETS Il est possible d'exécuter dans les objets des routines Access Basic , des instructions SQL ou des macros. EXECUTERMACRO (DOCMD.RUNMACRO) : Exécute une macro, qui peut faire partie d'un groupe de macros. ARGUMENT
DESCRIPTION
NOM MACRO :
NOM DE LA MACRO À EXÉCUTER. LA LISTE DÉROUTANTE DE LA SECTION ARGUMENTS DE L'ACTION DANS LA FENÊTRE MACRO, AFFICHE TOUTES LES MACROS (ET TOUS LES GROUPES DE MACROS) DE LA BASE DE DONNÉES EN COURS. SI LA MACRO FAIT PARTIE D'UN GROUPE DE MACROS, ELLE S'AFFICHE COMME SUIT DANS LA LISTE : GROUPEMACRO.NOMMACRO.
RÉPÉTER COMPTE :
NOMBRE D'EXÉCUTIONS MAXIMUM DE LA MACRO. SI CET ARGUMENT EST VIERGE (AINSI QUE L'ARGUMENT RÉPÉTER EXPRESSION), LA MACRO N'EST EXÉCUTÉE QU'UNE SEULE FOIS.
RÉPÉTER
EXPRESSION DONT LE RÉSULTAT EST VRAI OU FAUX. L'EXÉCUTION DE LA MACRO EST INTERROMPUE SI L'EXPRESSION EST FAUSSE. L'EXPRESSION EST ÉVALUÉE CHAQUE FOIS QUE LA MACRO EST EXÉCUTÉE.
EXPRESSION :
NOTES
page 22
reproduction réservée
EXECUTERCODE : Exécute une procédure FUNCTION Visual Basic. ARGUMENT
DESCRIPTION
ACTION
NOM FONCTION :
NOM DE LA PROCÉDURE FUNCTION À EXÉCUTER. LES ARGUMENTS DE LA FONCTION DOIVENT ÊTRE ENTRE PARENTHÈSES. NE PAS PRÉCÉDER LE NOM DE LA FONCTION D'UN SIGNE ÉGAL (=).
REMARQUE : Pour sélectionner une fonction à l'aide du Générateur d'expression, cliquez sur le bouton Générateur à droite de la zone d'argument puis sélectionnez Générateur d'expression dans la boîte de dialogue Choisir Générateur. Dans la liste, choisissez ensuite une fonction. Pour exécuter une procédure événementielle ou une procédure SUB, créez une procédure FUNCTION qui appelle l'une des deux. Utilisez ensuite l'action EXÉCUTERCODE pour exécuter la procédure FUNCTION. EXECUTERCOMMANDE: Pour exécuter une des commandes intégrées d’ACCESS. La commande peut apparaître sur une barre de menus, une barre d'outils ou un menu contextuel d’ACCESS. ARGUMENT DE L'ACTION
DESCRIPTION
COMMANDE :
NOM DE LA COMMANDE QUE VOUS SOUHAITEZ EXÉCUTER. LA ZONE COMMANDE AFFICHE, PAR ORDRE ALPHABÉTIQUE, LES COMMANDES INTÉGRÉES DISPONIBLES DANS ACCESS. CET ARGUMENT EST OBLIGATOIRE.
EXECUTERAPPLICATION : Exécute une application Microsoft Windows ou MS-DOS, telle que Microsoft Excel, Microsoft Word pour Windows ou Microsoft PowerPoint, à partir de ACCESS. ARGUMENT DE L'ACTION LIGNE COMMANDE :
DESCRIPTION Ligne de commande utilisée pour démarrer l'application (y compris le nom du chemin d'accès et tout autre paramètre nécessaire, tel que les commutateurs qui exécutent l'application dans un mode particulier).
EXECUTERSQL (DOCMD.RUNSQL) : Exécute une requête action ACCESS en utilisant l'instruction SQL correspondante. ARGUMENT DE L'ACTION
DESCRIPTION
INSTRUCTION SQL :
Instruction SQL pour la requête action ou de définition de données à exécuter (max 256 caractères)
UTILISER LA
Choisissez Oui pour inclure cette requête dans une transaction, ou Non si vous ne souhaitez pas utiliser de transaction.
TRANSACTION:
NOTES
Edition I O S
page 23
Pour une instruction SQL de plus de 256 caractères, utilisez l'action EXÉCUTERSQL de Visual Basic. Les instructions SQL peuvent comporter jusqu'à 32 768 caractères. REQUÊTE ACTION AJOUT CRÉATION DE TABLE MISE À JOUR SUPPRESSION
INSTRUCTION SQL INSERT INTO SELECT...INTO UPDATE DELETE
G G.. G GÉ ÉR RE ER R LLE ES SD DO ON NN NÉ ÉE ES S Il est possible d'atteindre des enregistrements spécifiques, de les filtrer selon des critères ou des valeurs ou d'en rechercher. ATTEINDRECONTROLE (SETFOCUS) : Active le champ ou le contrôle spécifié dans la feuille de données du formulaire, dans celle de la table, dans la feuille de réponses dynamique de la requête ou dans le formulaire ouvert. L'action ATTEINDRECONTRÔLE peut être utilisée pour afficher un sous-formulaire, qui est un type de contrôle. L'action ATTEINDREENREGISTREMENT peut être ensuite utilisée pour afficher un enregistrement dans le sous-formulaire. On peut aussi se placer dans un contrôle de sousformulaire en utilisant l'action ATTEINDRECONTRÔLE pour atteindre d'abord le sous-formulaire puis le contrôle. ATTEINDREPAGE (DOCMD.GOTOPAGE) : Cette action est utilisée pour sélectionner le premier contrôle (selon l'ordre de tabulation du formulaire) de la page spécifiée. Utilisez l'action ATTEINDRECONTRÔLE pour atteindre un contrôle du formulaire. On peut utiliser cette action dans un formulaire avec des sauts de page qui regroupent des informations connexes. Par exemple, avoir un formulaire Employés avec des informations personnelles sur une page, des informations professionnelles sur une autre page et des informations relatives aux ventes sur une troisième. L'action ATTEINDREPAGE permet d'afficher la page souhaitée EXEMPLE
ATTEINDREENREGISTREMENT (DOCMD.GOTORECORD) : Sélectionne l'enregistrement désigné ou un nouvel enregistrement.Si un contrôle est activé dans un enregistrement, cette action active le même contrôle dans le nouvel enregistrement. Utilisez le paramètre Nouveau de l'argument Enregistrement pour atteindre l'enregistrement vierge à la fin d'un formulaire ou d'une table et y entrer des données. Cette action revient à choisir, dans le menu Enregistrement, la commande Atteindre. Les souscommandes Premier, Dernier, Suivant, Précédent et Nouveau ont sur l'objet sélectionné le même effet que les options Premier, Dernier, Suivant, Précédent et Nouveau de l'argument Enregistrement. Il est possible d'utiliser l'action ATTEINDREENREGISTREMENT pour activer un enregistrement de formulaire masqué, à condition de spécifier ce dernier dans les arguments Type objet et Nom objet INFORMATION
ACTUALISER (DOCMD.REQUERY) : Met à jour les données d'un contrôle spécifié dans l'objet actif en actualisant la source de la liste. Si aucun contrôle n'est spécifié, cette action actualise la source de l'objet lui-même.
NOTES
page 24
reproduction réservée
APPLIQUERFILTRE (DOCMD.APPLYFILTER) : Applique un filtre, une requête ou une clause WHERE SQL à une table, un formulaire ou un état pour limiter ou trier les enregistrements de la table, ou ceux de la table ou de la requête sousjacente de l'état ou du formulaire. S'il s'agit d'un état, vous ne pouvez utiliser cette action que dans une macro spécifiée par la propriété Sur ouverture de l'état. Nom filtre : Nom d'un filtre ou d'une requête qui filtre ou trie les enregistrements de la table, du formulaire ou de l'état. Nom d'une requête existante ou d'un filtre enregistré sous forme de requête. Condition Where : Clause WHERE SQL (sans le terme WHERE) ou expression qui filtre l'affichage des enregistrements de la table, du formulaire ou de l'état. AFFICHERTOUSENREG (DOCMD.SHOWALLRECORDS) : Supprime tout filtre de la table, de la feuille de réponses dynamique ou du formulaire actif, et affiche tous les enregistrements de la table ou de la feuille dynamique ou de la table ou de la requête sous-jacente du formulaire. Elle équivaut à la commande AFFICHER TOUS LES ENREGISTREMENTS du menu ENREGISTREMENTS. TROUVERENREGISTREMENT (DOCMD.FINDRECORD) : Recherche l'enregistrement suivant qui correspond aux critères spécifiés par les arguments. Vous pouvez rechercher des enregistrements dans la feuille de données de la table, du formulaire, de la feuille de réponses dynamique de la requête ou du formulaire actif. Equivaut à la commande RECHERCHER du menu EDITION. TROUVERSUIVANT (DOCMD.FINDNEXT) : Recherche l'enregistrement suivant qui répond aux critères spécifiés par l'action TROUVERENREGISTREMENT précédente ou dans la boîte de dialogue Rechercher de la commande RECHERCHER. Si vous avez attribué le paramètre Champ en cours à l'argument Rechercher dans de l'action TROUVERENREGISTREMENT, vous devrez sans doute utiliser l'action ATTEINDRECONTRÔLE pour activer le contrôle contenant les données recherchées avant d'utiliser l'action TROUVERSUIVANT.
H H.. A AR RR RÊ ÊTTE ER RU UN NE EM MA AC CR RO O Plusieurs instructions stoppent la macro en cours. QUITTER (DOCMD.QUIT) : Quitte ACCESS. Vous avez le choix entre plusieurs options pour enregistrer les objets de la base de données. OPTIONS
DESCRIPTION
AVEC CONFIRMATION :
pour enregistrer toutes les modifications en demandant confirmation.
ENREGISTRER TOUT :
pour enregistrer tous les objets sans demander confirmation.
QUITTER :
pour quitter sans enregistrer les objets.
ARRETMACRO : Termine l'exécution d'une macro sans quitter le logiciel ACCESS. On peut utiliser une expression conditionnelle dans la ligne d'action de la macro qui contient cette action. Restitue l'affichage de l'écran si l'action Echo a été précédemment activée. ARRETTOUTESMACROS : Suite à une condition, il est possible de déclencher l'arrêt de l'intégralité des macros actuellement en cours d'exécution. Restitue l'affichage de l'écran si l'action Echo a été précédemment activée.
Edition I O S
page 25
NOTES
page 26
reproduction réservée
III. CRÉER DES APPLICATIONS Une application, dans Access, est une base de données que l'on a automatisée avec des macros afin de créer un environnement fermé dans lequel l'utilisateur peut évoluer en toute sécurité et sans savoir-faire particulier. On peut fabriquer ainsi des applications internes à l'entreprise ou à diffusion plus large.
A A.. D DÉ ÉM MA AR RR RA AG GE EA AU UTTO OM MA ATTIIQ QU UE E 1 AUTOEXEC Une macro spéciale, appelée AutoExec, permet d'exécuter une action ou une série d'actions lorsque votre base de données est ouverte pour la première fois. Quand vous ouvrez une base de données, Microsoft Access recherche une macro de ce nom et, s'il en trouve une, l'exécute automatiquement. Souvent cette macro ouvre un formulaire général (menu principal) comportant des boutons associés à des macros. Tous les formulaires et états de l'application sont liés entre eux grâce aux macros. Le formulaire de départ devra être construit en premier, puis en créant la macro AUTOEXEC on ajoutera l'action OUVRIRFORMULAIRE avec comme argument le nom du-dit formulaire. CRÉER UNE MACRO DE DÉMARRAGE : CRÉER LA MACRO-COMMANDE PROCÉDURE AJOUTER LES ACTIONS À EXÉCUTER À L'OUVERTURE DE LA BASE ENREGISTRER LA MACRO SOUS LE NOM "AUTOEXEC"
INFORMATION
On peut utiliser cette macro pour créer une zone de travail personnalisée, importer des données provenant d'une autre base de données ou imprimer un état journalier n'importe quelle tâche que vous souhaitez exécuter chaque fois que vous ouvrez la base de données
Pour empêcher l'exécution de la macro AUTOEXEC, maintenez la touche <MAJ> enfoncée lorsque vous ouvrez la base de données CONSEIL
On peut exécuter une macro au lancement de ACCESS en utilisant l'option de ligne de commande /X <MACRO> INFORMATION
2 OPTIONS DE DÉMARRAGE Les options de démarrage permettent aussi de définir les caractéristiques de l'application lors de son lancement. OPTIONS DE DEMARRAGE : PROCÉDURE
MENU OUTILS DÉMARRAGE DÉFINIR LES OPTIONS POUR VALIDER
NOTES
Edition I O S
page 27
B B..
LLA AB BA AR RR RE ED DE EM ME EN NU US S
Un système de menu peut permettre à l'utilisateur de naviguer aisément dans l'application.
1 CRÉER UN MENU PERSONNALISE
PROCÉDURE
<CLIC D> DANS LES BARRES D'OUTILS PERSONNALISER
MENU AFFICHAGE BARRE D'OUTILS PERSONNALISER
ONGLET
<CLIC G> SUR POUR VALIDER
La barre s'affiche dans la liste des barres et elle est sélectionnée <CLIC G> SUR DANS LA ZONE TYPE, SÉLECTIONNER BARRE DE MENUS :
DÉFINIR LES AUTRES PROPRIÉTÉ <CLIC G> SUR FERMER La propriété BARREMENUS (MENUBAR) du formulaire Commandes a pour paramètre Barre de menus commandes, qui est le nom de la barre de menus personnalisée INFORMATION
page 28
reproduction réservée
La nouvelle barre de menus se trouve maintenant derrière la boîte de dialogue Personnaliser. Pour voir la nouvelle barre de menus, déplacez la boîte de dialogue Personnaliser sur le côté INFORMATION
PROCÉDURE
COMPLÉTER LA BARRE DE MENUS : AJOUTEZ DES MENUS PERSONNALISÉS AJOUTEZ UN MENU INTÉGRÉ
2 AJOUTER UN MENU PERSONNALISE DANS UNE BARRE Quel que soit la nature de la barre des menus, un menu personnalisé peut lui être rajouté.
PROCÉDURE
<CLIC D> DANS LES BARRES D'OUTILS PERSONNALISER
MENU AFFICHAGE BARRE D'OUTILS PERSONNALISER
COCHEZ LA BARRE DE MENUS À LAQUELLE VOUS VOULEZ AJOUTER UN MENU PERSONNALISÉ
<CLIC G> SUR L'ONGLET DANS LA ZONE CATÉGORIES, <CLIC G> SUR FAIRE GLISSER DEPUIS LA ZONE COMMANDES VERS LA BARRE <CLIC D> SUR LE NOUVEAU MENU DANS LA BARRE DE MENUS OU LA BARRE D'OUTILS SAISIR UN NOM DANS LA ZONE POUR VALIDER
INFORMATION
Pour afficher un menu contextuel particulier, activez la barre Menus contextuels, cliquez sur la catégorie du menu contextuel que vous voulez afficher, puis cliquez sur le nom du menu contextuel. Pour afficher un menu contextuel quelconque, cliquez sur la catégorie Personnalisé
NOTES
Edition I O S
page 29
3 AJOUTER UN MENU INTÈGRE DANS UNE BARRE Les barres d'outils se personnalisent de la même manière que les menus.
PROCÉDURE
<CLIC D> DANS LES BARRES D'OUTILS PERSONNALISER
MENU AFFICHAGE BARRE D'OUTILS PERSONNALISER
AJOUTEZ DES COMMANDES DÉPLACEZ OU COPIEZ DES COMMANDES D'AUTRES MENUS
4 AJOUTER UNE COMMANDE A UN MENU
PROCÉDURE
<CLIC D> DANS LES BARRES D'OUTILS PERSONNALISER
MENU AFFICHAGE BARRE D'OUTILS PERSONNALISER
AFFICHEZ LA BARRE DE MENUS À LAQUELLE VOUS VOULEZ AJOUTER UNE COMMANDE <CLIC G> SUR L'ONGLET POUR AJOUTER UNE COMMANDE PAR DÉFAUT <CLIC G> SUR LA CATÉGORIE DE MENU OU D'AFFICHAGE APPROPRIÉE
UNE COMMANDE AFFICHANT UN FORMULAIRE, un état ou un autre objet de base de données dans son mode par défaut <CLIC G> SUR UN DES ÉLÉMENTS SUIVANTS : TOUTES LES TABLES, TOUTES LES REQUÊTES, TOUS LES FORMULAIRES, TOUS LES
UN BOUTON EXÉCUTANT UNE MACRO <CLIC G> SUR TOUTES LES MACROS
ÉTATS
FAIRE GLISSER LA COMMANDE DEPUIS LA ZONE COMMANDES VERS LA BARRE DE MENUS
INFORMATION
Vous pouvez également ajouter une commande qui exécute une fonction Visual Basic. Si vous ajoutez une commande dans un menu (par exemple, le menu Edition), cette commande apparaît dans tous les modes comportant ce menu
NOTES
page 30
reproduction réservée
5 DÉPLACER OU COPIER UNE COMMANDE DE MENU
PROCÉDURE
<CLIC D> DANS LES BARRES D'OUTILS PERSONNALISER
MENU AFFICHAGE BARRE D'OUTILS PERSONNALISER
AFFICHEZ LA BARRE DE MENUS À LAQUELLE VOUS VOULEZ AJOUTER UNE COMMANDE SI VOUS COPIEZ OU DÉPLACEZ LA COMMANDE VERS UNE AUTRE BARRE DE MENUS, AFFICHEZ-LA ÉGALEMENT <CLIC G> SUR LE MENU DANS LA BARRE DE MENUS OU <CLIC G> SUR LE MENU CONTEXTUEL QUI CONTIENT LA COMMANDE À COPIER OU À DÉPLACER <CTRL> ENFONCÉ, FAIRE GLISSER LA COMMANDE VERS LE MENU À L'ENDROIT OÙ VOUS VOULEZ L'INSÉRER POUR LA COPIER POUR DÉPLACER LA COMMANDE, IDEM SANS <CTRL>
6 ATTACHER UNE BARRE DE MENUS PERSONNALISÉE A UN FORMULAIRE OU UN ÉTAT La barre de menus personnalisée remplace la barre de menus intégrée du formulaire ou de l'état.
PROCÉDURE
ATTACHER UNE BARRE : CRÉEZ LA BARRE DE MENUS OUVREZ LE FORMULAIRE OU L'ÉTAT EN MODE CRÉATION CLIQUEZ SUR LE SÉLECTEUR EN MODE CRÉATION <CLIC G> SUR
angle haut - gauche
DANS LA BARRE D'OUTILS
ONGLET LIGNE BARRE DE MENUS (MENUBAR), SÉLECTIONNER LE NOM DE LA BARRE
DANS LA BASE "COMPTOIR 03" CRÉER UNE BARRE DE MENUS GÉNÉRALE RASSEMBLANT PAR CATÉGORIE LES FORMULAIRES ET ETATS (COMMANDES, CLIENTS, PRODUITS) ET L'ATTACHER À CHACUN DES FORMULAIRES EXERCICE
NOTES
Edition I O S
page 31
C C.. LLA AB BA AR RR RE ED D''O OU UTTIILLS S Comme les barres de menu, les barres d'outils doivent être personnalisées pour optimiser l'ergonomie de l'application.
1 CRÉER UNE BARRE D’OUTILS PERSONNALISÉE
PROCÉDURE
<CLIC D> DANS LES BARRES D'OUTILS PERSONNALISER
MENU AFFICHAGE BARRE D'OUTILS PERSONNALISER
COCHEZ LA BARRE DE MENUS OU LA BARRE D'OUTILS OÙ VOUS VOULEZ AJOUTER UN MENU PERSONNALISÉ
<CLIC G> SUR L'ONGLET <CLIC G> SUR SAISIR LE NOM SOUHAITÉ
<CLIC G> SUR RENSEIGNER LES PROPRIÉTÉS POUR VALIDER
NOTES
page 32
reproduction réservée
2 AJOUTER UN OUTIL A LA BARRE
PROCÉDURE
<CLIC D> DANS LES BARRES D'OUTILS PERSONNALISER
MENU AFFICHAGE BARRE D'OUTILS PERSONNALISER
AFFICHEZ LA BARRE D'OUTILS À LAQUELLE VOUS VOULEZ AJOUTER UNE COMMANDE <CLIC G> SUR L'ONGLET POUR AJOUTER UNE COMMANDE PAR DÉFAUT <CLIC G> SUR LA CATÉGORIE DE MENU OU D'AFFICHAGE APPROPRIÉE
UNE COMMANDE AFFICHANT UN FORMULAIRE, un état ou un autre objet de base de données dans son mode par défaut <CLIC G> SUR UN DES ÉLÉMENTS SUIVANTS : TOUTES LES TABLES, TOUTES LES REQUÊTES, TOUS LES FORMULAIRES, TOUS LES
UN BOUTON EXÉCUTANT UNE MACRO <CLIC G> SUR TOUTES LES MACROS
ÉTATS
FAIRE GLISSER LA COMMANDE DEPUIS LA ZONE COMMANDES VERS LA BARRE D'OUTILS Pour ajouter rapidement un bouton qui ouvre un objet de base de données, faites glisser l'objet depuis la fenêtre Base de données vers la barre d'outils INFORMATION
Vous pouvez également ajouter des boutons qui exécutent des fonctions Visual Basic AVANCÉ
3 DÉPLACER OU COPIER UN OUTIL
PROCÉDURE
MENU AFFICHAGE BARRE D'OUTILS PERSONNALISER
<CLIC D> DANS LES BARRES D'OUTILS PERSONNALISER AFFICHEZ LA BARRE DE MENUS, DONT VOUS VOULEZ DÉPLACER OU COPIER UN DES OUTILS, AINSI QUE LA BARRE D'OUTILS VERS LAQUELLE VOUS VOULEZ DÉPLACER OU COPIER L'OUTIL <CLIC G> SUR L'OUTIL DANS LA BARRE D'OUTILS QUI CONTIENT L'OUTIL À COPIER OU À DÉPLACER <CTRL> ENFONCÉ, FAIRE GLISSER SUR L'OUTIL VERS LA BARRE D'OUTILS À L'ENDROIT OÙ VOUS VOULEZ L'INSÉRER POUR LA COPIER <ALT> enfoncé (en plus de <CTRL>), et Si la boîte de dialogue n'est pas ouverte POUR DÉPLACER LA COMMANDE, IDEM SANS <CTRL> <ALT> enfoncé, et Si la boîte de dialogue n'est pas ouverte
NOTES
Edition I O S
page 33
4 CRÉER UNE BARRE D'OUTILS A PARTIR D'UNE MACRO
PROCÉDURE
INFORMATION
DANS LA FENÊTRE BASE DE DONNÉES : <CLIC G> SUR L'ONGLET MACROS <CLIC G> SUR LE NOM DE LA MACRO POUR LAQUELLE VOUS VOULEZ CRÉER UNE BARRE D'OUTILS MENU OUTILS MACRO <CLIC G> SUR ACCESS ne supprime pas la macro d'origine (ou les macros si vous utilisez une macro de barre de menus et les groupes de macros de menus associés) après avoir créé la barre d'outils. La nouvelle barre d'outils dépend toujours de la ou des macros d'origine, à l'exception des macros qui contiennent uniquement des actions AJOUTERMENU ou EXÉCUTERCOMMANDE (anciennement EXÉCUTERÉLÉMENTMENU
5 ATTACHER LA BARRE D'OUTILS Une fois attachée, la barre d'outils remplace la barre d'outils intégrée du formulaire ou de l'état.
PROCÉDURE
ATTACHER UNE BARRE : CRÉEZ LA BARRE D'OUTILS OUVREZ LE FORMULAIRE OU L'ÉTAT EN MODE CRÉATION CLIQUEZ SUR LE SÉLECTEUR EN MODE CRÉATION <CLIC G> SUR
angle haut - gauche
DANS LA BARRE D'OUTILS
ONGLET LIGNE BARRE OUTILS (TOOLBAR), SÉLECTIONNER LE NOM DE LA BARRE
DANS LA BASE "COMPTOIR XP" CRÉER UNE BARRE D'OUTILS GÉNÉRALE PROPOSANT LES DIFFÉRENTS FORMULAIRES ET ETATS (COMMANDES, CLIENTS, PRODUITS) ET L'ATTACHER À CHACUN DES FORMULAIRES EXERCICE
NOTES
page 34
reproduction réservée
D D.. A AFFFFE EC CTTA ATTIIO ON ND DE ES S TTO OU UC CH HE ES SD DE ER RA AC CC CO OU UR RC CII Bien qu'il soit moins utile avec les interfaces ergonomiques actuelles, le raccourci, même s'il est nécessaire de le mémoriser, permet cependant d'aller très vite. OPTIONS DU CLAVIER : PROCÉDURE
MENU OUTILS OPTIONS ONGLET
PROCÉDURE
MENU AFFICHAGE BARRE D'OUTILS <CLIC D> DANS LES BARRES D'OUTILS PERSONNALISER PERSONNALISER <CLIC D> SUR L'OUTIL AUQUEL UN RACCOURCI DOIT ÊTRE ASSOCIÉ
LIGNE INDIQUER LE RACCOURCI
NOTES
Edition I O S
page 35
AUTOKEYS Une macro, nommée AUTOKEYS gère l'ouverture de la base.
NOTES
page 36
reproduction réservée
COMBINAISONS DE TOUCHES AUTORISÉES
Pour spécifier les combinaisons de touches, il faut utiliser un sous-ensemble de la syntaxe de l’action ENVOITOUCHES (SENDKEYS). INFORMATION
ENVOITOUCHES (SENDKEYS) : Envoie une ou plusieurs frappes de touches à la fenêtre active comme s'il s'agissait d'une entrée directe au clavier. Le premier argument détermine la série de touches, tandis que le second argument détermine le temps d'attente avant d'agir.
NOTES
Edition I O S
page 37
E E.. IIM MP PO OR RTTA ATTIIO ON N // E EX XP PO OR RTTA ATTIIO ON N Access permet l'échange avec d'autres bases de données ou d'autres types de logiciels (tableurs, trt de texte…). Les commandes d'importation et d'exportation gèrent ces transferts. TRANSFERERBASE : Importe ou exporte des données entre la base de données ACCESS en cours et une autre base de données. On peut aussi attacher une table à la base de données ACCESS en cours depuis une autre base de données. Lorsqu'une table est attachée, vous pouvez accéder aux données de la table alors que la table elle-même reste dans une autre base de données.
TRANSFERER DANS LA BASE "COMPTOIR" LA BASE "CLIENTS.DBF" SOUS LE NOM DE TABLE "NOUVEAUX CLIENTS"
EXERCICE
NOTES
page 38
reproduction réservée
ARGUMENT ACTION
DESCRIPTION
TYPE TRANSFERT
Type du transfert à effectuer. Sélectionnez Importation, Exportation ou Attache dans la liste déroutante de la section Arguments de l'action de la fenêtre Macro. Le paramètre par
TYPE BASE
Type de la base de données à partir de laquelle importer, vers laquelle exporter, ou à laquelle attacher une table. Vous pouvez sélectionner ACCESS ou un des autres types de bases de données dans la liste déroutante. Voir la description complète des bases de données disponibles dans la rubrique de l'Aide sur la commande Importer ( menu Fichier). Le type par défaut est ACCESS.
NOM BASE
Nom de la base de données à partir de laquelle importer, dans laquelle exporter ou à laquelle attacher une table. Incluez le nom de chemin d'accès complet. Cet argument est obligatoire. Pour les types de bases de données tels que PARADOX et DBASE qui utilisent des fichiers différents pour chaque table, entrez le nom du répertoire contenant le fichier voulu. Entrez le nom du fichier dans l'argument Source (pour l'importer ou l'attacher) ou dans l'argument Destination (pour l'exporter)
TYPE OBJET
Type de l'objet à importer ou à exporter. Si vous sélectionnez Microsoft Access dans l'argument Type base, vous pouvez sélectionner Table, Requête, Formulaire, Etat, Macro ou Module dans la liste déroutante. Si vous sélectionnez un autre type de base de données ou choisissez, pour l'argument Type transfert, l'option Attacher, Type objet est ignoré. Le paramètre par défaut est Table. Si vous exportez une requête Sélection vers une base de données ACCESS, sélectionnez Table pour transférer sa feuille de réponses dynamique, et Requête pour transférer la requête elle-même. Si vous exportez la requête vers un autre type de base de données, cet argument n'est pas pris en compte et c'est la feuille de réponses qui est transférée.
SOURCE
Nom de la table, de la requête Sélection ou de l'objet Microsoft Access à importer, exporter ou attacher. Pour certains types de bases de données, tels que PARADOX ou DBASE, il s'agit d'un nom de fichier. Incluez l'extension du nom du fichier (par exemple .DBF). Cet argument est obligatoire.
DESTINATION
Nom de la table, de la requête Sélection ou de l'objet Microsoft Access importé, exporté ou attaché dans la base de données destination. Pour certains types de bases de données, tels que PARADOX ou DBASE, il s'agit d'un nom de fichier. Incluez l'extension du nom du fichier (par exemple .DBF). Cet argument est obligatoire.
STRUCTURE SEULEMENT
Spécifie si vous importez ou exportez uniquement la structure d'une table de base de données sans aucune de ses données. Sélectionnez Oui ou Non (paramètre par défaut)
NOTES
Edition I O S
page 39
TRANSFERERFEUILLECALCUL (DOCMD.TRANSFERTSPREADSHEET) : L'échange avec un tableur (Excel…) est possible en importation et en exportation.
TRANSFÉRER DANS LA BASE "COMPTOIR" SOUS LE NOM "ANCIENS CLIENTS" LA PLAGE "DONNÉES" DU CLASSEUR "CLIENTS.XLS"
EXERCICE
ARGUMENTS Le premier argument désigne le type de transfert (Importation ou exportation). Le second argument désigne le type de feuille de calcul (Excel, Lotus WKS, WK1,3). Le troisième argument indique le nom de la table ACCESS concernée par l'action. Le quatrième argument indique le nom du fichier contenant la feuille de calcul. Le cinquième argument précise si la première ligne de la feuille de calcul contient des noms de champs à utiliser comme noms de champs de la table ACCESS. Le dernier argument précise si l'importation porte sur la feuille entière (case vide) ou sur une plage de cellules désignée (A1:F8).
NOTES
page 40
reproduction réservée
TRANSFERERTEXTE (DOCMD.TRANSFERTTEXT): Permet d'échanger des données entre un fichier texte et une base de données ACCESS. Ce transfert pourra agir sur des enregistrements de données à longueur fixe ou séparées par des délimiteurs. Le format d'échange peut être défini avec la commande PARAMÈTRES D'IMPORT/EXPORT du menu FICHIER. Si une table existante de la base de données contient des champs identiques ou similaires, choisissez Remplir la grille de paramétrage à partir d'une table et spécifiez le nom de la table dont ACCESS doit remplir les colonnes.
ARGUMENTS Le premier argument spécifie le type de transfert et le format du texte à traiter. Le second argument décrit le format du fichier s'il est de longueur fixe. Le troisième argument indique le nom de la table ACCESS. Le quatrième argument indique le nom du fichier texte. Le cinquième argument précise si la première ligne de la feuille de calcul contient des noms de champs à utiliser comme noms de champs de la table ACCESS.
NOTES
Edition I O S
page 41
NOTES
page 42
reproduction réservée
IV. ADMINISTRER UNE BASE DE DONNÉES Une base de données peut être utilisée par plusieurs personnes ; dans ce cas, il est nécessaire de faire en sorte qu'une mauvaise manipulation ne vienne pas remettre en cause l'intégrité des données. Avant la création d'une base de données, il est nécessaire de faire un schéma fonctionnel mettant en évidence les échanges d'informations : Détail des spécifications utilisateurs Détail de la structure des tables Définition de leur contenu Définition des différents objets et leurs liens (formulaires, états et requêtes) Détail des macros et requêtes automatiques à associer aux objets de la base de données (Access Basic) Choix des couleurs, formes, caractéristiques de présentation de l'application Définition des niveaux d'accès aux utilisateurs Définition des méthodes de contrôle de cohérence des données Définition des systèmes de sécurité d'accès. Définition une méthode d'analyse des performances de la base de données Définition une méthode de sauvegarde, d'archivage et de réparation de la base de données. L'administrateur de la base va, entre autres, prendre en charge la gestion des accès, la protection des données et leur sauvegarde INFORMATION
A A.. S SÉ ÉC CU UR RIITTÉ É La sécurité englobe toutes les mesures nécessaires à la protection des informations contenues dans la base de données. Elle garantit l'accès aux utilisateurs autorisés, sans altération ou destruction des données. La protection des informations constitue une étape importante dans la création d'une base de données ACCESS. Lorsqu'une base de données est protégée, vous pouvez contrôler l'accès d'un utilisateur ou d'un groupe aux objets de base de données. SÉCURITÉ : PROCÉDURE
MENU OUTILS SÉCURITÉ
NOTES
Edition I O S
page 43
La gestion de la sécurité de ACCESS comprend les éléments suivants que vous devez créer pour obtenir une protection complète : groupes de travail comptes d'utilisateur et de groupe droit de propriété affectation des autorisations
INFORMATION
Par défaut, lorsque le système n'est pas protégé, l'utilisateur est considéré comme administrateur avec toutes les habilitations souhaitées. Dans une configuration protégée, chaque utilisateur autorisé à accéder à la base de données, détient un nom utilisateur, un numéro d'identification, et un mot de passe. Les utilisateurs sont regroupés dans un ensemble nommé groupe. Les droits d'accès seront les mêmes pour toutes les personnes du groupe Deux groupes distincts existent dès la création de la base, et ne peuvent être supprimés. UTILISATEURS :
Sont en charge de la mise à jour des données de la base.
ADMINISTRATEURS :
utilisateurs chargés de la maintenance de la base. Comprend au minimum le compte Administrateur.
Pour chaque objet de la base de données, un niveau d'affectation sera affecté à chaque groupe ou utilisateur. ACCESS combine les autorisations accordées à un utilisateur avec celles accordées aux groupes auxquels appartient cet utilisateur. Cependant, dans la boîte de dialogue Autorisations d'accès ne s'affichent que les autorisations accordées individuellement. Un utilisateur peut donc disposer pour un objet de plus d'autorisations que n'en affiche le logiciel. Si par exemple un utilisateur dispose pour une table de l'autorisation Lire les données, mais qu'il appartienne à un groupe doté de l'autorisation Modifier les données, ACCESS lui accorde pour cette table les deux autorisations Lire et Modifier les données. Pourtant, la boîte de dialogue Autorisations d'accès n'affiche que l'autorisation Lire les données. Le fichier SYSTEM.MDW contient toutes ces informations. Il est codé pour le protéger des accès importuns AVANCÉ
1 PROTÉGER LA BASE OUVRIR LA BASE EN MODE EXCLUSIF : MENU FICHIER PROCÉDURE
SÉLECTIONNER LE DOSSIER <CLIC G> SUR LE FICHIER
<CLIC G> EN BAS À DROITE SUR
DE
<CLIC G> SUR
NOTES
page 44
reproduction réservée
PROTÉGER LA BASE : PROCÉDURE
LA BASE ÉTANT OUVERT EN MODE EXCLUSIF MENU OUTILS SÉCURITÉ SAISIR LE MOT DE PASSE LE CONFIRMER POUR VALIDER
2 UTILISATEURS Si la base n'est pas protégée, tous les utilisateurs sont considérés comme administrateurs avec tous les droits. Il n'y a alors pas de mots de passe. CRÉER UN NOUVEL UTILISATEUR : PROCÉDURE
MENU OUTILS SÉCURITÉ ONGLET
<CLIC G> SUR POUR VALIDER
NOTES
Edition I O S
page 45
ASSIGNER UN UTILISATEUR A UN GROUPE : PROCÉDURE
MENU OUTILS SÉCURITÉ ONGLET SÉLECTIONNER L'UTILISATEUR DANS LA LISTE DÉROULANTE UTILISER
POUR INSCRIRE L'UTILISATEUR À UN GROUPE POUR VALIDER
AFFECTER UN MOT DE PASSE ADMINISTRATEUR: PROCÉDURE
MENU OUTILS SÉCURITÉ ONGLET SAISIR L'ANCIEN MOT DE PASSE SAISIR LE NOUVEAU MOT DE PASSE LE CONFIRMER POUR VALIDER
NOTES
page 46
reproduction réservée
3 GROUPES Les groupes réunissent un ensemble d'utilisateurs ayant les mêmes droits. Un utilisateur peut être inscrit dans plusieurs groupes. CRÉER UN NOUVEAU GROUPE: PROCÉDURE
MENU OUTILS SÉCURITÉ ONGLET
<CLIC G> SUR POUR VALIDER
Par défaur existent les groupes "administrateurs" et "utilisateurs" INFORMATION
Le nouveau groupe est maintenant proposé dans l'onglet
.
INFORMATION
4 PROTECTION Entre administrateur et utilisateur, des niveaux de protection intermédiaires peuvent être définis, régissant les droits des utilisateurs sur les objets. PROTECTION : PROCÉDURE
MENU OUTILS SÉCURITÉ
ONGLET
<CLIC G> SUR L'UTILISATEUR <CLIC G> SUR L'OBJET COCHER OU DÉCOCHER LES CASES D'AUTORISATION ACCEPTER L'ENREGISTREMENT RECOMMENCER L'OPÉRATION POUR CHAQUE COUPLE UTILISATEUR/OBJET À MODIFIER POUR VALIDER
NOTES
Edition I O S
page 47
AUTORISATION
ACTION AUTORISÉE
S'APPLIQUE À
OUVRIR/EXÉCUTER
Ouvrir une base de données, un formulaire ou un état ou exécuter une macro.
Bases, formulaires, états ou macros.
OUVRIR EN EXCLUSIF
Ouvrir une base de données avec accès exclusif.
Bases de données.
LIRE LA STRUCTURE
Afficher des objets en mode Création.
Tables, requêtes, formulaires, états, macros et modules.
MODIFIER LA
Afficher et modifier les objets, ou les effacer.
Tables, requêtes, formulaires, états, macros et modules.
ADMINISTRER
Accéder sans restriction aux objets et données, avec faculté d'attribuer les autorisations.
Tables, requêtes, formulaires, états, macros et modules.
LIRE LES DONNÉES
Afficher des données.
Tables et requêtes.
MODIFIER LES
Afficher et modifier des données, sans pouvoir en ajouter ni en supprimer.
Tables et requêtes.
Afficher et ajouter des données, sans pouvoir en modifier ni en supprimer.
Tables et requêtes.
Afficher et supprimer des données, sans pouvoir en modifier ni en ajouter.
Tables et requêtes.
STRUCTURE
DONNÉES
AJOUTER DES DONNÉES
SUPPRIMER DES DONNÉES
Penser à conserver dans un endroit sûr, la liste des utilisateurs et de leurs mots de passe CONSEIL
NOTES
page 48
reproduction réservée
5 AFFICHAGE DES INFORMATIONS DE SÉCURITÉ Après avoir créé des comptes utilisateur et groupe dans le cadre de la protection d'une base de données, on peut imprimer un état des comptes du groupe de travail. IMPRESSION DES INFOS DE SÉCURITÉ : LANCEZ ACCESS AVEC LE GROUPE DE TRAVAIL DONT ON VEUT CONSULTER LES INFORMATIONS DE PROCÉDURE
SÉCURITÉ OUVRIR UNE BASE DE DONNÉES MENU OUTILS SÉCURITÉ ONGLET
<CLIC G> SUR ACCESS désactive cette commande si on ne fait pas partie du groupe Administrateurs
AVANCÉ
Dans la boîte de dialogue Imprimer sécurité, sélectionnez Utilisateurs uniquement pour imprimer un état des utilisateurs membres d'un groupe spécifique, ou Groupes uniquement pour un état des groupes auxquels est affilié un utilisateur spécifique. Sélectionnez Utilisateurs et groupes pour imprimer les informations relatives aux utilisateurs et aux groupes
6 ASSISTANT GROUPE DE TRAVAIL Il permet de créer un nouveau groupe de travail et de lui associer un fichier .MDW . ASSISTANT SÉCURITÉ : PROCÉDURE
OUVRIR UNE BASE DE DONNÉES MENU OUTILS SÉCURITÉ SUIVRE LES INSTRUCTIONS DE L'ASSISTANT
Edition I O S
page 49
B B.. C CO OM MP PA AC CTTE ER RU UN NE EB BA AS SE E Au fur et à mesure de l'utilisation de la base (ouverture, création, modification, saisie, suppression), le fichier se fragmente sur le disque. De plus, si des enregistrements ont été supprimés, de l'espace inutile est occupé et accédé, ce qui augmente le volume de la base et ralentit les opérations. Il est recommandé de compacter régulièrement la base de données. COMPACTAGE DE LA BASE : PROCÉDURE
BASE FERMÉE MENU OUTILS UTILITAIRES DE BASE DE DONNÉES SÉLECTIONNER LA BASE DE DONNÉES
<CLIC G> SUR SAISIR LE NOM DE LA BASE COMPACTÉE
<CLIC G> SUR
Il est impératif qu'aucun utilisateur ne travaille sur la base
ATTENTION
INFORMATION
Il est possible de nommer la base compactée avec le même nom que celle d'origine, ou bien avec un nouveau nom. Dans le premier de ces cas, la base d'origine sera supprimée. Dans le second, deux bases distinctes et identiques existeront
Le compactage doit disposer du double de la taille de la base de données afin d'effectuer correctement le traitement. Access effectue une copie optimisée de la base d'origine qui existe alors en double. S'il n'y a pas assez de place sur le disque, le compactage échouera ATTENTION
INFORMATION
Si vous avez supprimé des enregistrements à la fin d'une table contenant un champ NuméroAuto, le compactage de la base de données remet à zéro la valeur du champ NuméroAuto ; la valeur de ce champ dans le prochain enregistrement que vous ajouterez sera supérieure d'une unité à la valeur de ce champ dans le dernier enregistrement non supprimé de la table COMPACTER LA BASE COMPTOIR 03- APPELER LA NOUVELLE BASE "COMPTOIR BIS" VÉRIFIER AVEC L'EXPLORATEUR OU DANS LE POSTE DE TRAVAIL LE GAIN DE TAILLE
EXERCICE
NOTES
page 50
reproduction réservée
C C.. R RÉ ÉP PA AR RE ER RA AC CC CE ES SS S En cas de coupure du système ou de fermeture incorrecte du logiciel ACCESS, la base en cours peut être endommagée ou contenir des incohérences. Si l'erreur est détectée à l'ouverture de la base de données, le logiciel vous informe de la nécessité d'une réparation. En répondant par l'affirmatif, la base sera réparée puis ouverte.
CONSEIL
De la même manière, Si l'application ne redémarre pas correctement après une coupure, il est souhaitable de copier la dernière sauvegarde de la base dans le dossier de travail (en conservant la précédente) puis de procéder à une réparation des fichiers programme de Access à partir du panneau de configuration RÉPARATION DES PROGRAMMES : FAIRE UNE SAUVEGARDE DE LA BASE puis TOUTES APPLICATIONS FERMÉES
PROCÉDURE
ALLER DANS LE PANNEAU DE CONFIGURATION
<CLIC G> SUR
<CLIC G> SUR <CLIC G> SUR OFFICE (OU ACCESS)
<CLIC G> SUR
<CLIC G> SUR Si la réinstallation ne donne pas de résultat, supprimer ACCESS en choisissant le bouton CONSEIL
AU LIEU DE (PROCÉDURE AU DESSUS) RÉINSTALLER ACCESS SI POSSIBLE AU MÊME ENDROIT (même PRÉCÉDENTE INSTALLATION
unité logique, même dossier) QUE LA
NOTES
Edition I O S
page 51
D D.. S SA AU UV VE EG GA AR RD DE ER RU UN NE EB BA AS SE E Les seules sauvegardes que vous pouvez être amenés à effectuer sur une base de données concernent la structure de la base et ses différents composants (tables, requêtes, formulaires, états, pages…). Ces sauvegardes sont effectuées lors de la création de la structure de la base ou lors de sa modification.
INFORMATION
CONSEIL
Dans une base de données, chaque enregistrement de la base fonctionne un peu comme un fichier Word ou Excel à la différence que les modifications sont automatiquement prises en compte, sans aucun besoin d'enregistrer
une base de données est une entité vivante qui est en perpétuelle évolution. Pour être certain de ne pas perdre des informations en cas de problème, Il est indispensable d'effectuer une sauvegarde de cette base, sauvegarde qui va prendre une image de la base de données à un moment donné; Ces sauvegardes doivent être régulières (quotidiennes si possible) et automatisées (on n'a pas toujours le temps de faire la sauvegarde) et il est impératif de conserver l'historique des sauvegardes Il est d'une imprudence inqualifiable d'utiliser une base de données sans procéder à des sauvegardes régulières
ATTENTION
IL FAUT SAUVEGARDER AU MOINS DANS LES CAS SUIVANTS : Création d'objets ou modifications de leur structure Modifications importantes de données dont le résultat est incertain Ajout, l'importation ou la modification d'un grand nombre de données SAUVEGARDER UNE BASE DE DONNÉES : PROCÉDURE
FERMER LA BASE DE DONNÉES SÉLECTIONNER LE FICHIER .MDB DE BASE DE DONNÉES <FAIRE GLISSER> CE FICHIER DU DOSSIER D'ORIGINE SUR LE SUPPORT DE SAUVEGARDE DANS LE POSTE DE TRAVAIL OU DANS L'EXPLORATEUR SI LE FICHIER EST TROP GROS UTILISER UN SYSTÈME DE SAUVEGARDE SUR BANDE (RECOMMANDÉ) SI POSSIBLE AUTOMATISER CETTE SAUVEGARDE (AUX HEURES DE NON UTILISATION)
Créer une sauvegarde de la base de données du groupe de travail : C:\Windows\System\System.mdw, dans lequel ACCESS enregistre les options CONSEIL
NOTES
page 52
reproduction réservée
V. VISUAL BASIC Ce langage fonctionne avec les objets ACCESS, mais permet de personnaliser les commandes et d'automatiser les manipulations. Visual Basic nécessite l'écriture d'un code, construit par unités appelées procédures stockées dans des modules qui consistent en une série d'instructions permettant d'effectuer un traitement ou un calcul. La barre d'outils "module" affiche les principaux outils nécessaires à la conception des modules.
D'autres barres d'outils viennent épauler l'utilisateur pour des tâches plus spécifiques
Il existe deux types de procédures : FUNCTION :
acceptent zéro, un ou plusieurs arguments et renvoient une valeur pouvant être utilisée dans une expression.
SUB :
Idem mais ne peuvent pas être utilisées dans une expression.
A A.. LLE ES SM MO OD DU ULLE ES S Le module contient le code lié aux bases de données d'ACCESS. C'est un ensemble de déclarations, d'instructions et de procédures Visual Basic. Une base peut contenir plusieurs modules qui peuvent chacun regrouper des procédures. Les modules d'état ou de formulaires contiennent du code propre à un état ou un formulaire. A moins qu'elles ne soient explicitement réservées aux modules dans lesquels elles apparaissent, les procédures de modules globaux sont reconnues et peuvent être appelées par des procédures d'autres modules de la base de données. Chaque module est constitué d'une section unique appelée déclaration qui contient par défaut les instructions OPTION COMPARE DATABASE et OPTION EXPLICIT INFORMATION
NOTES
Edition I O S
page 53
NOUVEAU MODULE : PROCÉDURE
DANS LA FENÊTRE PRINCIPALE DE LA BASE DE DONNÉES <CLIC G> SUR L'OBJET (volet de gauche)
<CLIC G> SUR L'OUTIL
PROCÉDURE
AJOUTER UN MODULE : <CLIC G> SUR (BARRE D'OUTILS STANDARD - PRINCIPALE) ou MENU INSERTION
AFFICHER LE CODE D'UN MODULE : PROCÉDURE
DANS LA FENÊTRE PRINCIPALE DE LA BASE DE DONNÉES <CLIC G> SUR L'OBJET (volet de gauche)
<DOUBLE CLIC> SUR LE MODULE À OUVRIR LE VOLET DE DROITE AFFICHE LE CODE DU MODULES OUVERT
NOTES
page 54
reproduction réservée
Les paramètres du code permettent de définir les options générales. PARAMÈTRES DU CODE : PROCÉDURE
MENU OUTILS OPTIONS ONGLET RENSEIGNER LA BOITE DE DIALOGUE POUR VALIDER
OPTION EXPLICIT Utilisez l'instruction OPTION EXPLICIT pour éviter toute faute de frappe lors de la saisie du nom d'une variable existante ou pour écarter tout risque de confusion dans un code où la portée de la variable n'apparaît pas clairement. Elle peut être automatiquement incluse si positionné la déclaration des variables dans les options de module. OPTION COMPARE DATABASE L'instruction OPTION COMPARE DATABASE ne peut être utilisée que dans Microsoft Access. Elle fournit des comparaisons de chaînes basées sur l'ordre de tri déterminé par l'identificateur de paramètres régionaux de la base de données dans laquelle la comparaison de chaînes est effectuée. Option Compare Text L'instruction OPTION COMPARE TEXT fournit des comparaisons de chaînes basées sur un ordre de tri qui ne distingue pas les majuscules des minuscules et qui est déterminé par les paramètres régionaux de votre système.
NOTES
Edition I O S
page 55
ENREGISTREMENT DU MODULE : <CLIC G> SUR PROCÉDURE
Si le module est nouveau ou a été modifié, ACCESS propose automatiquement de l'enregistrer à la fermeture du module INFORMATION
PROCÉDURE
AFFICHER SIMULTANÉMENT 2 PROCÉDURES DIFFÉRENTES D'UN MÊME MODULE : <FAIRE GLISSER> LE CURSEUR DE FRACTIONNEMENT EN HAUT ET À GAUCHE DE L'ASCENSEUR VERTICAL :
B B.. C CR RE EA ATTIIO ON ND D''U UN NE EP PR RO OC CÉ ÉD DU UR RE E Les programmes Visual Basic sont composés de fonctions et de procédures que l'on peut activer de manière indépendante. (il n'y a pas la notion de programme principal comme dans les autres langages de développement). C'est un formulaire ou un état qui sert de programme principal en utilisant les fonctions comme expressions. AJOUTER UNE PROCÉDURE : PROCÉDURE
<CLIC G> SUR ou
de
MENU INSERTION
INDIQUER LE TYPE DE PROCÉDURES NOMMER LA PROCÉDURE POUR VALIDER
NOTES
page 56
reproduction réservée
La procédure est insérée automatiquement dés validation Pour une fonction
Pour une sous-procédure
Il est maintenant possible d'écrire la procédure avec les commandes de Visual Basic. La procédure pourra être utilisée dans n'importe quel objet, dès lors qu'une entrée ou une propriété de l'objet exige une expression. une seule fonction peut être introduite par propriété ou événement
ATTENTION
C C.. C CR RE EA ATTIIO ON ND D''U UN NE EP PR RO OC CÉ ÉD DU UR RE EÉ ÉV VÉ ÉN NE EM ME EN NTTIIE ELLLLE E Une procédure événementielle est une procédure "Sub" appelée automatiquement en réponse à un événement. Pour créer une procédure événementielle, il faut d'abord déterminer l'événement (clic de souris, mise à jour enregistrement…) dont la propriété de type événement va déclencher la procédure événementielle.
PROCÉDURE
CRÉER UNE PROCÉDURE ÉVÉNEMENTIELLE : OUVRIR UN FORMULAIRE OU UN ÉTAT EN MODE CRÉATION, La totalité du formulaire ou de l'état est sélectionné par défaut, mais on peut limiter la procédure événementielle à un seul contrôle <CLIC D> ou OUTIL PROPRIÉTÉS la feuille de propriétés du formulaire, de l'état ou du contrôle s'affiche SÉLECTIONNEZ L'ONGLET , SÉLECTIONNEZ L'ÉVÉNEMENT QUI VA DÉCLENCHER LA PROCÉDURE ÉVÉNEMENTIELLE ET OUVREZ SA LISTE DÉROULANTE SÉLECTIONNEZ
Edition I O S
page 57
PROCÉDURE
SAISIR LA PROCÉDURE ÉVÉNEMENTIELLE : <CLIC G> SUR LE BOUTON GÉNÉRATEUR POUR AFFICHER LA FENÊTRE MODULE SAISIR LA PROCÉDURE ÉVÉNEMENTIELLE ENTRE LA LIGNE SUB ET LA LIGNE END SUB SAUVEGARDEZ LES MODIFICATIONS APPORTÉES AU MODULE
Lorsque le formulaire ou l'état est ouvert, chaque occurrence de l'événement provoquera l'appel de la procédure événementielle INFORMATION
D D.. C CR RE EA ATTIIO ON ND D''U UN NE EP PR RO OC CÉ ÉD DU UR RE EP PO OU UR R P PA AR RA AM MÉ ÉTTR RE ER RD DE ES SP PR RO OP PR RIIÉ ÉTTÉ ÉS SD D''O OB BJJE ETTS S Tous les contrôles ainsi que les sections, les formulaires et les états possèdent des propriétés dont les paramètres peuvent être définis en vue de déterminer leur apparence ou leur comportement. Pour définir les propriétés des contrôles, sections, formulaires et états, utiliser une procédure Visual Basic (Les propriétés de la plupart des tables et des requêtes peuvent également être définies de la même façon) Pour définir une propriété d'un formulaire, d'un état ou d'un contrôle à l'aide de CODEDANS une procédure SUB, une procédure FUNCTION, une procédure événementielle ou dans la fenêtre d'exécution, utiliser les syntaxes suivantes : Pour définir une propriété d'un formulaire Utiliser la syntaxe FORMS!NOMFORMULAIRE.NOMPROPRIÉTÉ Par exemple, pour affecter le paramètre Vrai à la propriété Visible du formulaire Clients, utilisez la ligne de code suivante : FORMS![CLIENTS].VISIBLE = TRUE Pour définir une propriété d'un état Utiliser la syntaxe REPORTS!NOMÉTAT.NOMPROPRIÉTÉ Par exemple, pour affecter le paramètre 1 à la propriété Page de l'état Ventes par employé et par pays, utilisez la ligne de code suivante REPORTS![VENTES PAR EMPLOYÉ ET PAR PAYS].PAGE = 1 Pour définir une propriété d'un contrôle associé à un formulaire ou état Utiliser la syntaxe FORMS!NOMFORMULAIRE!NOMCONTRÔLE.NOMPROPRIÉTÉ ou la syntaxe REPORTS!NOMÉTAT! NOMCONTRÔLE.NOMPROPRIÉTÉ. Par exemple, la ligne de code suivante attribue le paramètre Vrai à la propriété Visible du contrôle Saut de page caché figurant sur l'état Totaux des ventes par montants : REPORTS![TOTAUX DES VENTES PAR MONTANTS]![SAUT DE PAGE CACHÉ].VISIBLE = TRUE
page 58
reproduction réservée
Pour définir une propriété d'une section (à l'aide de code pour faire référence à la propriété que vous souhaitez définir) Utiliser la syntaxe (Le nombre entier n représente une section donnée du formulaire ou de l'état) : FORMS!NOMFORMULAIRE.SECTION(N).NOMPROPRIÉTÉ ou la syntaxe REPORTS! NOMÉTAT.SECTION(N).NOMPROPRIÉTÉ Par exemple, la ligne de code suivante attribue le paramètre à la propriété de la section d'en-tête de page figurant dans le formulaire Clients : FORMS![CLIENTS].SECTION(3).VISIBLE = FALSE BASE COMPTOIR VÉRIFIER SI LA CASE À COCHER « MARIÉ » (PREMIÈRE OPTION) DU GROUPE D'OPTIONS « SITUATION DE FAMILLE » FIGURANT SUR LE FORMULAIRE INFORMATIONS EMPLOYÉS EST ACTIVÉE. SI OUI, LE FORMULAIRE INFORMATIONS ÉPOUSE EST OUVERT ET AFFICHÉ À L'ÉCRAN. EXERCICE SI LA CASE À COCHER « CÉLIBATAIRE » (SECONDE OPTION) EST ACTIVÉE, LE FORMULAIRE INFORMATIONS ÉPOUSE EST MASQUÉ. VOUS POURRIEZ UTILISER CETTE PROCÉDURE EN TANT QUE PROCÉDURE D'ÉVÉNEMENT APRÈS MAJ POUR LE CONTRÔLE DU GROUPE D'OPTIONS « SITUATION DE FAMILLE ».
Sub Marital_Status_AfterUpdate() If Forms![Informations employés]![Situation de famille] = 1 Then DoCmd OpenForm "Informations épouse" Forms![Informations épouse].Visible = True ElseIf Forms![Informations employés]![Situation de famille] = 2 Then Forms![Informations épouse].Visible = False End IfEnd Sub
E E.. LLA A FFE EN NÊ ÊTTR RE ED D''E EX XÉ ÉC CU UTTIIO ON N La fenêtre d'exécution est à utiliser pour tester et déboguer le code lorsque la fenêtre Module est ouverte. OUVRIR LA FENÊTRE D'EXÉCUTION : <CLIC G> SUR DE LA BARRE D'OUTILS "DÉBOGAGE" PROCÉDURE
La fenêtre d'exécution peut indifféremment s'afficher sous forme de fenêtre ou de volet ; il suffit de la faire glisser pour qu'elle change d'apparence INFORMATION
NOTES
Edition I O S
page 59
Une seule ligne de code peut être exécutée à la fois. Il faut la saisir ou la coller dans la fenêtre puis appuyer sur la touche <ENTREE>. Access en vérifie alors la syntaxe. Le code ne peut être enregistré dans la fenêtre d'exécution, mais peut être copié et collé dans la fenêtre Module AVANCÉ
La fenêtre d'exécution permet d'exécuter des lignes individuelles de code Visual Basic. Il est possible de :
Tester et déboguer des procédures Sub ou Function.
Vérifier la valeur d'un champ ou d'un contrôle, ou le paramètre d'une propriété.
Afficher la valeur d'une variable ou d'une expression lorsque l'exécution du code est interrompue. Function Proper (UneValeur As Variant) As Variant Argument(s) : une valeur de type texte ' Action : convertit la première lettre de chaque mot en majuscule ' Valeur(s) renvoyée(s) : valeur texte convertie
PROCÉDURE
EXAMINER LA VALEUR D'UN CHAMP, D'UN CONTRÔLE OU D'UNE PROPRIÉTÉ DE FORMULAIRE OU D'ÉTAT : DANS LA FENÊTRE D'EXÉCUTION TAPER UN POINT D'INTERROGATION SUIVI DE L'IDENTIFICATEUR DU CHAMP, DE LA PROPRIÉTÉ OU DU CONTRÔLE ASSOCIÉ À UN FORMULAIRE OU À UN ÉTAT OUVERT. <ENTRÉE> POUR QUE VISUAL BASIC AFFICHE LA VALEUR DU CHAMP OU DU CONTRÔLE, OU LE PARAMÈTRE DE LA PROPRIÉTÉ
BASE COMPTOIR OUVREZ LE FORMULAIRE CLIENTS EN MODE FORMULAIRE. OUVREZ ENSUITE LA FENÊTRE MODULE, PUIS LA FENÊTRE D'EXÉCUTION. DANS LA FENÊTRE D'EXÉCUTION, TAPEZ LE CODE SUIVANT AFIN DE SPÉCIFIER LA VALEUR EN COURS DU EXERCICE CHAMP VILLE POUR LE FORMULAIRE OUVERT CLIENTS : ? FORMS![CLIENTS]![VILLE] DANS LE CAS DE CET EXERCICE, LE FORMULAIRE CLIENTS, VISUAL BASIC AFFICHE LA VALEUR DU CHAMP VILLE
PROCÉDURE
EXERCICE
POUR AFFICHER LA VALEUR D'UNE VARIABLE OU D'UNE EXPRESSION PENDANT L'EXÉCUTION DU CODE : AJOUTER À VOTRE CODE, UNE INSTRUCTION DEBUG.PRINT CONTENANT UNE VARIABLE OU UNE EXPRESSION DONT VOUS VOULEZ CONNAÎTRE LA VALEUR. OUVRIR LA FENÊTRE D'EXÉCUTION. (Si vous n'ouvrez pas la fenêtre d'exécution, l'instruction Debug.Print ne pourra pas afficher les valeurs). EXÉCUTER LE CODE. Chaque fois qu'elle est appelée, la procédure contenant l'instruction DEBUG.PRINT affiche la valeur de la variable ou de l'expression dans la fenêtre d'exécution VOUS POUVEZ UTILISER LE CODE DE L'EXEMPLE CALCDATELIM QUI CONTIENT UNE INSTRUCTION DEBUG.PRINT. COMMENCER PAR CHARGER LE CODE CALCDATELIM DANS LA FENÊTRE MODULE. POUR EXÉCUTER L'EXEMPLE CALCDATELIM, TAPEZ DEBUG.PRINT CALCDATELIM() DANS LA FENÊTRE D'EXÉCUTION, ET APPUYER SUR ENTREE. VISUAL BASIC AFFICHE LA VALEUR DE LA VARIABLE DATELIM (LE PREMIER JOUR DU MOIS SUIVANT) DANS LA FENÊTRE D'EXÉCUTION
NOTES
page 60
reproduction réservée
PROCÉDURE
INFORMATION
POUR AFFICHER LA VALEUR D'UNE VARIABLE OU EXPRESSION LORSQUE L'EXÉCUTION DU CODE EST INTERROMPUE : DANS LA FENÊTRE D'EXÉCUTION EXÉCUTER UNE PROCÉDURE CONTENANT UN POINT D'ARRÊT. LORSQUE L'EXÉCUTION DU CODE S'INTERROMPT, TAPER DEBUG.PRINT OU UN POINT D'INTERROGATION (?) DANS LA FENÊTRE D'EXÉCUTION, SUIVI DU NOM DE LA VARIABLE OU DE L'EXPRESSION. <ENTRÉE> POUR QUE VISUAL BASIC AFFICHE LA VALEUR DE LA VARIABLE OU DE L'EXPRESSION DANS LA FENÊTRE D'EXÉCUTION Vous ne pouvez afficher des variables et appeler des procédures dans la fenêtre d'exécution que si elles possèdent l'étendue appropriée en concordance avec l'instruction en cours. Vous ne pouvez afficher que des variables globales ou des variables définies dans le module en cours et la procédure d'exécution en cours. De même, vous ne pouvez appeler que des procédures du module en cours ou des procédures publiques d'un autre module OUVRIR LA FENÊTRE ESPION : <CLIC G> SUR DE LA BARRE D'OUTILS "DÉBOGAGE
PROCÉDURE
La fenêtre espion peut indifféremment s'afficher sous forme de fenêtre ou de volet ; il suffit de la faire glisser pour qu'elle change d'apparence INFORMATION
NOTES
Edition I O S
page 61
NOTES
page 62
reproduction réservée
VI. VARIABLES, CONSTANTES, TYPES ET TABLEAUX Les variables permettent de conserver des résultats intermédiaires et de les consulter. Une variable peut être définie immédiatement, en lui affectant une valeur ou voir simplement un type et un nom afin de l'utiliser plus tard. Comme tous langages de programmation, Visual Basic utilise des variables pour stocker les valeurs. Les variables ont un nom et un type de données (qui détermine le genre de donnée que la variable peut stocker) Les constantes stockent aussi des valeurs qui demeurent constantes durant l'exécution d'une application. Leur utilisation rend le code lisible en remplaçant des nombres par des noms significatifs. VB contient de nombreuses constantes prédéfinies. Les types de données contrôlent le stockage interne des données. Par défaut, VB utilise le type de données Variant.
A A.. D DÉ ÉC CLLA AR RA ATTIIO ON ND DE ES SV VA AR RIIA AB BLLE ES S DIM VARIABLENAME [AS TYPE] Les variables déclarées à l'aide de l'instruction DIM dans une procédure ont une durée de vie égale à la durée d'exécution de la procédure. Une fois que la procédure est terminée, la valeur de la variable est supprimée. En outre, la valeur d'une variable d'une procédure est locale et limitée à cette procédure. Ceci permet d'affecter des noms de variable identiques dans des procédures différentes. La clause facultative AS TYPE de l'instruction DIM permet de définir le type de données ou d'objet de la variable. Les types de données définissent le type d'informations enregistrées par la variable. STRING, INTEGER et CURRENCY sont des exemples de types de données. Les variables peuvent aussi contenir des objets provenant de Visual Basic ou d'autres applications. OBJECT, FORM1 et TEXTBOX sont des exemples de types d'objets ou de classes VB. Il existe d'autres manières de déclarer des variables : Une variable déclarée dans la section Déclarations d'un module de feuille, d'un module standard ou d'un module de classe, plutôt qu'à l'intérieur d'une procédure, elle sera disponible pour l'ensemble des procédures du module. Une variable déclarée à l'aide du mot clé Public sera disponible partout dans l’application. Une variable locale déclarée à l'aide du mot clé STATIC gardera sa valeur, après la fin à la procédure.
NOTES
Edition I O S
page 63
DECLARATION IMPLICITE Avec Visual Basic, il n'est pas obligatoire de déclarer une variable avant de l'utiliser EXEMPLE : Function CalculLigne(Prix, Qte) if Qte > 100 then TempVal = Prix * 1.1 * Qte CalculLigne = TempVal End Function VB crée automatiquement la variable TEMPVAL. On peut donc l'utiliser comme si elle était déclarée explicitement. La déclaration implicite de variables pratique, elle peut engendrer des erreurs difficiles à identifier dans le code: EXEMPLE : Function CalculLigne(Prix, Qte) if Qte > 100 then TempVal = Prix * 1.1 * Qte CalculLigne = TemVal End Function Dans cette fonction la variable TEMPVAL ayant été mal orthographiée, le résultat sera zéro. DÉCLARATION EXPLICITE
PROCÉDURE
DÉCLARATION DE VARIABLE EXPLICITE : SPÉCIFIEZ L'INSTRUCTION SUIVANTE DANS LA SECTION Déclarations du module: Option Explicit ou MENU OUTILS OPTIONS ONGLET ÉDITEUR ACTIVER L'OPTION POUR INSÉRER AUTOMATIQUEMENT L'INSTRUCTION OPTION EXPLICIT DANS CHAQUE NOUVEAU MODULE Si cette instruction avait été activée pour le module contenant la fonction CALCULLIGNE, TEMPVAL et TEMVAL seraient alors des variables non déclarées, et auraient généré des erreurs Dim TempVal
INFORMATION
Selon la manière dont une variable est déclarée, sa portée est de niveau procédure (locale) ou de niveau module. PORTÉE
PRIVÉE
PUBLIQUE
PROCÉDURE
Les variables ne sont reconnues que dans la procédure dans laquelle elles apparaissent.
Non applicable. Pas de variables publiques dans une procédure.
MODULE
Les variables ne sont reconnues que dans le module dans lequel elles apparaissent.
Les variables sont accessibles à tous les modules.
NOTES
page 64
reproduction réservée
VARIABLES DE NIVEAU PROCÉDURE Les variables de niveau procédure ne sont reconnues que dans la procédure dans laquelle elles apparaissent. Ces variables sont aussi connues sous le nom de variables locales. Déclaration avec le mot clé Dim ou Static.. Dim intTemp As Integer ou Static intPermanent As Integer EXEMPLE
INFORMATION
Les valeurs des variables locales déclarées à l'aide du mot clé Static ont une durée de vie égale à la durée d'exécution de l’application tandis que les variables déclarées à l'aide du mot clé Dim ont une durée de vie égale à la durée d'exécution de la procédure VARIABLES DE NIVEAU MODULE : Par défaut, une variable de niveau module est accessible à toutes les procédures de ce module, mais pas au code d'autres modules. On crée des variables de niveau module, à l'aide du mot clé Private dans la section Déclarations, au début du module. Private intTemp As Integer
EXEMPLE
Bien qu'il n'y ait pas de différence entre PRIVATE et DIM au niveau module, PRIVATE est plus souvent utilisé car il facilite la compréhension du code INFORMATION
VARIABLES ACCESSIBLES À TOUS LES MODULES : Pour rendre une variable de niveau module accessible à d'autres modules, elle est déclarée à l'aide du mot clé PUBLIC . Les valeurs des variables publiques sont accessibles à toutes les procédures de l’application. Comme toutes les variables de niveau module, les variables publiques sont déclarées dans la section Déclarations, au début du module. Par exemple : Public INTTEMP AS INTEGER VARIABLES STATIQUES : Lorsqu’une procédure arrive en fin d'exécution, les valeurs de ses variables locales ne sont pas préservées et la mémoire occupée par les variables locales est récupérée. Lorsque la procédure sera de nouveau exécutée, toutes ses variables locales seront réinitialisées. On peut préserver la valeur d'une variable locale en la transformant en variable statique avec le mot clé STATIC : STATIC VARTEMP INFORMATION
NOTES
Edition I O S
page 65
La fonction suivante calcule un total courant en ajoutant une nouvelle valeur au total des valeurs antérieures stockées dans la variable statique VARCUMUL :
EXEMPLE
INFORMATION
Function CalculTotal(num) Static VarCumul VarCumul = VarCumul + num CalculTotal = VarCumul End Function Si VARCUMUL est déclarée à l'aide de l'instruction DIM au lieu de STATIC, les valeurs antérieures accumulées ne sont pas préservées lors des appels de la fonction et la valeur obtenue est la même qu'au moment de l'appel
B B.. TTY YP PE ES SD DE EV VA AR RIIA AB BLLE ES S On attribue des noms, de préférence explicites (40 car maxi), aux variables à utiliser pour les adresser. DIFFÉRENTS TYPES DE VARIABLES Le type VARIANT est affecté automatiquement si rien n'a été spécifié à la création de la variable : NOMBRE = 70 Le type INTEGER est attribué à la variable si la ligne introduite par DIM contient le mot INTEGER : DIM NOMBRE AS INTEGER NOMBRE = 70 Le type INTEGER peut également être attribué sans l'instruction DIM : NOMBRE% = 70 Il est possible d'attribuer le type INTEGER à toutes les variables commençant par une lettre déterminée : DEFINT A – C L'instruction Defxxx agit sur toutes les variables non dimensionnées. Pour dimensionner toute nouvelle variable, écrire d'abord l'instruction Option Explicit dans la section de déclaration INFORMATION
TYPE DE DONNÉES INTEGER Les variables de type INTEGER sont stockées sous la forme de nombres de 16 bits (2 octets) dont la valeur est comprise entre -32 768 et 32 767. Le caractère de déclaration de type INTEGER est le signe %. Elles permettent également de représenter des valeurs énumérées. Celles-ci peuvent contenir un ensemble fini d'entiers uniques possédant tous une signification particulière dans le contexte où ils sont utilisés. Elles permettent d'opérer facilement une sélection parmi un nombre connu de choix, du type noir = 0, blanc = 1, etc. Il est conseillé de définir des constantes pour chaque valeur énumérée via l'instruction CONST
NOTES
page 66
reproduction réservée
TYPE DE DONNÉES LONG Les variables de type LONG (entier long) sont stockées sous la forme de nombres signés de 32 bits (4 octets) dont la valeur est comprise entre -2 147 483 648 et 2 147 483 647. Le caractère de déclaration de type LONG est le signe &. TYPE DE DONNÉES BOOLEAN Les variables de type Boolean sont stockées sous la forme de nombres de 16 bits (2 octets), mais elles ne peuvent avoir pour valeur que True ou False. Elles s'affichent sous la forme TRUE et FALSE (avec l'instruction Print) ou #TRUE# et #FALSE# (avec l'instruction Write #). Utilisez les
AVANCÉ
mots clés True et False pour faire passer d'un état à l'autre des variables de type Boolean. Lorsque d'autres types de données numériques sont convertis en valeurs de type Boolean, 0 devient False et toutes les autres valeurs deviennent True. Lorsque des valeurs de type Boolean sont converties en d'autres types de données, False devient 0 et True devient -1.
Dim BlnTrouve As Boolean ' Vérifie si une valeur est trouvée. If NomCherche = NomStock Then BlnTrouve = True EXEMPLE
TYPE DE DONNÉES CURRENCY Les variables de type CURRENCY sont stockées sous la forme de nombres de 64 bits (8 octets) au format entier, avec un décalage de 10 000 afin d'obtenir un nombre à virgule fixe comprenant 15 chiffres à gauche du séparateur décimal et 4 chiffres à droite. Cette représentation offre une plage comprise entre -922 337 203 685 477,5808 et 922 337 203 685 477,5807. Le caractère de déclaration de type CURRENCY est le signe @. Le type de données CURRENCY est utile pour les calculs monétaires et pour les calculs à virgule fixe dans lesquels la précision revêt une importance particulière INFORMATION
TYPE DE DONNÉES DATE Les variables de type Date sont stockées sous la forme de nombres à virgule flottante de 64 bits (8 octets) IEEE représentant des dates comprises entre le 1er janvier 100 et le 31 décembre 9999, et des heures allant de 0:00:00 à 23:59:59. Toute valeur de littéral date peut être attribuée à une variable de type DATE. Les littéraux date doivent être délimités par le signe # January 1, 2006# ou #1 Jan 06#. EXEMPLE
INFORMATION
AVANCÉ
Les variables de type DATE affichent les dates au format de date abrégé reconnu par votre ordinateur. Les heures s'affichent au format horaire (plage de 12 ou 24 heures) défini dans votre ordinateur
Lorsque d'autres types de données numériques sont convertis en données de type DATE, les valeurs situées à gauche du séparateur décimal représentent la date, tandis que celles situées à droite correspondent à l'heure. Minuit est représenté par 0 et midi par 0,5. Les nombres entiers négatifs représentent des dates antérieures au 30 décembre 1899
NOTES
Edition I O S
page 67
TYPE DE DONNÉES DOUBLE Les variables de type DOUBLE (à virgule flottante en double précision) sont stockées sous la forme de nombres à virgule flottante de 64 bits (8 octets) IEEE dont la valeur est comprise entre 1,79769313486231E308 et -4,94065645841247E-324 pour les nombres négatifs et entre 4,94065645841247E-324 et 1,79769313486231E308 pour les positifs. Le caractère de déclaration de type DOUBLE est le signe #. TYPE DE DONNÉES OBJECT Les variables de type OBJECT sont stockées sous la forme d'adresses 32 bits (4 octets) qui font référence à des objets. L'instruction SET permet d'affecter une référence d'objet à une variable déclarée comme OBJECT. Une variable déclarée comme OBJECT est suffisamment flexible pour contenir une référence à n'importe quel type d'objet, mais la liaison à l'objet désigné par la variable est toujours tardif (liaison au moment de l'exécution). Pour obtenir une liaison précoce (liaison au moment de la compilation), attribuez la référence d'objet à une variable déclarée avec un nom de classe spécifique. Dim objDb As Object Set objDb = OpenDatabase("c:\vb\Biblio.mdb") EXEMPLE
TYPE DE DONNÉES SINGLE Les variables de type Single (à virgule flottante en simple précision) sont stockées sous la forme de nombres à virgule flottante de 32 bits (4 octets) IEEE dont la valeur est comprise entre 3,402823E38 et -1,401298E-45 pour les nombres négatifs et entre 1,401298E-45 et 3,402823E38 pour les positifs. Le caractère de déclaration de type SINGLE est le point d'exclamation (!). TYPE DE DONNÉES STRING Il existe 2 types de chaînes : les chaînes de longueur variable et les chaînes de longueur fixe. Les chaînes de longueur variable peuvent contenir environ 2 milliards (2^31) de caractères. Les chaînes de longueur fixe peuvent contenir de 1 à environ 64 Ko (2^16) de caractères. Une chaîne de longueur fixe déclarée comme Public ne peut pas être utilisée dans les modules de classe INFORMATION
Les codes de caractères de type String sont compris entre 0 et 255. Les 128 premiers caractères (0 à 127) du jeu de caractères correspondent aux lettres et symboles d'un clavier américain standard. Ces 128 caractères sont identiques à ceux du jeu de caractères ASCII. Les 128 caractères suivants (128 à 255) représentent des caractères spéciaux, comme les lettres de certains alphabets, les accents, les symboles monétaires et les fractions. Le caractère de déclaration de type String est le signe $.
NOTES
page 68
reproduction réservée
TYPE DE DONNÉES VARIANT VARIANT est le type de données attribué à toutes les variables qui ne sont pas explicitement déclarées comme étant d'un autre type (à l'aide d'instructions telles que DIM, PRIVATE, PUBLIC ou STATIC). Le type de données VARIANT ne possède aucun caractère de déclaration de type. Variant est un type de données spécial pouvant contenir des données de toutes sortes, à l'exception des données de type String de longueur fixe. Le type Variant prend désormais en charge les types définis par l'utilisateur. Une variable de type Variant peut également contenir les valeurs EMPTY, ERROR, NOTHING et NULL. Vous pouvez déterminer la procédure de traitement d'une donnée de type VARIANT à l'aide des fonctions VARTYPE et TYPENAME. Les données numériques correspondent à n'importe quel nombre entier ou réel dont la valeur est comprise entre -1,797693134862315E308 et -4,94066E-324 pour les négatifs et entre 4,94066E324 et 1,797693134862315E308 pour les positifs. En général, les données numériques de type VARIANT conservent leur type de données original au sein de la valeur de type VARIANT. Par exemple, si vous attribuez une valeur de type INTEGER à une donnée de type VARIANT, cette dernière sera ultérieurement traitée comme une valeur de type INTEGER. Cependant, si une opération arithmétique est exécutée sur une donnée de type VARIANT contenant une valeur de type Byte, INTEGER, Long ou Single et si le résultat excède la plage de valeurs du type de données, le résultat se voit automatiquement affecté le type de données VARIANT immédiatement supérieur. Une donnée de type BYTE est transformée en INTEGER, une donnée de type INTEGER est transformée en LONG et une donnée de type LONG ou SINGLE en Double. Une erreur se produit lorsque des variables de type VARIANT contenant des données de type CURRENCY, DECIMAL ou DOUBLE dépassent leur plage de valeurs respective.
CONSEIL
Le type de données VARIANT peut remplacer un autre type de données lorsque vous recherchez plus de souplesse dans le traitement de celles-ci. Si une variable de type VARIANT contient des chiffres, il peut s'agir, selon le contexte, de leur valeur réelle ou de leur représentation sous forme de chaîne
NOTES
Edition I O S
page 69
Le tableau suivant résume les types de données ainsi que le suffixe de déclaration de type, la taille d'enregistrement et la plage de valeur. TYPE DE DONNÉES
SUFFIXE
TAILLE D'ENREG.
PLAGE
(en octets) INTEGER
%
2
-32 768 à 32 767.
LONG(ENTIER LONG)
&
4
-2 147 483 648 à 2 147 483 647.
BOOLEAN
Aucun
2
DATE
Aucun
8
Virgule flottante
DÉFINI PAR L'UTILISATEUR (AU MOYEN DE TYPE)
Aucun
Nombre requis par élément
La plage de chaque élément est identique à la plage de son type de données fondamental, tel qu'il apparaît plus haut.
DOUBLE (VALEUR À
#
8
-1,79769313486232E308 à 4,94065645841247E-324 pour les valeurs négatives ; 4,94065645841247E-324 à 1,79769313486232E308 pour les valeurs positives et 0.
CURRENCY (ENTIER À L'ÉCHELLE)
@
8
-922 337 203 685 477,5808 à 922 337 203 685 477,5807.
SINGLE(VALEUR À VIRGULE
!
4
-3,402823E38 à -1,401298E-45 pour les valeurs négatives ; 1,401298E-45 à 3,402823E38 pour les valeurs positives et 0.
STRING
$
1 par caractère
0 à environ 65 535 octets. (De la mémoire supplémentaire est requise.)
VARIANT
Aucun
Variable
N'importe quelle valeur numérique dans la plage d'une donnée de type Double ou n'importe quel texte de caractères, null.
VIRGULE FLOTTANTE EN DOUBLE PRÉCISION)
FLOTTANTE EN SIMPLE PRÉCISION)
INFORMATION
L'instruction TYPE permet de définir des types personnalisés. Elle est utilisée dans la section de déclaration. Ce nouveau type sera en fait constitué d'un ou plusieurs types déjà disponibles (INTEGER, LONG, SINGLE, DOUBLE, CURRENCY, STRING et VARIANT).
NOTES
page 70
reproduction réservée
C C.. TTA AB BLLE EA AU UX XD DE EV VA AR RIIA AB BLLE ES S Les tableaux, aussi appelés Vecteurs ou Arrays, permettent de manipuler des grandes quantités de données de même type. Un indice est nécessaire pour distinguer l'élément du tableau à manipuler. Ce numéro est ajouté entre parenthèses au nom de la variable. NOMVARIABLE (NUMINDICE) Il faut d'abord les dimensionner le tableau DIM TAB(10) AS INTEGER ... TAB(1) = 18 TAB(5) = 10 Y = TAB(1) * TAB(5) PRINT Y ... 180 L'indice du tableau commence à 0 pour le premier élément. Avec l'instruction Option Base 1, il est possible de forcer l'indice du premier élément à 1 pour tous les tableaux. DIM TAB( 10, 12) AS INTEGER ... TAB(0,0) = 18 TAB(0,5) = 10 TAB(3,10) = 6 TAB(10,10) = 2 * TAB(0,0) Un tableau peut également avoir une taille dynamique, qui se détermine en fonction de l'utilisation avec l'instruction REDIM DIM TABLEAU() AS INTEGER ... REDIM TABLEAU(10,10) AS INTEGER ...
NOTES
Edition I O S
page 71
D D.. G GE ES STTIIO ON ND DE ES SV VA AR RIIA AB BLLE ES S 1 STATIC : STATIC NOM-DE-VARIABLE[([INDICES])] [AS TYPE] [, NOM-DE-VARIABLE[([INDICES])] [AS TYPE] ] . L'instruction STATIC et le mot réservé STATIC ont des effets différents sur la durée de vie des variables. Si une procédure est déclarée à l'aide du mot réservé STATIC (comme dans STATIC SUB COUNTSALES), l'espace mémoire est alloué une seule fois pour toutes les variables locales de la procédure, et la valeur des variables est préservée pendant la totalité du temps d'exécution du programme. En ce qui concerne les procédures non statiques, l'espace mémoire est alloué aux variables chaque fois que la procédure est appelée, et libéré chaque fois qu'elle est quittée. L'instruction STATIC permet de déclarer des variables au sein de procédures non statiques et de préserver leur valeur pendant toute la durée d'exécution du programme.
2 PUBLIC : PUBLIC NOM-DE-VARIABLE[([INDICES])] [AS TYPE] [, NOM-DE-VARIABLE[([INDICES])] [AS TYPE] ] . Utilisée au niveau du module pour déclarer des variables globales (c'est-à-dire utilisables par toutes les procédures dans tous les modules) et allouer de l'espace mémoire.
3 PROCÉDURE FUNCTION [STATIC] [PRIVATE] FUNCTION NOM-DE-FONCTION [(LISTE-D'ARGUMENTS)] [AS TYPE] [BLOC-D'INSTRUCTIONS] [NOM-DE-FONCTION = EXPRESSION] [EXIT FUNCTION] [BLOC-D'INSTRUCTIONS] [NOM-DE-FONCTION = EXPRESSION] END FUNCTION STATIC
Indique que les variables locales de la procédure Function sont préservées entre les appels. L'attribut Static n'affecte pas les variables déclarées hors de la procédure Function, même si elles sont utilisées dans la procédure.
PRIVATE
Indique que la procédure Function n'est accessible qu'aux autres procédures du module dans laquelle elle se trouve. Elle n'est accessible à aucune autre procédure d'aucun autre module.
4 PROCÉDURE SUB [STATIC] [PRIVATE] SUB NOM-SUB [(LISTE-D'ARGUMENTS)] [BLOC-D'INSTRUCTIONS] [EXIT SUB] [BLOC-D'INSTRUCTIONS] END SUB STATIC
Indique que les variables locales de la procédure Sub sont préservées entre les appels. L'attribut Static n'affecte pas les variables déclarées hors de la procédure Sub, même si elles sont utilisées dans la procédure.
PRIVATE
Indique que la procédure Sub n'est accessible qu'aux autres procédures du module dans laquelle elle se trouve. Elle n'est accessible à aucune autre procédure d'aucun autre module.
NOTES
page 72
reproduction réservée
E E.. O OB BJJE ETTS SE ETT C CO OLLLLE EC CTTIIO ON ND D''A AC CC CÈ ÈS S A AU UX XD DO ON NN NÉ ÉE ES S Les objets et les collections d'accès aux données constituent un environnement dans lequel du code peut être utilisé pour créer et manipuler les composants du système de base de données. Ils possèdent des propriétés décrivant les caractéristiques des composants de la base de données et des méthodes utilisées pour les manipuler. Cet environnement permet de créer des relations entre les objets et les collections ; ces relations représentent la structure logique du système de base de données. Il existe différents types de relations entre les objets et les collections : les objets peuvent ne pas contenir de collection ou en contenir plusieurs d'un type différent ; et les collections peuvent ne pas contenir d'objet ou en contenir plusieurs du même type. Bien que les objets et les collections soient des entités similaires, ces deux types de relation sont différents. Dans la table suivante, le type de collection indiqué dans la première colonne contient le type d'objet de la deuxième colonne. La troisième colonne contient une description de ce que chaque type d'objet représente. COLLECTION
OBJET
DESCRIPTION
CONTAINERS
Container
Stockage des informations relatives à un type d'objet prédéfini.
DATABASES
Database
Base de données ouverte.
AUCUNE
DBEngine
Moteur de la base de données Microsoft Jet.
DOCUMENTS
Document
Informations sur un objet prédéfini enregistré.
FIELDS
Field
Colonne faisant partie d'une table, d'une requête, d'un index, d'une relation ou d'un jeu d'enregistrements.
GROUPS
Group
Regroupement de comptes d'utilisateurs.
INDEXES
Index
Ordre prédéfini et nature unique des valeurs d'une table.
PARAMETERS
Parameter
Paramètre d'une requête paramétrée.
PROPERTIES
Property
Propriété prédéfinie ou définie par l'utilisateur.
QUERYDEFS
QueryDef
Définition de requête enregistrée.
RECORDSETS
Recordset
Enregistrements d'une table d'origine ou d'une requête.
RELATIONS
Relation
Relation entre les champs des tables et ceux de requêtes.
TABLEDEFS
TableDef
Définition de table enregistrée.
USERS
User
Compte de l'utilisateur.
WORKSPACES
Workspace
Session du moteur de la base de données Jet.
NOTES
Edition I O S
page 73
DATABASE L'objet DATABASE représente une base de données ouverte. Une collection DATABASE contient tous les objets DATABASE ouverts dans une session du moteur de la base de données. Vous manipulez une base de données ouverte à l'aide d'un objet DATABASE et de ses méthodes et propriétés. Vous pouvez examiner les collections d'un objet DATABASE pour connaître ses tables, ses requêtes, ses relations, ses formulaires et ses états, et utiliser les collections de cet objet pour modifier ou créer des tables, des requêtes et des relations. IL EST POSSIBLE DE : Utiliser la méthode EXECUTE pour exécuter une action QUERYDEF, ou bien utiliser la méthode OPENRECORDSET pour créer un nouvel objet RECORDSET directement à partir de l'objet DATABASE. La méthode OPENDATABASE ouvre une base de données définie dans une session et retourne une référence à l'objet DATABASE qui la représente. La base de données ouverte est automatiquement ajoutée à la collection DATABASES. Utiliser la méthode Close pour fermer une base de données ouverte. OUVRIR LA TABLE EMPLOYÉS DANS LA BASE DE DONNÉES COMPTOIR.MDB DE L'OBJET WORKSPACE PAR DÉFAUT. EXERCICE
si vous ne pouvez pas l'ouvrir (si déjà ouverte en accès exclusif par un autre utilisateur dans environnement multi-utilisateur), une erreur se produit et un message s'affiche. METTRE A JOUR LE CHAMP FONCTION DE LA TABLE EMPLOYÉS
FUNCTION METAJOURCOMPTOIR () AS INTEGER CONST MB_ICONEXCLAMATION = 48 DIM MAZONEDETRAVAIL AS W ORKSPACE, MABD AS DATABASE DIM MATABLE AS RECORDSET DIM MONFICHIER AS STRING DIM CONDITIONERREUR AS INTEGER METAJOURCOMPTOIR = TRUE MONFICHIER = "COMPTOIR.MDB" ' DÉFINIT LE NOM DE LA BASE DE DONNÉES. ON ERROR GOTO ROUTINE_ERREUR_BD ' ACTIVE LE RATTRAPAGE DES ERREURS. SET MAZONEDETRAVAIL = DBENGINE.W ORKSPACES (0) SET MABD = MAZONEDETRAVAIL.OPENDATABASE(MONFICHIER) ' OUVRE LA BASE DE DONNÉES. IF NOT CONDITIONERREUR THEN ON ERROR GOTO ROUTINE_ERREUR_TABLE ' ACTIVE LE RATTRAPAGE DES ERREURS. SET MATABLE = MABD.OPENRECORDSET("EMPLOYÉS") ' OUVRE LA TABLE. IF NOT CONDITIONERREUR THEN ON ERROR GOTO ROUTINE_ERREUR_EDITION ' ACTIVE LE RATTRAPAGE DES ERREURS. DO UNTIL MATABLE.EOF IF MATABLE![FONCTION] = "REPRÉSENTANT" THEN MATABLE.EDIT ' ACTIVE LA MODIFICATION. MATABLE![FONCTION] = "CHEF COMPTABLE" ' MODIFICATIONS. MATABLE.UPDATE ' ENREGISTRE LES MODIFICATIONS. END IF MATABLE.MOVENEXT ' PASSE À L'ENREGISTREMENT SUIVANT. LOOP
NOTES
page 74
reproduction réservée
MATABLE.CLOSE ' FERME LA TABLE. END IF MABD.CLOSE ' FERME LA BASE DE DONNÉES. END IF ON ERROR GOTO 0 ' DÉSACTIVE LE RATTRAPAGE DES ERREURS. EXIT FUNCTION ROUTINE_ERREUR_BD: CONDITIONERREUR = TRUE METAJOURCOMPTOIR = FALSE MSGBOX "IMPOSSIBLE D'OUVRIR LA BASE DE DONNÉES COMPTOIR.MDB.", MB_ICONEXCLAMATION RESUME NEXT ROUTINE_ERREUR_TABLE: CONDITIONERREUR = TRUE METAJOURCOMPTOIR = FALSE MSGBOX "IMPOSSIBLE D'OUVRIR LA TABLE EMPLOYÉS.", MB_ICONEXCLAMATION RESUME NEXT ROUTINE_ERREUR_EDITION: CONDITIONERREUR = TRUE METAJOURCOMPTOIR = FALSE MSGBOX "IMPOSSIBLE DE MODIFIER LA TABLE EMPLOYÉS.", MB_ICONEXCLAMATION RESUME NEXT END FUNCTION
QUERYDEF Un objet QUERYDEF est une définition enregistrée d'une requête dans une base de données. Une collection QUERYDEFS qui contient tous les objets QUERYDEF dans un objet DATABASE. L'objet QueryDef correspond à la définition de la requête enregistrée dans une base de données. Une requête enregistrée est en quelque sorte une instruction SQL de compilation. Vous pouvez utiliser les propriétés d'un objet QUERYDEF pour définir une requête PAR EXEMPLE : Vérifier et modifier le réglage de la propriété SQL, définir ses paramètres puis exécuter la requête. Définir ou vérifier la propriété Type pour déterminer si la requête sélectionnera les enregistrements d'une table existante, créera une nouvelle table, insèrera les enregistrements d'une table dans une autre, les supprimera ou les mettra à jour.
PROCÉDURE
CRÉER UN NOUVEL OBJET QUERYDEF : UTILISEZ LA MÉTHODE CREATEQUERYDEF DE SYNTAXE SET DÉF-REQUÊTE = BASE-DE-DONNÉES.CREATEQUERYDEF(NOM[, TEXTESQL])
NOTES
Edition I O S
page 75
La méthode CREATEQUERYDEF utilise les arguments suivants : ARGUMENT
DESCRIPTION
DÉF-REQUÊTE
Variable d'un type de données d'objet représentant l'objet QueryDef à créer.
BASE-DE-DONNÉES
Variable d'un type de données d'objet représentant l'objet Base de données (Database) ouvert qui contiendra le nouvel objet QueryDef.
NOM
Expression chaîne qui est le nom du nouvel objet QueryDef.
TEXTESQL
Expression chaîne (une instruction SQL valide) qui définit l'objet QueryDef. Si vous omettez cet argument, vous pouvez paramétrer la propriété SQL de l'objet avant ou après son ajout dans une collection.
REMARQUES Si nom est utilisé mais TEXTESQL omis, l'objet QUERYDEF est automatiquement enregistré lors de sa création ou modification. Si l'objet spécifié par nom fait déjà partie de la collection QUERYDEFS, une erreur rattrapable se produit. Il est possible de créer un objet QUERYDEF temporaire en attribuant une chaîne vide ("") à la propriété NAME du nouvel objet QUERYDEF ou en utilisant une chaîne vide pour l'argument nom lorsque vous exécutez la méthode CREATEQUERYDEF. Il est impossible d'ajouter un objet QUERYDEF temporaire à une collection, parce qu'une chaîne vide n'est pas un nom valide pour un objet QUERYDEF permanent. Il est possible de définir les propriétés NAME et SQL du nouvel objet QUERYDEF et, par la suite, ajouter ce dernier à la collection QUERYDEFS où il sera enregistré dans la base de données Si le nom donné à l'objet QUERYDEF créé est différent d'une chaîne vide, l'objet est automatiquement ajouté à la collection QUERYDEFS. Pour supprimer un objet QUERYDEF d'une collection QUERYDEFS, utiliser la méthode DELETE. Pour exécuter un objet QUERYDEF, utiliser la méthode EXECUTE. A PARTIR DE LA TABLE CLIENTS DE LA BASE DE DONNÉES EN COURS, CRÉER ET DÉFINIR, EN UNE SEULE ÉTAPE, L'OBJET QUERYDEF TOUS CLIENTS EXERCICE
DIM MABD AS DATABASE, MAREQUÊTE AS QUERYDEF, MONGROUPE AS RECORDSET SET MABD = DBENGINE.WORKSPACES(0).DATABASES(0) ' CRÉATION QUERYDEF. SET MAREQUÊTE = MABD.CREATEQUERYDEF("TOUS CLIENTS", "SELECT * FROM CLIENTS;") SET MONGROUPE = MABD.OPENRECORDSET("TOUS CLIENTS")
NOTES
page 76
reproduction réservée
RECORDSET Un objet RECORDSET représente les enregistrements d'une table d'origine ou les enregistrements qui résultent de l'exécution d'une requête. La collection RECORDSETS contient tous les objets RECORDSET ouverts dans un objet DATABASE. Lorsque vous utilisez Visual Basic, vous traitez des données qui utilisent presque toujours des objets RECORDSET. IL EXISTE TROIS TYPES D'OBJETS RECORDSET, QUI CORRESPONDENT AUX JEUX DE DONNÉES SUIVANTS CRÉES DANS MICROSOFT ACCESS : TABLE : Partie d'une base de données qui contient des jeux ordonnés (ou des enregistrements) de données concernant un sujet particulier, comme les employés. Une table contient des enregistrements (lignes) et des champs (colonnes). Un objet Recordset de type table est une représentation codée d'une table d'origine. Feuilles de réponses dynamiques (DYNASET) : Résultat d'une requête dont les enregistrements peuvent être mis à jour. Comme une table, une feuille de réponses dynamique contient des enregistrements et des champs. Elle représente un jeu d'enregistrements dynamique que vous pouvez utiliser pour ajouter, modifier ou supprimer les enregistrements d'une ou de plusieurs tables de la base de données. Une feuille de réponses dynamique peut contenir des champs d'une ou de plusieurs tables de la base de données. Un objet Recordset de type feuille de réponses dynamique est une représentation codée d'une feuille de réponses dynamique. Instantané (SNAPSHOT) : Résultat d'une requête dont les enregistrements ne peuvent pas être mis à jour. Comme une table, un instantané contient des enregistrements et des champs. Un instantané représente une image statique d'un jeu d'enregistrements que vous pouvez utiliser pour rechercher des données ou créer des états. Il peut contenir des champs provenant d'une ou de plusieurs tables de la base de données. Un objet Recordset de type instantané est une représentation codée d'un instantané. REMARQUES Lorsqu'un nouvel objet Recordset est ouvert à l'aide de la méthode OpenRecordset, le type de cet objet dépend de l'objet à partir duquel il est ouvert, un objet Database, QueryDef, Recordset ou TableDef et des options sélectionnées. L'argument type de la méthode OpenRecordset détermine le type de l'objet Recordset dans une situation donnée. Un nouvel objet Recordset est automatiquement ajouté dans la collection Recordsets quand l'objet est ouvert et il est automatiquement supprimé quand il est fermé. Une variable de type objet pet êter déclarée en tant qu'objet Recordset ; plusieurs variables peuvent faire référence aux mêmes tables ou aux mêmes requêtes. Un ou plusieurs objets Recordset peuvent faire référence à tous les champs ou enregistrements, ou à certains d'entre eux, dans une ou plusieurs tables ou requêtes. Tous les champs de toutes les feuilles de réponses dynamiques ne peuvent être mis à jour. Pour savoir s'il est possible de mettre à jour un champ précis, vérifier le paramétrage de la propriété MAJ possible (Updatable) de l'objet Field.
NOTES
Edition I O S
page 77
Dans une base de données multi-utilisateurs, plusieurs utilisateurs peuvent ouvrir un objet RECORDSET de type feuille de réponses dynamique faisant référence aux mêmes enregistrements. Une feuille de réponses étant dynamique, les modifications de données effectuées dans un enregistrement par un utilisateur sont immédiatement accessibles aux autres. Dans le cas d'un ajout d'enregistrement, les autres utilisateurs doivent appliquer la méthode REQUERY à l'objet RECORDSET pour bénéficier de la modification. Les autres utilisateurs sont avertis de la suppression d'un enregistrement au moment où ils tentent d'y accéder. Pour maintenir l'intégrité des données, les objets RECORDSET de type feuille de réponses dynamique et de type table sont verrouillés pendant les opérations EDIT et UPDATE afin qu'un même enregistrement ne puisse être mis à jour par plusieurs utilisateurs simultanément. Il existe deux types de verrouillage, pessimiste et optimiste. Les conditions de verrouillage en vigueur lors de la modification sont déterminées par la propriété ModeVerrouillage (LockEdits). OUVRIR UN OBJET RECORDSET ET RECHERCHER TOUS LES ENREGISTREMENTS DONT LE CHAMP FONCTION RÉPOND AU CRITÈRE DE RECHERCHE, PUIS LE COPIER DANS LA ZONE TAMPON DE COPIE. PRÉPARER L'ENREGISTREMENT EN VUE DE MODIFICATIONS ULTÉRIEURES MODIFIER LA FONCTION ET ENREGISTRER LES MODIFICATIONS À L'AIDE DE LA MÉTHODE UPDATE EXERCICE (MÉTHODES OPENRECORDSET, EDIT, UPDATE ET COLLECTIONS RECORDSET OBJECT, RECORDSETS)
DIM CRITÈRE AS STRING, MABD AS DATABASE, MONGROUPE AS RECORDSET DIM NOUVELLEFONCTION AS STRING CRITÈRE = "FONCTION = 'REPRÉSENTANT'" ' DÉFINIT LE CRITÈRE DE RECHERCHE. NOUVELLEFONCTION = "CHEF COMPTABLE" ' DÉFINIT LA NOUVELLE FONCTION. SET MABD = DBENGINE.WORKSPACES(0).DATABASES(0) SET MONGROUPE = MABD.OPENRECORDSET("EMPLOYÉS", DB_OPEN_DYNASET) ' CRÉE LA FEUILLE DE RÉPONSES DYNAMIQUE. MONGROUPE.FINDFIRST CRITÈRE ' RECHERCHE LA PREMIÈRE OCCURRENCE. DO UNTIL MONGROUPE.NOMATCH ' BOUCLE JUSQU'À CE QU'IL N'Y AIT PLUS D'ENREGISTREMENT CORRESPONDANT. MONGROUPE.EDIT ' ACTIVE LA MODIFICATION. MONGROUPE!FONCTION = NOUVELLEFONCTION ' MODIFIE LA FONCTION. MONGROUPE.UPDATE ' ENREGISTRE LES MODIFICATIONS. MONGROUPE.FINDNEXT CRITÈRE ' RECHERCHE L'OCCURENCE SUIVANTE. LOOP ' FIN DE LA BOUCLE.
NOTES
page 78
reproduction réservée
VII. LES OPERATEURS Les principaux opérateurs sont les suivants : &, OPERATEUR Permet de provoquer la concaténation de chaînes de deux expressions. SYNTAXE result = expression1 & expression2 La syntaxe de l'opérateur & comprend les éléments suivants : ÉLÉMENT
INFORMATION
DESCRIPTION
RESULT
Toute variable de type String ou Variant.
EXPRESSION1
Toute expression.
EXPRESSION2
Toute expression.
Si un des arguments EXPRESSION n'est pas une chaîne, il est converti en variant de type String. Le type de données de l'argument RESULT est String si les deux expressions sont des expressions de chaîne ; sinon, l'argument RESULT est un variant de type String. Si les deux expressions ont la valeur Null, l'argument RESULT est Null. Cependant, si seule une des expressions est Null, elle est considérée comme une chaîne de longueur nulle ("") lors de sa concaténation avec l'autre expression. De même, toute expression EMPTY est traitée comme une chaîne de longueur nulle *, OPERATEUR Permet de multiplier deux nombres. SYNTAXE RESULT = NUMBER1*NUMBER2
La syntaxe de l'opérateur * comprend les éléments suivants : ÉLÉMENT
DESCRIPTION
RESULT
Toute variable numérique.
NUMBER1
Toute expression numérique.
NUMBER2
Toute expression numérique.
NOTES
Edition I O S
page 79
INFORMATION
Le type de données de l'argument RESULT correspond généralement à celui de l'expression la plus précise. Les types de données sont classés dans l'ordre de précision croissant suivant : Byte, INTEGER, LONG, SINGLE, CURRENCY, DOUBLE et DECIMAL. Le tableau ci-dessous décrit les exceptions à cette règle
CONDITION
INFORMATION
TYPE DE RESULT
Multiplication entre des données de types SINGLE et LONG,
Conversion en donnée de type DOUBLE.
L'argument RESULT est un variant de type LONG, SINGLE ou DATE excédant la plage de valeurs acceptées.
Conversion en donnée de type VARIANT contenant une donnée de type DOUBLE.
L'argument RESULT est un variant de type BYTE excédant la plage de valeurs acceptées.
Conversion en variant de type INTEGER.
L'argument RESULT est un variant de type INTEGER excédant la plage de valeurs acceptées.
Conversion en variant de type LONG.
Si une ou les deux expressions ont la valeur NULL, l'argument RESULT est Null. Si une expression est EMPTY, elle est traitée comme si elle avait la valeur 0. L'ordre de précision de la multiplication diffère de celui de l'addition et de la soustraction +, OPERATEUR Permet de faire la somme de deux nombres. SYNTAXE RESULT = EXPRESSION1+EXPRESSION2
La syntaxe de l'opérateur + est composée des éléments suivants : ÉLÉMENT
INFORMATION
DESCRIPTION
RESULT
Toute variable numérique.
EXPRESSION1
Toute expression.
EXPRESSION2
Toute expression.
L'utilisation de l'opérateur + ne permet pas toujours de distinguer si le résultat sera une addition ou une concaténation de chaînes. Pour éliminer toute ambiguïté et écrire un code plus clair, utilisez l'opérateur & pour les concaténations. Si une des deux expressions au moins n'est pas de type Variant, les règles ci-dessous s'appliquent
NOTES
page 80
reproduction réservée
CONDITION
RÉSULTAT
Les deux expressions sont des types de données numériques (BYTE, BOOLEAN, INTEGER, LONG, SINGLE, DOUBLE, DATE, CURRENCY ou DECIMAL)
Addition.
Les deux expressions sont de type STRING
Concaténation.
Une expression est d'un type numérique et l'autre est de type VARIANT, sauf NULL
Addition.
Une expression est de type STRING et l'autre est de type VARIANT, sauf NULL
Concaténation.
Une expression est un VARIANT de type EMPTY
Renvoi de l'expression restante, sans modification, en argument RESULT.
Une expression est une donnée de type numérique et l'autre est de type STRING
L'erreur Type incompatible survient.
L'une des deux expressions a la valeur NULL
L'argument RESULT a la valeur NULL.
Si les deux expressions sont de type Variant, les règles ci-dessous s'appliquent : CONDITION
RÉSULTAT
Les deux expressions de type VARIANT sont numériques.
Addition.
Les deux expressions de type VARIANT sont des chaînes.
Concaténation.
Une expression de type VARIANT est numérique et l'autre est une chaîne.
Addition.
NOTES
Edition I O S
page 81
Dans le cas d'additions simples avec des expressions ne contenant que des types de données numériques, le type de données de l'argument result correspond généralement à celui de l'expression la plus précise. Les types de données numériques sont classés dans l'ordre de précision croissant suivant : Byte, Integer, Long, Single, Double, Currency et Decimal. Le tableau suivant détaille les exceptions à cette règle : CONDITION
INFORMATION
TYPE DE L'ARGUMENT RESULT
Addition de types SINGLE et LONG
Type DOUBLE.
L'argument RESULT est un variant de type LONG, SINGLE ou DATE excédant la plage de valeurs acceptées.
Conversion en variant de type DOUBLE.
L'argument RESULT est un variant de type BYTE excédant la plage de valeurs acceptées.
Conversion en variant de type INTEGER.
L'argument RESULTEST un variant de type INTEGER excédant la plage de valeurs acceptées.
Conversion en variant de type LONG.
Ajout d'une valeur de type DATE à tout autre type de données.
Type DATE.
Si l'une des deux expressions a la valeur Null, l'argument result est Null. Si les deux expressions sont Empty, l'argument resultest de type Integer. Cependant, si une seule expression est Empty, l'autre expression est renvoyée sans modification en argument result. L'ordre de précision de l'addition et de la soustraction diffère de celui de la multiplication –, OPERATEUR Permet de calculer la différence entre deux nombres ou d'indiquer qu'une expression numérique a une valeur négative. SYNTAXE RESULT = NUMBER1–NUMBER2
NOTES
page 82
reproduction réservée
SYNTAXE 2 NUMBER
La syntaxe de l'opérateur – comprend les éléments suivants. ÉLÉMENT
INFORMATION
DESCRIPTION
RESULT
Toute variable numérique.
NUMBER
Toute expression numérique.
NUMBER1
Toute expression numérique.
NUMBER2
Toute expression numérique.
Dans la syntaxe 1, l'opérateur – correspond à l'opérateur de soustraction arithmétique permettant de calculer la différence entre deux nombres. Dans la syntaxe 2, l'opérateur – correspond à l'opérateur unaire de négation indiquant qu'une expression a une valeur négative Le type de données de l'argument result correspond généralement à celui de l'expression la plus précise. Les types de données sont classés dans l'ordre de précision croissant suivant : Byte, Integer, Long, Single, Double, Currency et Decimal. Le tableau ci-dessous détaille les exceptions à cette règle
CONDITION
TYPE DE RESULT
Soustraction entre des données de types SINGLE et LONG.
Conversion en type DOUBLE.
L'argument RESULT est un variant de type LONG, SINGLE ou DATE excédant la plage de valeurs acceptées.
Conversion en type Variant contenant une donnée de type DOUBLE.
L'argument RESULT est un variant de type BYTE excédant la plage de valeurs acceptées.
Conversion en variant de type INTEGER.
L'argument RESULT est un variant de type INTEGER excédant la plage de valeurs acceptées.
Conversion en variant de type LONG.
Soustraction entre une donnée de type DATE et tout type de données.
Type DATE
Soustraction entre deux expressions de type DATE.
Type DOUBLE
NOTES
Edition I O S
page 83
INFORMATION
Si l'une ou les deux expressions ont la valeur NULL, l'argument RESULT est Null. Si une expression est EMPTY, elle est traitée comme si elle avait la valeur 0. L'ordre de précision de l'addition et de la soustraction diffère de celui de la multiplication /, OPERATEUR Permet de diviser deux nombres et renvoie en résultat un nombre à virgule flottante. SYNTAXE RESULT = NUMBER1/NUMBER2
La syntaxe de l'opérateur / comprend les éléments suivants : ÉLÉMENT
DESCRIPTION
RESULT
Toute variable numérique.
NUMBER1
Toute expression numérique.
NUMBER2
Toute expression numérique.
Le type de données de l'argument RESULT est généralement DOUBLE ou un variant de type DOUBLE. Le tableau ci-dessous détaille les exceptions à cette règle INFORMATION
CONDITION
TYPE DE RESULT
Les deux expressions sont de type Byte, INTEGER ou SINGLE.
Donnée de type SINGLE sauf dépassement de la plage de valeurs acceptées, auquel cas une erreur se produit.
Les deux expressions sont des variants de type BYTE, INTEGER ou SINGLE.
Variant de type SINGLE sauf dépassement de la plage de valeurs acceptées, auquel cas l'argument RESULT est un Variant contenant une donnée de type DOUBLE.
Division entre une donnée de type DECIMAL et tout autre type de données.
Type de données DECIMAL.
Si une ou les deux expressions sont NULL, l'argument RESULT est Null. Toute expression EMPTY est traitée comme si elle avait la valeur 0 INFORMATION
NOTES
page 84
reproduction réservée
\, OPERATEUR Permet de diviser deux nombres et renvoie comme résultat un entier. SYNTAXE RESULT = NUMBER1\NUMBER2
L'opérateur \ comprend les éléments suivants : ÉLÉMENT
INFORMATION
DESCRIPTION
RESULT
Toute variable numérique.
NUMBER1
Toute expression numérique.
NUMBER2
Toute expression numérique.
Avant exécution de la division, les expressions numériques sont arrondies à des expressions de type BYTE, INTEGER ou LONG. En général, le type de données de l'argument RESULT est BYTE, un variant de type BYTE, INTEGER, un variant de type INTEGER, LONG ou un variant de type LONG, que l'argument RESULT soit ou non un entier. La partie décimale est tronquée. Cependant, si une expression est NULL, l'argument RESULT est Null. Toute expression EMPTY est traitée comme si elle avait la valeur 0 ^, OPERATEUR Permet d'élever un nombre à une puissance. SYNTAXE RESULT = NUMBER^EXPONENT
La syntaxe de l'opérateur ^ comprend les éléments suivants : ÉLÉMENT
DESCRIPTION
RESULT
Toute variable numérique.
NUMBER
Toute expression numérique.
EXPONENT
Toute expression numérique.
NOTES
Edition I O S
page 85
INFORMATION
L'argument NUMBER ne peut être négatif que si l'argument EXPONANT est un entier. Lorsque plusieurs élévations à une puissance ont lieu dans une même expression, les opérateurs ^ sont évalués dans l'ordre d'apparition, de gauche à droite. En général, l'argument RESULT est une donnée de type Double ou Variant contenant une donnée de type Double. Cependant, si les arguments NUMBER ou EXPONENT correspondent à une expression de type NULL, l'argument RESULT a la valeur NULL =, OPERATEUR Utilisé pour affecter une valeur à une variable ou à une propriété. SYNTAXE VARIABLE = VALUE
La syntaxe de l'opérateur = comprend les éléments suivants : ÉLÉMENT
INFORMATION
DESCRIPTION
VARIABLE
Toute variable ou toute propriété en écriture.
VALUE
Tout littéral chaîne ou numérique, constante ou expression.
Le nom situé à gauche du signe égal peut être une simple variable scalaire ou l'élément d'un tableau. Les propriétés situées à gauche du signe égal ne peuvent être que des propriétés en écriture lors de l'exécution ADDRESSOF, OPERATEUR Opérateur unaire provoquant la transmission de l'adresse de la procédure qu'il précède à une procédure API attendant un pointeur de fonction à cette position dans la liste d'arguments. SYNTAXE ADDRESSOF PROCEDURENAME L'argument PROCEDURENAME indique la procédure dont l'adresse va être passée. Il doit désigner une procédure figurant dans un module standard du projet dans lequel l'appel est effectué. En général, lorsqu'un nom de procédure apparaît dans une liste d'arguments, la procédure est évaluée et l'adresse de la valeur renvoyée par la procédure est transmise. L'opérateur ADDRESSOF permet de passer l'adresse de la procédure à une fonction API de Windows dans une bibliothèque de liaisons dynamiques (DLL), et non la valeur renvoyée par la procédure. La fonction API peut alors utiliser l'adresse pour appeler la procédure Basic. Ce processus est connu sous le nom de « rappel ». L'opérateur ADDRESSOF apparaît uniquement dans l'appel à la procédure API. S'il est vrai que vous pouvez utiliser l'opérateur ADDRESSOF pour passer des pointeurs de procédure aux procédures Basic, vous ne pouvez appeler une fonction avec un pointeur de ce type en Basic. Cela signifie, par exemple, qu'une classe écrite en Basic ne peut faire de rappel à son contrôleur à l'aide d'un pointeur de ce type. Lorsque l'opérateur ADDRESSOF est utilisé pour passer un pointeur de procédure aux procédures Basic, le paramètre de la procédure appelée doit être de type AS LONG.
NOTES
page 86
reproduction réservée
ATTENTION
INFORMATION
L'utilisation de l'opérateur ADDRESSOF peut provoquer des résultats imprévisibles si vous ne maîtrisez pas totalement le concept de rappels de fonctions. Il est indispensable que vous compreniez le mode de fonctionnement de la partie Basic du rappel, de même que le code de la DLL dans laquelle vous passez l'adresse de la fonction. Le débogage de ces interactions est difficile car le programme s'exécute dans le même processus que celui de l'environnement de développement. Dans certains cas, le débogage systématique peut même s'avérer impossible Vous pouvez créer vos propres prototypes de fonctions de rappel dans les DLL compilées à l'aide de Microsoft Visual C++ (ou d'outils similaires). Pour travailler avec l'opérateur ADDRESSOF, votre prototype doit utiliser la convention d'appel __STDCALL. La convention d'appel par défaut (__cdecl) ne fonctionne pas avec l'opérateur ADDRESSOF. Étant donné que l'appelant d'un rappel ne se trouve pas dans votre programme, il est important qu'une erreur rencontrée dans la procédure de rappel ne se propage pas dans l'appelant. Pour ce faire, insérez l'instruction ON ERROR RESUME NEXT au début de la procédure de rappel AND, OPERATEUR Permet d'établir une conjonction logique entre deux expressions. SYNTAXE RESULT = EXPRESSION1
AND EXPRESSION2 La syntaxe de l'opérateur AND comprend les éléments suivants : ÉLÉMENT
DESCRIPTION
RESULT
Toute variable numérique.
EXPRESSION1
Toute expression.
EXPRESSION2
Toute expression.
Si les deux expressions ont la valeur TRUE, l'argument RESULT est TRUE. Si l'une des expressions a la valeur FALSE, l'argument RESULT est FALSE. Le tableau ci-dessous montre comment est déterminée la valeur de l'argument RESULT SI EXPRESSION1
ET SI EXPRESSION2 EST
RESULT PREND LA VALEUR
EST
TRUE
TRUE
TRUE
TRUE
FALSE
FALSE
TRUE
NULL
NULL
FALSE
TRUE
FALSE
FALSE
FALSE
FALSE
FALSE
NULL
FALSE
NULL
TRUE
NULL
NULL
FALSE
FALSE
NULL
NULL
NULL
Edition I O S
page 87
L'opérateur AND permet également d'effectuer une comparaison au niveau du bit des bits occupant la même position dans deux expressions numériques et définit le bit correspondant dans l'argument RESULT selon le tableau ci-dessous : BIT DANS EXPRESSION1
BIT DANS EXPRESSION2
ARGUMENT RESULT
0
0
0
0
1
0
1
0
0
1
1
1
OPERATEURS DE COMPARAISON Permettent de comparer des expressions. SYNTAXE RESULT = EXPRESSION1 COMPARISONOPERATOR EXPRESSION2 RESULT = OBJECT1 IS OBJECT2 RESULT = STRING LIKE PATTERN
Les opérateurs de comparaison comportent les éléments suivants : ÉLÉMENT
DESCRIPTION
RESULT
Toute variable numérique.
EXPRESSION
Toute expression.
COMPARISONOPERATOR
Tout opérateur de comparaison.
OBJECT
Tout nom d'objet.
STRING
Toute expression de chaîne.
PATTERN
Toute expression de chaîne ou plage de caractères.
NOTES
page 88
reproduction réservée
Le tableau ci-dessous contient la liste des opérateurs de comparaison et des conditions déterminant si l'argument RESULT est TRUE, FALSE ou NULL OPÉRATEUR
TRUE SI
FALSE SI
NULL SI
< (inférieur à)
expression1 < expression2
expression1 >= expression2
expression1 ou expression2 = NULL
<= (inférieur ou égal à)
expression1 <= expression2
expression1 > expression2
expression1 ou expression2 = NULL
> (supérieur à)
expression1 > expression2
expression1 <= expression2
expression1 ou expression2 = NULL
>= (supérieur ou égal à)
expression1 >= expression2
expression1 < expression2
expression1 ou expression2 = NULL
= (égal à)
expression1 = expression2
expression1 <> expression2
expression1 ou expression2 = NULL
<> (différent de)
expression1 <> expression2
expression1 = expression2
expression1 ou expression2 = NULL
Les opérateurs IS et LIKE ont des fonctionnalités de comparaison spécifiques qui les distinguent des opérateurs décrits dans le tableau ci-dessus INFORMATION
Lors de la comparaison de deux expressions, il est parfois difficile de déterminer si elles sont comparées en tant que nombres ou en tant que chaînes de caractères. Le tableau suivant indique la manière dont les expressions sont comparées et les résultats lorsque l'une des expressions n'est pas de type Variant : CONDITION
RÉSULTAT
Les deux expressions sont des types de données numériques (Byte, BOOLEAN, INTEGER, LONG, SINGLE, DOUBLE, DATE, CURRENCY ou DECIMAL)
Effectue une comparaison numérique.
Les deux expressions sont de type String
Effectue une comparaison de chaînes.
Une expression est de type numérique et l'autre de type VARIANT, qui est ou peut-être un nombre
Effectue une comparaison numérique.
Une expression est de type numérique et l'autre est une chaîne de type VARIANT ne pouvant être convertie en nombre
L'erreur type incompatible se produit.
Une expression est de type STRING et l'autre de type VARIANT, sauf NULL
Effectue une comparaison de chaînes.
Edition I O S
page 89
CONDITION
RÉSULTAT
Une expression est EMPTY et l'autre est de type numérique
Effectue une comparaison numérique en utilisant la valeur 0 pour l'expression EMPTY.
Une expression est EMPTY et l'autre est de type STRING
Effectue une comparaison de chaînes en utilisant une chaîne de longueur nulle ("") pour l'expression EMPTY.
Si les arguments expression1 et expression2 sont tous deux de type VARIANT, la méthode de comparaison est déterminée par leur type sous-jacent. Le tableau suivant définit la méthode de comparaison des expressions de type VARIANT et les résultats obtenus en fonction du type sous-jacent : CONDITION
RÉSULTAT
Les deux expressions de type VARIANT sont numériques
Effectue une comparaison numérique.
Les deux expressions de type VARIANT sont des chaînes
Effectue une comparaison de chaînes.
Une des expressions de type VARIANT est numérique et l'autre est une chaîne
L'expression numérique est inférieure à l'expression de chaîne.
Une des expressions de type VARIANT a la valeur EMPTY et l'autre est numérique
Effectue une comparaison numérique en utilisant 0 pour l'expression EMPTY.
Une des expressions de type VARIANT est EMPTY et l'autre est une chaîne
Effectue une comparaison numérique en utilisant une chaîne de longueur nulle ("") pour l'expression EMPTY.
Les deux expressions de type VARIANT sont EMPTY
Les expressions sont égales.
Lors de la comparaison de données de types SINGLE et DOUBLE, la donnée de type DOUBLE est arrondie au degré de précision de celle de type SINGLE INFORMATION
Si une valeur de type CURRENCY est comparée à une valeur de type SINGLE ou DOUBLE, cette dernière est convertie en valeur de type CURRENCY. De même, lorsqu'une valeur de type DECIMAL est comparée à une valeur de type SINGLE ou DOUBLE, cette dernière est convertie en valeur de type DECIMAL. Avec les valeurs de type CURRENCY, les parties décimales inférieures à 0,0001 peuvent être perdues ; avec celles de type DECIMAL, les parties décimales inférieures à 1E-28 peuvent être perdues ou un dépassement de capacité peut se produire. Deux valeurs comparées peuvent alors paraître équivalentes sans toutefois l'être réellement.
NOTES
page 90
reproduction réservée
EQV, OPERATEUR Permet d'établir une équivalence logique entre deux expressions. SYNTAXE RESULT = EXPRESSION1 EQV EXPRESSION2
La syntaxe de l'opérateur Eqv comprend les éléments suivants : ÉLÉMENT
DESCRIPTION
RESULT
Toute variable numérique.
EXPRESSION1
Toute expression.
EXPRESSION2
Toute expression.
Si l'une des expressions est de valeur NULL, l'argument RESULT est également Null. Lorsqu'aucune des expressions n'est NULL, l'argument RESULT est déterminé selon le tableau suivant INFORMATION
SI EXPRESSION1 EST
ET SI EXPRESSION2 EST
RESULT PREND LA VALEUR
TRUE
TRUE
TRUE
TRUE
FALSE
FALSE
FALSE
TRUE
FALSE
FALSE
FALSE
TRUE
L'opérateur EQV effectue une comparaison au niveau du bit des bits occupant la même position dans deux expressions numériques et définit le bit correspondant dans l'argument RESULT en fonction du tableau suivant : BIT DANS EXPRESSION1
BIT DANS EXPRESSION2
ARGUMENT RESULT
0
0
1
0
1
0
1
0
0
1
1
1
NOTES
Edition I O S
page 91
IMP, OPERATEUR Permet d'établir une implication logique entre deux expressions. SYNTAXE RESULT = EXPRESSION1 IMP EXPRESSION2 La syntaxe de l'opérateur IMP comprend les
éléments suivants :
ÉLÉMENT
DESCRIPTION
RESULT
Toute variable numérique.
EXPRESSION1
Toute expression.
EXPRESSION2
Toute expression.
Le tableau ci-dessous montre comment est déterminée la valeur de l'argument result : SI EXPRESSION1 EST
ET SI EXPRESSION2 EST
RESULT PREND LA VALEUR
TRUE
TRUE
TRUE
TRUE
FALSE
FALSE
TRUE
NULL
NULL
FALSE
TRUE
TRUE
FALSE
FALSE
TRUE
FALSE
NULL
TRUE
NULL
TRUE
TRUE
SI EXPRESSION1 EST
ET SI EXPRESSION2 EST
RESULT PREND LA VALEUR
NULL
FALSE
NULL
NULL
NULL
NULL
NOTES
page 92
reproduction réservée
L'opérateur IMP effectue une comparaison au niveau du bit des bits occupant la même position dans deux expressions numériques et définit le bit correspondant dans l'argument RESULT en fonction du tableau suivant : BIT DANS EXPRESSION1
BIT DANS EXPRESSION2
ARGUMENT RESULT
0
0
1
0
1
1
1
0
0
1
1
1
IS, OPERATEUR SYNTAXE RESULT = OBJECT1 IS OBJECT2
La syntaxe de l'opérateur Is comprend les éléments suivants : ÉLÉMENT
INFORMATION
EXEMPLE
DESCRIPTION
RESULT
Toute variable numérique.
OBJECT1
Tout nom d'objet.
OBJECT2
Tout nom d'objet.
Si les arguments object1 et object2 font référence au même objet, l'argument RESULT a pour valeur TRUE. Dans le cas contraire, l'argument RESULT est FALSE. Il existe plusieurs façons de définir deux variables faisant référence au même objet
Dans l'exemple suivant, A fait référence au même objet que B : Set A = B Dans l'exemple suivant, A et B font référence au même objet que C : Set A = C Set B = C
NOTES
Edition I O S
page 93
LIKE, OPERATEUR Permet de comparer deux chaînes. SYNTAXE RESULT = STRING LIKE PATTERN La syntaxe de l'opérateur LIKE comprend
les éléments suivants :
ÉLÉMENT
INFORMATION
DESCRIPTION
RESULT
Toute variable numérique.
STRING
Toute expression de chaîne.
PATTERN
Toute expression de chaîne respectant les conventions décrites dans les remarques.
Si l'argument string correspond à l'argument pattern, l'argument RESULT a pour valeur TRUE. Dans le cas contraire, l'argument RESULT est FALSE. Si les arguments STRING ou PATTERN sont NULL, l'argument RESULT est NULL Le comportement de l'opérateur LIKE dépend de l'instruction OPTION COMPARE. Par défaut, la méthode de comparaison de chaînes de chaque module est OPTION COMPARE BINARY : La méthode OPTION COMPARE BINARY compare des chaînes en fonction d'un ordre de tri dérivé de la représentation binaire interne des caractères. L'ordre de tri est défini par la page de code. L'exemple suivant présente un ordre de tri binaire courant : A<B<E<Z<a<b<e<z<À<Ê<Ø<à<ê<ø La méthode OPTION COMPARE TEXT compare des chaînes sans prise en compte de la casse, en fonction d'un ordre de tri textuel défini par les paramètres régionaux de votre système. Avec la méthode OPTION COMPARE TEXT, les caractères de l'exemple précédent sont triés de la manière suivante : (A=a) < (À=à) < (B=b) < (E=e) < (Ê=ê) < (Z=z) < (Ø=ø) La gestion intégrée des critères spéciaux permet une grande souplesse dans les comparaisons de chaînes. Vous pouvez en effet utiliser des caractères génériques, des listes de caractères ou des plages de caractères, combinés à votre gré, pour comparer des chaînes. Le tableau suivant définit les caractères autorisés dans l'argument pattern et leur correspondance : CARACTÈRE(S) DANS PATTERN
CORRESPONDANCE DANS L'ARGUMENT STRING
?
Tout caractère unique.
*
Aucun ou plusieurs caractères.
#
Tout chiffre unique (de 0 à 9).
[CHARLIST]
Tout caractère unique compris dans l'argument CHARLIST.
[!CHARLIST]
Tout caractère unique non compris dans CHARLIST.
NOTES
page 94
reproduction réservée
Un groupe d'un ou plusieurs caractères (argument CHARLIST) délimité par des crochets ([ ]) permet de sélectionner tout caractère unique de l'argument string ; il peut comporter quasiment n'importe quel code de caractère, y compris des chiffres.
INFORMATION
Pour utiliser les caractères spéciaux tels que le crochet droit ouvrant ([), le point d'interrogation (?), le dièse (#) et l'astérisque (*), entourez-les de crochets. Le crochet droit fermant (]) ne peut être utilisé au sein d'un groupe comme critère de comparaison. En revanche, il peut être utilisé à l'extérieur d'un groupe, comme caractère isolé L'argument CHARLIST peut spécifier une plage de caractères dont les limites supérieure et inférieure sont séparées par un trait d'union (–). Par exemple, la chaîne [A-Z] génère une correspondance si l'argument string contient à la même position une lettre majuscule comprise entre A et Z. Plusieurs plages peuvent figurer entre crochets sans être délimitées entre elles. La signification d'une plage dépend de l'ordre des caractères en vigueur au moment de l'exécution ; il est déterminé par l'instruction OPTION COMPARE et les paramètres régionaux du système sur lequel le code est exécuté. Si l'on reprend l'exemple précédent avec la méthode OPTION COMPARE BINARY, la plage [A–E] correspond à A, B et E. Avec OPTION COMPARE TEXT, la plage [A–E] correspond à A, a, À, à, B, b, E, e. La plage ne correspond ni à Ê, ni à ê, car les caractères accentués viennent après les caractères non accentués dans l'ordre de tri. Les autres règles importantes qui régissent l'utilisation de critères spéciaux sont les suivantes : Un point d'exclamation (!) placé au début de l'argument CHARLIST signifie que la correspondance est uniquement établie si l'argument string ne contient aucun des caractères de l'argument CHARLIST. Utilisé hors des crochets droits, le point d'exclamation correspond à lui-même. Le trait d'union (–) peut apparaître soit au début (éventuellement à la suite d'un point d'exclamation), soit à la fin de l'argument CHARLIST pour correspondre à lui-même. En tout autre emplacement, le trait d'union sert à désigner une plage de caractères. Lorsqu'une plage de caractères est définie, les caractères doivent apparaître dans l'ordre ascendant (du premier au dernier). [A-Z] correspond à une plage valable, contrairement à [Z-A]. La séquence de caractères [] est considérée comme une chaîne de longueur nulle ("").
AVANCÉ
Dans certaines langues, l'alphabet comporte des caractères spéciaux représentant deux caractères distincts. Par exemple, plusieurs langues utilisent le caractère "æ" pour représenter les caractères "a" et "e" lorsqu'ils apparaissent ensemble. L'opérateur LIKE reconnaît que ce caractère spécial équivaut à deux caractères. Quand une langue utilisant un de ces caractères spéciaux est définie dans les paramètres régionaux du système, toute occurrence du caractère spécial dans les arguments pattern ou string correspond à la séquence de deux caractères équivalente dans l'autre chaîne. De même, un caractère spécial placé entre crochets droits (seul, dans une liste ou dans une plage) dans l'argument pattern correspond à la séquence de deux caractères équivalente dans l'argument string
NOTES
Edition I O S
page 95
MOD, OPERATEUR Permet de diviser deux nombres en ne renvoyant que le reste. SYNTAXE RESULT = NUMBER1 MOD NUMBER2 La syntaxe de l'opérateur MOD comprend
les éléments suivants :
ÉLÉMENT
INFORMATION
DESCRIPTION
RESULT
Toute variable numérique.
NUMBER1
Toute expression numérique.
NUMBER2
Toute expression numérique.
L'opérateur MODULO, ou reste, divise l'argument NUMBER1 par l'argument NUMBER2 (en arrondissant les nombres à virgules flottantes à des nombres entiers) et ne retourne que le reste dans l'argument RESULT. Par exemple, dans l'expression ci-dessous, A (argument RESULT) est égal à 5 A = 19 Mod 6.7 En général, le type de données de l'argument RESULT est Byte, un variant de type BYTE, INTEGER, un variant de type INTEGER, Long ou Variant contenant une donnée de type LONG, que l'argument RESULT soit ou non un nombre entier. La partie décimale est tronquée. Cependant, si une expression est NULL, l'argument RESULT est NULL. Toute expression EMPTY est traitée comme si elle avait la valeur 0. NOT, OPERATEUR Permet d'établir la négation logique d'une expression. SYNTAXE RESULT = NOT EXPRESSION
La syntaxe de l'opérateur Not comprend les éléments suivants : ÉLÉMENT
DESCRIPTION
RESULT
Toute variable numérique.
EXPRESSION
Toute expression.
NOTES
page 96
reproduction réservée
Le tableau ci-dessous montre comment est déterminée la valeur de l'argument RESULT : ARGUMENT EXPRESSION
ARGUMENT RESULT
TRUE
FALSE
FALSE
TRUE
NULL
NULL
En outre, l'opérateur NOT réalise une inversion des valeurs de bit d'une variable et définit le bit correspondant dans l'argument RESULT en fonction du tableau suivant : BIT DANS EXPRESSION
BIT DANS L'ARGUMENT RESULT
0
1
1
0
OR, OPERATEUR Permet d'établir une disjonction logique entre deux expressions. SYNTAXE RESULT = EXPRESSION1 OR EXPRESSION2 La syntaxe de l'opérateur OR comprend les
éléments suivants :
ÉLÉMENT
DESCRIPTION
RESULT
Toute variable numérique.
EXPRESSION1
Toute expression.
EXPRESSION2
Toute expression.
NOTES
Edition I O S
page 97
Si l'une des deux ou les deux expressions ont pour valeur TRUE, l'argument RESULT est TRUE. Le tableau ci-dessous montre comment est déterminée la valeur de l'argument RESULT : SI EXPRESSION1 EST
ET SI EXPRESSION2 EST
RESULT PREND LA VALEUR
TRUE
TRUE
TRUE
TRUE
FALSE
TRUE
TRUE
NULL
TRUE
FALSE
TRUE
TRUE
FALSE
FALSE
FALSE
FALSE
NULL
NULL
NULL
TRUE
TRUE
NULL
FALSE
NULL
NULL
NULL
NULL
L'opérateur OR effectue également une comparaison au niveau du bit des bits occupant la même position dans deux expressions numériques et définit le bit correspondant dans l'argument RESULT en fonction du tableau suivant : BIT DANS EXPRESSION1
BIT DANS EXPRESSION2
ARGUMENT RESULT
0
0
0
0
1
1
1
0
1
1
1
1
XOR, OPERATEUR Permet d'établir une exclusion logique entre deux expressions. SYNTAXE [RESULT =] EXPRESSION1 XOR EXPRESSION2 La syntaxe de l'opérateur XOR comprend les éléments suivants : ÉLÉMENT
DESCRIPTION
RESULT
Facultatif. Toute variable numérique.
EXPRESSION1
Toute expression.
EXPRESSION2
Toute expression.
page 98
reproduction réservée
Si une seule des expressions a pour valeur TRUE, l'argument RESULT est TRUE. Toutefois, si l'une des expressions est NULL, l'argument RESULT est également NULL. Lorsque aucune des deux expressions n'est NULL, la valeur de l'argument RESULT est déterminée en fonction du tableau suivant : Si expression1 est
et si expression2 est
result prend la valeur
TRUE
TRUE
FALSE
TRUE
FALSE
TRUE
FALSE
TRUE
TRUE
FALSE
FALSE
FALSE
L'opérateur XOR sert à la fois d'opérateur logique et d'opérateur de comparaison au niveau du bit. Lors d'une comparaison au niveau du bit de deux expressions, le résultat est établi selon le "ou" logique exclusif, comme le montre le tableau suivant : BIT DANS EXPRESSION1
BIT DANS EXPRESSION2
ARGUMENT RESULT
0
0
0
0
1
1
1
0
1
1
1
0
NOTES
Edition I O S
page 99
NOTES
page 100
reproduction réservée
VIII. FONCTIONS ET INSTRUCTIONS Les catégories de fonctions et les fonctions les plus usuelles sont :
A A.. LLE ES SC CH HA AIIN NE ES SD DE EC CA AR RA AC CTTÈ ÈR RE ES S FONCTIONS FORMAT , FORMAT$ (FRANÇAIS/ANGLAIS) Mettent en forme un nombre, une date, une heure ou une chaîne de caractères en fonction des instructions contenues dans une expression de mise en forme. SYNTAXE FORMAT[$](EXPRESSION[, FMT] ) La fonction Format retourne une donnée de type Variant tandis que la fonction Format$ retourne une donnée de type String. La fonction FORMAT[$] utilise les arguments suivants : ARGUMENT
DESCRIPTION
EXPRESSION
Expression numérique ou expression chaîne à mettre en forme.
FMT
Expression de mise en forme d'une chaîne de caractères au format de l'affichage qui spécifie la manière dont l'expression doit être affichée. Différents types d'expressions de mise en forme (numérique, date/heure ou chaîne) ne peuvent pas être mélangés dans un même argument fmt. Vous pouvez également utiliser les formats de noms de la propriété Format.
Si FMT est omis ou possède une longueur nulle et si expression est une expression numérique, FORMAT[$] offre les mêmes fonctionnalités que la fonction NUMCHAÎNE[$] (Str[$]) en convertissant la valeur numérique dans le type de données de retour approprié. N'oubliez pas que les nombres positifs convertis en chaînes de caractères à l'aide de la fonction FORMAT[$] sont dépourvus des espaces de gauche réservés à l'affichage du signe de la valeur, tandis que ceux convertis à l'aide de la fonction NUMCHAÎNE[$] (Str[$]) conservent cet espace de gauche. L'exemple ci-dessous utilise la fonction Format pour formater la date et l'heure conformément aux formats spécifiés dans la section "options régionales" du Panneau de configuration : EXEMPLE
NL = CHR(13) & CHR(10) ' DÉFINIT UNE NOUVELLE LIGNE. MSG = "AUJOURD'HUI, NOUS SOMMES LE " & FORMAT(NOW (), "DD/MM/YYYYJ") & "." & NL MSG = MSG & "IL EST " & FORMAT(MAINTENANT, "HH :MM :SS") MSG = MSG & "." MSGBOX MSG ' AFFICHE LE FORMATAGE DE LA DATE/HEURE
NOTES
Edition I O S
page 101
Le tableau ci-dessous liste les symboles utiles pour créer une expression de mise en forme pour des nombres : AMÉRICAIN
FRANÇAIS SI <>
SIGNIFICATION
#
Espace réservé à un chiffre. Affichage d'un chiffre ou de rien d'autre. Si l'expression mise en forme renferme un chiffre à la position occupée par le signe # dans la chaîne de mise en forme, il est affiché. Sinon, rien n'est affiché à cette position. Le signe # se comporte comme l'espace réservé au chiffre 0, toutefois les zéros non significatifs et les zéros à droite ne sont pas affichés si le nombre compte un nombre de chiffres inférieur ou égal au nombre de signes # de part et d'autre du séparateur de décimales.
%
Espace réservé au signe pourcentage. L'expression est multipliée par 100. Le signe % est inséré dans la position où il apparaît dans la chaîne de mise en forme.
0
Affichage d'un chiffre ou 0. Si l'expression mise en forme renferme un chiffre à la position occupée par le 0 dans la chaîne, il est affiché. Sinon, 0 est affiché à cette position. Si le nombre mis en forme possède moins de chiffres qu'il a de zéros (de part et d'autre de la virgule) dans l'expression, les zéros non significatifs et les zéros à droite sont affichés. Si le nombre compte plus de chiffres à droite du séparateur de décimales qu'il a de zéros à droite de ce séparateur dans l'expression de mise en forme, le nombre est arrondi à autant de chiffres après la virgule qu'il a de zéros. Si le nombre compte plus de chiffres à gauche du séparateur de décimales qu'il y a de zéros à gauche de ce séparateur dans l'expression, les chiffres supplémentaires sont affichés sans subir la moindre modification.
.
,
page 102
,
Espace réservé au séparateur de décimales. Si l'expression de mise en forme ne contient que des signes de nombre à gauche de ce symbole, cette expression est un nombre compris entre -1 et 1. Si vous souhaitez que les nombres compris entre -1 et 1 soient toujours accompagnés d'un zéro non significatif, insérez un 0 comme premier chiffre situé à gauche du séparateur de décimales. Le caractère réservé pour le séparateur de décimales dépend de l'option Format des nombres de la section "options régionales" du Panneau de configuration Windows. espace
Séparateur de milliers séparant les milliers des centaines dans un nombre qui comporte quatre chiffres ou davantage à gauche du séparateur de décimales. L'utilisation normale du séparateur de milliers est spécifiée si le format renferme une virgule entourée d'espaces réservés à un chiffre (0 ou #). Deux virgules adjacentes ou une virgule située immédiatement à gauche du séparateur de décimales signifie "mettre le nombre à l'échelle en le divisant par 1000 et en l'arrondissant éventuellement". Cette technique permet de mettre à l'échelle des nombres élevés. Par exemple, vous pouvez utiliser la chaîne de mise en forme "##0,," pour représenter 100 millions sous la forme 100. Les nombres inférieurs à 1 million sont affichés sous la forme 0. Le caractère effectivement utilisé comme séparateur de milliers dans la sortie mise en forme dépend de l'option Format des nombres du Panneau de configuration de la section "options régionales" de Windows.
reproduction réservée
E- E+ E- E+
Format scientifique. Si l'expression de mise en forme contient au moins un espace réservé à un chiffre (0 ou #) à droite de E-, E+, e-, ou e+, le nombre est affiché au format scientifique et E ou e est inséré entre le nombre et son exposant. Le nombre d'espaces réservés à un chiffre sur la droite détermine le nombre de chiffres de l'exposant. Utilisez E- ou e- pour placer un signe moins (-) devant des exposants devant être négatifs. Utilisez E+ ou e+ pour placer un signe moins (-) devant des exposants déjà négatifs et un signe plus (+) devant des exposants qui sont déjà positifs.
:
Séparateur horaire. Il sépare les heures, les minutes et les secondes lorsque des valeurs horaires sont mises en forme. Le caractère effectivement utilisé comme séparateur d'heure dépend de l'option Format horaire du Panneau de configuration de la section "options régionales" de Windows.
/
Séparateur de date séparant le jour, le mois et l'année lorsque des valeurs de date sont mises en forme. Le caractère utilisé comme séparateur dépend de l'option Format de la date spécifiée dans la section "options régionales" du Panneau de configuration Windows.
-+$()
Affichage d'un caractère tel quel. Pour afficher un caractère différent de ceux listés, faites-le précéder d'une barre oblique inversée (\) ou entourez-le de guillemets (" ").
ESPACE
\
Affichage du caractère suivant de la chaîne de mise en forme. De nombreux caractères de l'expression de mise en forme possèdent une signification spéciale et ne peuvent pas être affichés tels quels s'ils ne sont pas précédés d'une barre oblique inversée (non affichée). L'utilisation de cette barre oblique inversée équivaut à placer entre guillemets (" ") le caractère qui suit. Pour afficher une barre oblique inversée (\), utilisez deux barres obliques inversées (\\). Parmi les exemples de caractères qui ne peuvent pas être affichés tels quels, il y a les caractères de mise en forme de la date et de l'heure (a, c, d, e, h, j, m, n, p, q, s, t, w, y, / ; et :), les caractères de mise en forme numérique (#, 0, %, E, e, virgule et point), ainsi que les caractères de mise en forme de chaîne (@, &, <, > et !).
"ABC"
Affiche la chaîne de caractères insérée entre guillemets (" "). Pour inclure une chaîne de caractères dans fmt à partir d'Visual Basic, vous devez utiliser la fonction Car(34) (Chr(34)) pour mettre le texte entre guillemets (" ") (34 est le code ANSI qui correspond aux guillemets). Dans les feuilles de propriétés, tapez simplement les guillemets (" ").
[COULEUR]
Affichage de la chaîne de caractères dans la couleur spécifiée. Les couleurs valables sont les suivantes : noir, bleu, vert, cyan, rouge, magenta, jaune et blanc. La couleur n'est spécifiée que dans des feuilles de propriétés ACCESS.
*
Affichage du caractère suivant sous la forme du caractère de remplissage. Un espace vierge dans un champ est rempli par le caractère qui suit l'astérisque.
NOTES
Edition I O S
page 103
En programmation Visual Basic, utiliser les symboles américains. Dans les expressions, utilisez les symboles qui correspondent au panneau de configuration Windows.
INFORMATION
A moins que l'argument "fmt" soit d'un des formats précédents, le résultat d'un appel de fonction sera mis en forme suivant le Panneau de configuration de Windows Utiliser les symboles suivants pour créer une expression de mise en forme "dates et heures" : AMÉRICAIN
FRANÇAIS SI <>
SIGNIFICATION
C
c
Affichage de la date sous la forme ddddd et affichage de l'heure sous la forme t t t t t. Seules les informations pour la date sont affichées si le numéro de série date ne comporte aucune partie fractionnelle. Seules les informations pour l'heure sont affichées en l'absence de parties entières.
D
j
Affichage du jour sous la forme de nombre sans zéro non significatif (1-31).
DD
jj
Affichage du jour sous la forme d'un nombre avec un zéro non significatif (01-31)
DDD
jjj
Affichage du jour sous forme abrégée (Dim-Sam).
DDDD
jjjj
Affichage du jour sous forme complète (Dimanche-Samedi).
DDDDD
jjjjj
Affichage d'un numéro de série date sous forme d'une date complète (jour, mois et année) mise en forme conformément à l'option Format de la date (Format abrégé) du Panneau de configuration Windows. S'il n'existe pas de format de date abrégé, le format de date abrégé par défaut est j/m/aa.
DDDDDD
jjjjjj
Affichage d'un numéro de série date sous forme d'une date complète (jour, mois et année) mise en forme conformément à l'option Format de la date (Format complet) du Panneau de configuration Windows. Le format complet par défaut est jj mmmm aaaa.
W
e
Affichage du jour de la semaine sous forme d'un nombre (1 pour Dimanche à 7 pour Samedi.)
WW
ee
Affichage de la semaine de l'année sous la forme d'un nombre (1-54).
M
m
Affichage du mois sous forme d'un nombre sans zéro non significatif (1-12). Si h ou hh est immédiatement suivi de m, les minutes sont affichées au lieu du mois.
MM
mm
Affichage du mois sous forme d'un nombre avec zéro non significatif (01-12). Si h ou hh est immédiatement suivi de m, les minutes sont affichées au lieu du mois
MMM
mmm
Affichage du mois sous forme abrégée (jan-déc).
MMMM
mmmm
Affichage du mois sous forme complète (janvier-décembre).
Q
t
Affichage du trimestre de l'année sous forme d'un nombre (1-4).
Y
a
Affichage du jour de l'année sous forme d'un nombre (1-366).
YY
aa
Affichage de l'année sous forme d'un nombre à deux chiffres (00-99).
YYYY
aaaa
Affichage de l'année sous forme d'un nombre à quatre chiffres (100-9999).
page 104
reproduction réservée
H
h
Affichage des heures sous forme d'un nombre ne commençant pas par un zéro non significatif (0-23).
HH
hh
Affichage des heures sous forme d'un nombre avec un zéro non significatif (00-23).
N
n
Affichage des minutes sous forme d'un nombre sans zéro non significatif (0-59).
NN
nn
Affichage des minutes sous forme d'un nombre avec un zéro non significatif (00-59).
S
s
Affichage des secondes sous forme d'un nombre sans zéro non significatif (0-59).
SS
ss
Affichage des secondes sous forme d'un nombre avec un zéro non significatif (00-59).
TTTTT
lllll
Affichage d'un numéro de série heure sous forme d'une heure complète (heures, minutes, secondes) mise en forme à l'aide du séparateur d'heure défini par l'option Format horaire du Panneau de configuration de Windows. Un zéro non significatif est affiché si l'option Zéro significatif est sélectionnée. Le format horaire par défaut est h:mm:ss.
Ci-dessous des exemples de format de la date et de l'heure : FORMAT AMÉRICAIN
FORMAT FRANÇAIS
AFFICHAGE
M/D/YY
M/J/AA
12/7/58
D-MMMM-YY
J-MMMM-AA
7-DÉCEMBRE-58
D-MMMM
J-MMMM
7-DÉCEMBRE
MMMM-YY
MMMM-AA
DÉCEMBRE-58
H:MM
H:MM
20:50
H:MM:SS
H:MM:SS
20:50:35
M/D/YY H:MM
M/J/AA H:MM
12/7/58 20:50
NOTES
Edition I O S
page 105
Les chaînes peuvent également être mises en forme au moyen de la fonction Format[$]. Une expression de mise en forme des chaînes peut contenir une ou deux sections séparées par un point-virgule (;). Ci-dessous les symboles à utiliser pour créer une expression de mise en forme pour des chaînes. @
Espace réservé à un caractère. Affichage d'un caractère ou d'un espace. Si la chaîne mise en forme renferme un caractère à la position occupée par le symbole @, il est affiché. Sinon, un espace est affiché à cette position. Les espaces réservés sont remplis de droite à gauche à moins que la chaîne de mise en forme ne renferme un caractère "!". Voir ci-dessous.
&
Espace réservé à un caractère. Affichage d'un caractère ou de rien d'autre. Si la chaîne mise en forme renferme un caractère à la position occupée par le symbole &, il est affiché. Sinon, rien n'est affiché. Les espaces réservés sont remplis de droite à gauche à moins que la chaîne de mise en forme ne renferme un caractère "!". Voir cidessous.
<
Minuscules forcées. Tous les caractères sont affichés en minuscules.
>
Majuscules forcées. Tous les caractères sont affichés en majuscules.
!
Espaces réservés forcés, à remplir de gauche à droite plutôt que l'inverse
FONCTIONS CHAINE , CHAINE$ (FRANÇAIS) / FONCTIONS STRING , STRING$ (ANGLAIS) Retournent une chaîne dont les caractères possèdent tous un code ANSI donné ou sont tous le premier caractère d'une expression chaîne. SYNTAXE CHAÎNE[$](NOMBRE; CODE-CAR) STRING[$](NOMBRE, CODE-CAR) ou CHAÎNE[$](NOMBRE; CHAÎNE) STRING[$](NOMBRE, CHAÎNE) Dans Visual Basic, seul le nom de fonction anglais peut être utilisé. Sinon, utiliser indifféremment le français ou l'anglais. La fonction Chaîne (String) retourne une donnée de type Variant tandis que la fonction Chaîne$ (String$) retourne une donnée de type String. Utilisez la fonction Chaîne[$] (String[$]) pour créer une chaîne constituée d'un caractère répété indéfiniment.
NOTES
page 106
reproduction réservée
La fonction Chaîne[$] (String[$]) utilise les arguments suivants : ARGUMENT
DESCRIPTION
NOMBRE
Expression numérique indiquant la longueur de la chaîne retournée. Cette valeur doit être comprise entre 0 et environ 65 535.
CODE-CAR
Code ANSI du caractère utilisé pour constituer la chaîne de retour. Il s'agit d'une expression numérique dont l'évaluation donne une donnée de type Integer ayant une valeur comprise entre 0 et 255 inclus.
CHAÎNE
Expression chaîne dont le premier caractère est utilisé pour constituer la chaîne de retour.
Si le deuxième argument (code-car ou chaîne) de l'une des syntaxes est une donnée de type Variant, le type de données source détermine la manière dont la fonction Chaîne[$] (String[$]) utilise cet argument. Si l'argument est une donnée de type Variant de TypeVar 8 (String), Chaîne[$] (String[$]) utilise le premier caractère pour créer la chaîne de retour. Si l'argument est une donnée de type Variant de TypeVar 2-7 (type numérique quelconque), Chaîne [$] (String[$]) utilise la valeur numérique comme code ANSI. Cette valeur est utilisée pour créer la donnée de String de retour. Une donnée de type Variant de TypeVar 1 (Null) engendre une erreur. Pour convertir des valeurs numériques supérieures à 255 en un code ASCII compris entre 0 et 255, la fonction Chaîne[$] (String[$]) utilise le reste de la division de la valeur par 256 (argument Mod 256). FONCTIONS ESPACE , ESPACE$ (FRANÇAIS) / FONCTIONS SPACE , SPACE$ (ANGLAIS) Retournent une chaîne constituée d'un nombre d'espaces spécifié. SYNTAXE ESPACE[$](NOMBRE) SPACE[$](NOMBRE) Dans Visual Basic, seul le nom de fonction anglais peut être utilisé. Sinon, utilisez indifféremment le français ou l'anglais La fonction Espace (Space) retourne une donnée de type Variant, tandis que la fonction Espace$ (Space$) retourne une donnée de type String. L'argument nombre spécifie le nombre d'espaces que la chaîne de caractères doit contenir. Il peut s'agir de n'importe quel type de données numérique. Toutefois, l'argument est arrondi à une donnée de type Long et doit être compris entre 0 et environ 65 535 inclus.
NOTES
Edition I O S
page 107
FONCTION ASC (FRANÇAIS/ANGLAIS) Retourne une valeur numérique qui correspond au code ANSI du premier caractère d'une expression chaîne. SYNTAXE ASC(EXPRESSION-CHAÎNE) Si l'argument expression-chaîne est une donnée de type String de longueur nulle ou une donnée de type Variant Null (TypeVar 1), il engendre une erreur d'exécution. FONCTIONS CAR , CAR$ (FRANÇAIS) / FONCTIONS CHR , CHR$ (ANGLAIS) Retournent une chaîne d'un seul caractère dont le code ANSI est celui de l'argument. SYNTAXE CAR[$](CODE-CAR) CHR[$](CODE-CAR) Dans Visual Basic, seul le nom de fonction anglais peut être utilisé. Sinon, utilisez indifféremment le français ou l'anglais. La fonction Car (Chr) retourne une donnée de type Variant tandis que la fonction Car$ (Chr$) retourne une donnée de type String. L'argument code-car est un entier compris entre 0 et 255 inclus. Les applications écrites pour Windows utilisent le jeu de caractères ANSI. Les codes de caractères ANSI compris entre 0 et 31 inclus sont identiques aux codes standards ASCII non imprimables. Par exemple, Car(13) (Chr(13)) retourne un caractère de retour chariot tandis que Car(10) (Chr(10)) retourne un caractère de saut de ligne. Ensemble, ils permettent de forcer le passage à une nouvelle ligne quand les chaînes des messages sont mises en forme au moyen de la fonction BoîteMsg (MsgBox) ou BEntrée (InputBox). FONCTION DANSCHAINE (FRANÇAIS) / FONCTION INSTR (ANGLAIS) Retourne la position de la première occurrence d'une chaîne à l'intérieur d'une autre chaîne. SYNTAXE DANSCHAÎNE( [DÉBUT;] EXPR-CHAÎNE1; EXPR-CHAÎNE2) INSTR( [DÉBUT,] EXPR-CHAÎNE1, EXPR-CHAÎNE2) ou DANSCHAÎNE(DÉBUT; EXPR-CHAÎNE1; EXPR-CHAÎNE2; COMPARER) INSTR(DÉBUT, EXPR-CHAÎNE1, EXPR-CHAÎNE2, COMPARER) FONCTIONS DROITE , DROITE$ (FRANÇAIS) / FONCTIONS RIGHT , RIGHT$ (ANGLAIS) Retournent les n caractères de droite d'un argument constitué d'une expression chaîne. SYNTAXE DROITE[$](EXPR-CHAÎNE; N) RIGHT[$](EXPR-CHAÎNE, N)
NOTES
page 108
reproduction réservée
FONCTIONS GAUCHE , GAUCHE$ (FRANÇAIS) / FONCTIONS LEFT , LEFT$ (ANGLAIS) Retournent les n caractères de gauche d'un argument constitué d'une expression chaîne. SYNTAXE GAUCHE[$](EXPR-CHAÎNE; N) LEFT[$](EXPR-CHAÎNE, N) FONCTIONS EXTRACCHAINE , EXTRACCHAINE$ (FRANÇAIS) / FONCTIONS MID , MID$ (ANGLAIS) Retournent une chaîne de caractères extraite d'une autre chaîne de caractères. SYNTAXE EXTRACCHAÎNE[$](EXPR-CHAÎNE; DÉBUT; [LONGUEUR] ) MID[$](EXPR-CHAÎNE, DÉBUT, [LONGUEUR] ) FONCTIONS MAJUSCULE , MAJUSCULE$ (FRANÇAIS) / FONCTIONS UCASE , UCASE$ (ANGLAIS) Retournent une chaîne dans laquelle toutes les lettres d'un argument ont été converties en majuscules. SYNTAXE MAJUSCULE[$](EXPR-CHAÎNE) UCASE[$](EXPR-CHAÎNE) FONCTIONS MINUSCULE , MINUSCULE$ (FRANÇAIS) / FONCTIONS LCASE , LCASE$ (ANGLAIS) Retournent une chaîne dans laquelle toutes les lettres d'un argument ont été converties en minuscules. SYNTAXE MINUSCULE[$](EXPR-CHAÎNE) LCASE[$](EXPR-CHAÎNE) FONCTION NBCAR (FRANÇAIS) / FONCTION LEN (ANGLAIS) Retourne le nombre de caractères contenus dans une expression chaîne ou le nombre d'octets requis pour stocker une variable. SYNTAXE NBCAR(EXPR-CHAÎNE) LEN(EXPR-CHAÎNE) OU NBCAR(NOM-DE-VARIABLE) LEN(NOM-DE-VARIABLE)
NOTES
Edition I O S
page 109
FONCTION COMPCHAINE (FRANÇAIS) / FONCTION STRCOMP (ANGLAIS) Retourne une donnée de type Variant qui indique le résultat de la comparaison de deux arguments chaîne. SYNTAXE COMPCHAÎNE( EXPR-CHAÎNE1; EXPR-CHAÎNE2 [; COMPARER]) STRCOMP( EXPR-CHAÎNE1, EXPR-CHAÎNE2 [, COMPARER])
B B.. LLE ES SC CO ON NTTR RÔ ÔLLE ES SD DU UD DÉ ÉR RO OU ULLE EM ME EN NTT D DU UP PR RO OG GR RA AM MM ME E INSTRUCTION DO...LOOP Répète un bloc d'instructions aussi longtemps qu'une condition est vraie ou jusqu'à ce qu'une condition devienne vraie. SYNTAXE DO [{WHILE | UNTIL} CONDITION] [BLOC-D'INSTRUCTIONS] [EXIT DO] [BLOC-D'INSTRUCTIONS] LOOP ou DO [BLOC-D'INSTRUCTIONS] [EXIT DO] [BLOC-D'INSTRUCTIONS] LOOP [{WHILE | UNTIL} CONDITION] (Boucle au moins exécutée une fois) L'argument condition est une expression numérique ou une expression chaîne vraie (différente de zéro) ou fausse (0 ou de type NULL). Le bloc d'instructions compris entre DO et LOOP est répété aussi longtemps que, ou jusqu'à ce que, condition soit vraie. Une instruction EXIT DO, qui ne peut être utilisée qu'à l'intérieur d'une instruction DO...LOOP, offre une autre possibilité de sortie d'une structure de contrôle DO...LOOP. Un nombre quelconque d'instructions EXIT DO peuvent être placées n'importe où à l'intérieur de la structure de contrôle DO...LOOP. Souvent utilisée dans l'évaluation d'une condition (notamment IF...THEN), l'instruction EXIT DO passe la main à l'instruction qui suit immédiatement l'instruction Loop. Quand des instructions DO...LOOP sont imbriquées, le contrôle est transféré à l'instruction DO...LOOP située à un niveau d'imbrication au-dessus de la boucle dans laquelle l'instruction EXIT DO apparaît.
NOTES
page 110
reproduction réservée
EXEMPLE
L'exemple ci-dessous définit une instruction DO...LOOP sans fin dont on ne peut sortir que si l'utilisateur entre un chiffre appartenant à une plage déterminée DO RÉPONSE = INPUTBOX("ENTREZ UN CHIFFRE SUPÉRIEUR À 1 ET INFÉRIEUR À 9.") IF RÉPONSE > 1 AND RÉPONSE < 9 THEN ' VÉRIFIE LA PLAGE. EXIT DO ' QUITTE DO LOOP. END IF LOOP INSTRUCTION EXIT Quitte une instruction DO...LOOP, une boucle FOR...NEXT, une procédure FUNCTION ou une procédure SUB. SYNTAXE EXIT { DO | FOR | FUNCTION | SUB } L'instruction EXIT est utilisée de la manière suivante : ARGUMENT
DESCRIPTION
EXIT DO
Permet de quitter une instruction DO...LOOP. Elle ne peut être utilisée qu'à l'intérieur d'une instruction DO...LOOP EXIT DO passe la main à l'instruction qui suit l'instruction LOOP. Utilisée à l'intérieur d'instructions DO...LOOP imbriquées, EXIT DO passe la main à la boucle située à un niveau d'imbrication au-dessus de la boucle dans laquelle elle apparaît.
EXIT FOR
Permet de quitter une boucle FOR...NEXT. Elle ne peut être utilisée qu'à l'intérieur d'une boucle FOR...NEXT. EXIT FOR passe la main à l'instruction qui suit l'instruction NEXT. Utilisée à l'intérieur de boucles FOR...NEXT imbriquées, EXIT FOR passe la main à la boucle située à un niveau au-dessus de la boucle dans laquelle elle apparaît.
EXIT FUNCTION, EXIT SUB
Quitte immédiatement la procédure dans laquelle elle apparaît. L'instruction Exit doit correspondre au type de la procédure. L'exécution du programme se poursuit à partir de l'instruction qui suit celle qui a appelé la procédure.
Ne pas confondre les instructions EXIT et END. Exit ne marque pas la fin d'une procédure
ATTENTION
NOTES
Edition I O S
page 111
INSTRUCTION FOR...NEXT Répète un certain nombre de fois un groupe d'instructions. SYNTAXE FOR COMPTEUR = DÉBUT TO FIN [ STEP INCRÉMENT ] [BLOC-D'INSTRUCTIONS] [EXIT FOR] [BLOC-D'INSTRUCTIONS] NEXT [COMPTEUR [; COMPTEUR]]
ARGUMENT
DESCRIPTION
COMPTEUR
Variable numérique utilisée comme compteur de boucles. La variable ne peut être ni un élément de tableau ni un élément d'enregistrement.
DÉBUT
Valeur initiale du compteur.
FIN
Valeur finale du compteur.
INCRÉMENT
Valeur d'incrémentation du compteur après chaque exécution de la boucle. Si Step n'est pas spécifié, incrément prend par défaut la valeur 1.
BLOC-D'INSTRUCTION
Nombre quelconque d'instructions ou de méthodes à exécuter autant de fois qu'il est spécifié.
La valeur de STEP contrôle l'exécution de la boucle de la manière suivante : QUAND STEP EST
La boucle est exécutée si
POSITIF OU 0
compteur <= fin
NÉGATIF
compteur >= fin
NOTES
page 112
reproduction réservée
Une fois la boucle entrée et toutes ses instructions exécutées, STEP est ajouté au compteur. A ce moment, il y a une nouvelle exécution des instructions de la boucle (basée sur le même test que celui effectué à la première exécution), ou il y a sortie de la boucle et exécution de l'instruction qui suit immédiatement NEXT. Toute modification de la valeur de compteur à l'intérieur de la boucle risque de rendre la lecture et le débogage du programme plus difficiles. Il est possible d'imbriquer plusieurs boucles FOR...NEXT en plaçant une boucle FOR...NEXT à l'intérieur d'une autre. Des noms de variable (compteur) distincts doivent être utilisés pour chaque boucle. La construction suivante est tout à fait correcte :
EXEMPLE
FOR I = 1 TO 10 FOR J = 1 TO 10 FOR K = 1 TO 10 ... NEXT K NEXT J NEXT I Une instruction Next qui possède la syntaxe NEXT K, J, I équivaut à la suite d'instructions suivante : NEXT K NEXT J NEXT I Si vous omettez la variable dans une instruction NEXT, la valeur de STEP incrément est ajoutée à la valeur associée à l'instruction For la plus récente. Si l'instruction NEXT est rencontrée avant l'instruction For correspondante, elle engendre une erreur. INSTRUCTION WHILE...WEND Exécute une série d'instructions dans une boucle aussi longtemps qu'une condition est vraie. SYNTAXE WHILE CONDITION [BLOC-D'INSTRUCTIONS] WEND L'argument condition est une expression numérique ou une expression chaîne vraie (différente de 0) ou fausse (0 ou de type NULL). Si condition est vrai, toutes les instructions de bloc-d'instructions sont exécutées jusqu'à ce que l'instruction W END soit rencontrée. Le contrôle retourne à l'instruction W HILE et vérifie à nouveau condition. Si condition est toujours vrai, le processus est répété. Si condition est faux, l'exécution reprend à partir de l'instruction qui suit l'instruction W END. Les boucles W HILE...W END peuvent être imbriquées à n'importe quel niveau. Chaque WEND correspond à l'instruction W HILE la plus récente. Le programme ne doit pas entrer directement dans une boucle W HILE...W END sans que l'instruction W HILE soit préalablement exécutée, car il risquerait de provoquer des erreurs d'exécution ou des anomalies difficiles à localiser.
NOTES
Edition I O S
page 113
INSTRUCTION RESUME Reprend l'exécution du programme quand une routine de traitement d'erreur est terminée. SYNTAXE RESUME { [0] | NEXT | LIGNE} INSTRUCTION
DESCRIPTION
RESUME [0]
L'exécution du programme reprend à partir de l'instruction qui a provoqué l'erreur ou à partir de la dernière instruction en provenance de la procédure qui contient la routine de traitement d'erreur.
RESUME NEXT
L'exécution reprend à partir de l'instruction qui suit immédiatement celle qui a provoqué l'erreur ou à partir de l'instruction qui suit immédiatement le dernier appel exécuté en provenance de la procédure qui contient la routine de traitement d'erreur.
RESUME LIGNE
L'exécution reprend à partir de ligne qui n'est autre qu'une étiquette de ligne ou un numéro de ligne. L'argument ligne doit appartenir à la même procédure que le traitement d'erreur.
La table ci-dessous résume les endroits où l'exécution d'un programme reprend en cas d'utilisation de l'instruction Resume [0] : Endroit où l'erreur apparaît
Endroit où l'exécution reprend
Même procédure que le traitement d'erreur
Instruction qui a engendré l'erreur.
Procédure différente du traitement d'erreur
Instruction la plus récemment exécutée dans la procédure qui contient le traitement d'erreur
INSTRUCTION ON ERROR Active un traitement d'erreur et spécifie son emplacement au sein d'une procédure. Permet de désactiver une routine de traitement d'erreur. SYNTAXE On Error { GoTo ligne | Resume Next | GoTo 0 } Si vous n'utilisez pas une instruction ON ERROR, toute erreur d'exécution devient fatale. Visual Basic engendre un message d'erreur et met alors fin à l'exécution du programme ATTENTION
NOTES
page 114
reproduction réservée
L'instruction ON ERROR est constituée des éléments suivants : ARGUMENT
DESCRIPTION
GOTO LIGNE
Active la routine de traitement d'erreur qui commence à ligne (une étiquette de ligne ou un numéro de ligne). Ensuite, en cas d'erreur d'exécution, le contrôle du programme se branche sur ligne. La ligne spécifiée doit appartenir à la même procédure que l'instruction ON ERROR. Si ce n'est pas le cas, une erreur de compilation survient.
RESUME NEXT
Spécifie qu'en cas d'erreur d'exécution, le contrôle du programme passe à l'instruction qui suit immédiatement celle dans laquelle l'erreur est survenue. Autrement dit, l'exécution du code se poursuit. Vous pouvez utiliser la fonction ERR dans des lignes de code ultérieures pour obtenir le numéro d'erreur d'exécution.
GOTO 0
Désactive tout traitement d'erreur activé dans la procédure en cours.
Fonction ERR : Après qu'une erreur s'est produite, la fonction ERR retourne un code d'erreur d'exécution de type INTEGER qui identifie l'erreur. Fonction ERL : retourne une valeur de type INTEGER qui est le numéro de ligne dans laquelle l'erreur s'est produite ou le numéro de la ligne précédente la plus proche. Comme ERR et ERL ne retournent des valeurs significatives que si une erreur est survenue, elles sont généralement utilisées dans des routines de traitement d'erreur pour déterminer l'erreur et la correction qui s'impose. Les fonctions ERR et Erl sont remises à 0 après toute instruction de type RESUME ou ON ERROR ainsi qu'après une instruction EXIT SUB ou EXIT FUNCTION au sein d'une routine de traitement d'erreur. INSTRUCTION IF...THEN...ELSE Permet d'exécuter conditionnellement des instructions en fonction du résultat d'une expression. SYNTAXE IF CONDITION THEN ALORS [ELSE SINON] ou IF CONDITION1 THEN [BLOC-D'INSTRUCTIONS-1] [ELSEIF CONDITION2 THEN [BLOC-D'INSTRUCTIONS-2] ] [ELSE [BLOC-D'INSTRUCTIONS-N] ] END IF La première syntaxe à une seule ligne est souvent utile pour exécuter les tests conditionnels à la fois simples et courts. INFORMATION
La syntaxe du bloc constitué par IF...THEN...ELSE offre une meilleure structure et une plus grande souplesse que la syntaxe à une seule ligne. En outre, elle est généralement plus facile à lire, à mettre à jour et à déboguer.
NOTES
Edition I O S
page 115
Lorsqu'il exécute une instruction If d'un bloc, Visual Basic teste condition1, la première expression numérique ou l'expression TYPEOF. Si l'expression est vraie ou si objet possède le type spécifié par type-d'objet, les instructions qui suivent THEN sont exécutées. Si la première expression est fausse ou si objet ne possède pas le type spécifié par type-d'objet, Visual Basic évalue successivement chacune des conditions ELSEIF. Quand Visual Basic découvre une condition vraie ou un objet qui possède le type spécifié par type-d'objet, les instructions qui suivent le THEN correspondant sont exécutées. Si aucune des conditions Elself n'est vraie, ou si aucun objet ne possède le type spécifié dans le type-d'objet qui lui est associé, les instructions qui suivent ELSE sont exécutées. Une fois que les instructions qui suivent THEN ou ELSE ont été exécutées, l'exécution du programme se poursuit à partir de l'instruction qui suit End If. Les blocs ELSE et ELSEIF sont facultatifs. INSTRUCTION SELECT CASE Exécute un des blocs d'instructions spécifié, selon la valeur d'une expression. SYNTAXE SELECT CASE EXPRESSION-TESTÉE [CASE LISTE-D'EXPRESSIONS-1 [BLOC-D'INSTRUCTIONS-1] ] [CASE LISTE-D'EXPRESSIONS-2 [BLOC-D'INSTRUCTIONS-2] ] [CASE ELSE [BLOC-D'INSTRUCTIONS-N] ] END SELECT
INFORMATION
Si expression-testée correspond à la liste-d'expressions associée à une clause Case, le bloc d'instructions qui suit cette clause est exécuté jusqu'à la clause Case suivante ou jusqu'à End Select, dans le cas de la dernière clause. Le contrôle passe ensuite à l'instruction qui suit End Select. Si le mot réservé "To" est utilisé pour indiquer une plage de valeurs, la valeur la plus petite doit précéder To. Un opérateur relationnel ne peut être utilisé qu'avec le mot réservé Is. Si "Case Else" est utilisé, les instructions qui lui sont associées ne sont exécutées que si expression-testée ne correspond à aucune autre clause Case. Bien que cela ne soit pas indispensable, la présence d'une instruction Case Else dans votre bloc Select Case peut être utile lorsque expression-testée prend des valeurs inattendues. S'il n'y a pas d'instruction Case Else et si aucune des expressions des clauses Case ne correspond à expression-testée, l'exécution du programme se poursuit à partir de l'instruction qui suit End Select
NOTES
page 116
reproduction réservée
Cet exemple utilise SELECTCASE pour sélectionner différentes entrées de l'utilisateur : EXEMPLE
INSTRUCTION SELECT CASE X = INPUTBOX("ENTREZ UN CHIFFRE COMPRIS ENTRE 1 ET 5.") SELECT CASE VAL(X) ' TESTE L'ENTRÉE. CASE 1 TO 3 ' VOIT SI ELLE EST INFÉRIEURE À 4. MSG = "VOUS AVEZ ENTRÉ UN CHIFFRE INFÉRIEUR À 4." CASE 4 ' EGAL À 4. MSG = "VOUS AVEZ ENTRÉ 4." CASE ELSE ' DOIT ÊTRE AUTRE CHOSE. MSG = "VOUS AVEZ ENTRÉ 5 OU UN AUTRE CHIFFRE." END SELECT MSGBOX MSG ' AFFICHE LE MESSAGE.
C C.. LLE ES SE EN NTTR RÉ ÉE ES S // S SO OR RTTIIE ES S FONCTION OPENDATABASE Ouvre une base de données déterminée et retourne un objet de la base de données. SYNTAXE OPENDATABASE(BASE-DE-DONNÉES [, EXCLUSIF [, EN-LECTURE-SEULE]] ) Cette fonction n'est utilisable que dans Visual Basic. ARGUMENT
DESCRIPTION
BASE-DE-DONNÉES
Une expression chaîne qui correspond au nom d'une base de données existante.
EXCLUSIF
Une valeur booléenne qui est vraie (TRUE (-1)) si la base de données doit être ouverte en accès exclusif (non partagé) et fausse (FALSE (0)) si elle doit l'être en accès partagé. En cas d'omission de l'argument, la base de données est ouverte en accès partagé.
EN-LECTURE-SEULE
Une valeur booléenne qui est vraie (TRUE) si la base de données doit être ouverte en accès en lecture seule et fausse (FALSE)si elle doit l'être en accès en lecture/écriture. En cas d'omission de cet argument, la base de données est ouverte en accès Lecture/écriture.
INSTRUCTION OPEN Permet d'exécuter une opération d'entrée/sortie (E/S) sur un fichier. SYNTAXE OPEN FICHIER [FOR MODE] [ACCESS ACCÈS] [VERROU] AS [#]NUMÉRO-DE-FICHIER [LEN = LONGUEUR] Avant de pouvoir exécuter une opération d'entrée/sortie sur un fichier, vous devez l'ouvrir. L'instruction Open affecte une zone tampon d'entrée/sortie pour ce fichier et détermine son mode d'accès ATTENTION
NOTES
Edition I O S
page 117
L'instruction Open utilise les arguments suivants : ARGUMENT
DESCRIPTION
FICHIER
Nom de fichier ou chemin d'accès.
MODE
Mot réservé qui spécifie le mode de fichier : APPEND, BINARY, INPUT, OUTPUT, RANDOM.
ACCÈS
Mot réservé qui spécifie les opérations qui peuvent être exécutées sur le fichier ouvert : READ, W RITE, READ W RITE.
VERROU
Mot réservé qui spécifie les opérations que d'autres processus peuvent exécuter sur le fichier ouvert : SHARED, LOCK READ, LOCK W RITE, LOCK READ WRITE.
NUMÉRO-DEFICHIER
Expression entière dont la valeur est comprise entre 1 et 255 inclus. Lors de l'exécution d'une instruction OPEN, NUMÉRO-DE-FICHIER est associée au fichier aussi longtemps que celui-ci est ouvert. D'autres instructions d'entrée/sortie peuvent utiliser ce numéro pour désigner le fichier.
LONGUEUR
Il s'agit de la longueur d'enregistrement pour les fichiers ouverts en accès aléatoire, et du nombre de caractères de la zone tampon pour les fichiers séquentiels. L'argument longueur est une expression entière positive inférieure ou égale à 32 767 octets.
Si fichier n'existe pas, il est créé au moment où un fichier est ouvert pour un accès en mode OUTPUT, RANDOM, BINARY ou APPEND INFORMATION
L'argument mode est un mot réservé qui spécifie un des modes de fichier suivants : MOT RÉSERVÉ RANDOM
DESCRIPTION Mode de fichier à accès aléatoire (mode par défaut). Dans ce mode, en l'absence de toute clause Access, trois tentatives sont faites pour ouvrir le fichier quand l'instruction Open est exécutée. L'accès est tenté dans l'ordre suivant : 1. Lecture et écriture 2. Ecriture seule 3. Lecture seule
BINARY
Mode de fichier binaire. En mode BINARY, vous pouvez lire et écrire des informations dans un fichier, pour n'importe quelle position d'octet, à l'aide des instructions GET et PUT. En l'absence de toute clause Access, trois tentatives sont faites pour ouvrir le fichier en suivant le même ordre que pour les fichiers en mode RANDOM.
INPUT
Mode d'entrée séquentiel.
OUTPUT
Mode de sortie séquentiel.
APPEND
Mode de sortie séquentiel. Append place le pointeur de fichier à la fin du fichier. Une instruction PRINT # ou W RITE # étend ensuite le fichier (par ajout en fin de fichier).
page 118
reproduction réservée
En cas d'omission de l'argument mode, le mode par défaut (RANDOM) est automatiquement choisi INFORMATION
INSTRUCTION CLOSE Termine les opérations d'entrée/sortie sur un fichier. SYNTAXE CLOSE [[#]NUMÉRO-DE-FICHIER] [,[#]NUMÉRO-DE-FICHIER] L'argument numéro-de-fichier est le numéro sous lequel le fichier a été ouvert au moyen de l'instruction Open INFORMATION
INSTRUCTION RESET Ferme tous les fichiers disque. SYNTAXE RESET L'instruction Reset ferme tous les fichiers disque ouverts et écrit sur disque le contenu de toutes les zones tampon de fichier. Toutefois, cette instruction n'affecte que les fichiers ouverts à partir d'Visual Basic et non les fichiers directement ouverts par ACCESS. INSTRUCTION PRINT # Ecrit des données dans un fichier séquentiel. SYNTAXE PRINT # NUMÉRO-DE-FICHIER, LISTE-D'EXPRESSIONS [{; | ,} ] L'instruction PRINT # utilise les arguments suivants. ARGUMENT
DESCRIPTION
NUMÉRO-DEFICHIER
Numéro utilisé par l'instruction Open pour ouvrir un fichier séquentiel.
LISTED'EXPRESSIONS
Expressions chaîne et/ou numériques à écrire dans le fichier.
{;|,}
Détermine la position du caractère qui sera ensuite imprimé. Un pointvirgule signifie que le caractère suivant est imprimé immédiatement après le dernier caractère, tandis qu'une virgule signifie que le caractère suivant est imprimé au début de la zone d'impression suivante. Des zones d'impression commencent toutes les 14 colonnes.
NOTES
Edition I O S
page 119
INSTRUCTION PUT Ecrit le contenu d'une variable dans un fichier disque. SYNTAXE PUT [#] NUMÉRO-DE-FICHIER, [NUMÉRO-D'ENREGISTREMENT], NOM-DE-VARIABLE L'instruction Put utilise les arguments suivants : ARGUMENT
DESCRIPTION
NUMÉRO-DE-FICHIER
Numéro utilisé par l'instruction Open pour ouvrir un fichier séquentiel.
NUMÉROD'ENREGISTREMENT
Le plus grand numéro-d'enregistrement possible est 2^31 - 1 ou 2 147 483 647. Pour les fichiers ouverts en mode RANDOM , numérod'enregistrement est le numéro de l'enregistrement à écrire. Pour les fichiers ouverts en mode BINARY , numéro-d'enregistrement est la position de l'octet qui marque le début de l'écriture. Le premier octet d'un fichier occupe la position 1, le deuxième octet la position 2, etc. En cas d'omission de numéro-d'enregistrement, l'écriture commence à partir de l'enregistrement ou de l'octet suivant (celui qui suit la dernière instruction GET ou PUT, ou encore celui qui est désigné par la dernière fonction FICHCOUR (SEEK)). Les virgules de séparation doivent toujours être incluses, même en cas d'omission de numérod'enregistrement.
NOM-DE-VARIABLE
Nom de la variable à écrire dans le fichier. Vous pouvez utiliser n'importe quelle variable à l'exception des variables de type objet et des variables de type tableau (variables qui décrivent l'ensemble d'un tableau). Toutefois, vous pouvez utiliser une variable qui décrit un élément d'un tableau seulement.
INSTRUCTION INPUT # Lit des données à partir d'un fichier séquentiel et les affecte à des variables. SYNTAXE INPUT # NUMÉRO-DE-FICHIER, LISTE-DE-VARIABLES L'instruction Input utilise les arguments suivants : ARGUMENT
DESCRIPTION
NUMÉRO-DEFICHIER
Numéro utilisé par l'instruction Open pour ouvrir un fichier séquentiel.
LISTE-DEVARIABLES
Liste délimitée par des virgules reprenant les variables auxquelles sont affectées les valeurs lues à partir du fichier.
NOTES
page 120
reproduction réservée
INSTRUCTION LINE INPUT # Lit une ligne à partir d'un fichier séquentiel et affecte son contenu à une variable de type STRING ou VARIANT. SYNTAXE LINE INPUT # NUMÉRO-DE-FICHIER, NOM-DE-VARIABLE L'instruction Line Input # utilise les arguments suivants : ARGUMENT
DESCRIPTION
NUMÉRO-DE-FICHIER
Numéro utilisé par l'instruction Open pour ouvrir un fichier séquentiel.
NOM-DE-VARIABLE
Nom de la variable à laquelle est affecté le contenu de la ligne de texte lue à partir du fichier.
L'instruction LINE INPUT # lit tous les caractères d'un fichier séquentiel jusqu'au premier retour chariot rencontré. Elle saute ensuite la séquence retour chariot/retour de ligne. L'instruction Line Input # est utilisée pour lire un fichier texte, ligne par ligne. INSTRUCTION GET Lit des données d'un fichier disque et les place dans une variable. SYNTAXE GET [#] NUMÉRO-DE-FICHIER,[NUMÉRO-D'ENREGISTREMENT],NOM-DE-VARIABLE L'instruction Get utilise les arguments suivants. ARGUMENT
DESCRIPTION
NUMÉRO-DE-FICHIER
Numéro utilisé par l'instruction Open pour ouvrir un fichier séquentiel.
NUMÉROD'ENREGISTREMENT
Le plus grand NUMÉRO-D'ENREGISTREMENT possible est 2^31 - 1 ou 2 147 483 647. Pour les fichiers ouverts en mode RANDOM , NUMÉRO-D'ENREGISTREMENT est le numéro de l'enregistrement à écrire. Pour les fichiers ouverts en mode BINARY , NUMÉRO-D'ENREGISTREMENT est la position de l'octet qui marque le début de l'écriture. Le premier octet d'un fichier occupe la position 1, le deuxième octet la position 2, etc. En cas d'omission de NUMÉRO-D'ENREGISTREMENT, l'écriture commence à partir de l'enregistrement ou de l'octet suivant (celui qui suit la dernière instruction GET ou PUT, ou encore celui qui est désigné par la dernière fonction FICHCOUR (SEEK)). Les virgules de séparation doivent toujours être incluses, même en cas d'omission de NUMÉRO-D'ENREGISTREMENT.
NOM-DE-VARIABLE
Nom de la variable à écrire dans le fichier. Vous pouvez utiliser n'importe quelle variable à l'exception des variables de type objet et des variables de type tableau (variables qui décrivent l'ensemble d'un tableau). Toutefois, vous pouvez utiliser une variable qui décrit un élément d'un tableau seulement.
NOTES
Edition I O S
page 121
INSTRUCTIONS LOCK , UNLOCK Contrôlent l'accès d'autres processus à l'ensemble ou à une partie d'un fichier ouvert. SYNTAXE LOCK [#]NUMÉRO-DE-FICHIER [,{ENREGISTREMENT | [DÉBUT] TO FIN} ] UNLOCK [#]NUMÉRO-DE-FICHIER [,{ENREGISTREMENT | [DÉBUT] TO FIN} ]
INFORMATION
Les instructions Lock et Unlock sont utilisées dans des environnements de réseau où plusieurs processus peuvent avoir besoin d'accéder au même fichier. Ces instructions utilisent les arguments suivants
ARGUMENT
DESCRIPTION
NUMÉRO-DE-FICHIER
Numéro utilisé par l'instruction Open pour ouvrir un fichier séquentiel.
ENREGISTREMENT
Numéro de l'enregistrement ou de l'octet à verrouiller. Il peut s'agir de n'importe quel nombre compris entre 1 et 2 147 483 647 (soit 2^31-1). La longueur d'un enregistrement peut atteindre 65 535 octets.
DÉBUT
Numéro du premier enregistrement ou octet à verrouiller.
FIN
Numéro du dernier enregistrement ou octet à verrouiller.
NOTES
page 122
reproduction réservée
IX. FICHES FONCTION LA FONCTION SYSCMD La fonction SysCmd permet d'effectuer une des opérations suivantes :
Retourner des informations à propos de Microsoft Access et de ses fichiers associés.
Retourner l'état d'un objet de base de données pour indiquer s'il est ouvert, nouveau ou modifié.
Afficher une règle de progression ou le texte optionnel spécifié dans la barre d'état.
SYNTAXE RETURNVALUE = SYSCMD(ACTION[, TEXTE][, VALEUR]) OBJECTSTATE = SYSCMD(ACTION[, TYPE D'OBJET][, NOM DE L'OBJET]) Argument ACTION
Description Une des constantes intrinsèques suivantes identifiant le type d'action à exécuter.
CONSTANTES DE LA RÈGLE DE PROGRESSION. SYSCMD RETOURNE NULL SI OK, SINON UNE ERREUR D'EXÉCUTION. ACSYSCMDINITMETER
Initialise la règle de progression. Vous devez spécifier les arguments texte et valeur lorsque vous effectuez cette action.
ACSYSCMDUPDATEMETER
Met à jour la règle de progression en fonction de la valeur spécifiée. Vous devez spécifier l'argument texte lorsque vous effectuez cette action.
ACSYSCMDREMOVEMETER
Supprime la règle de progression.
ACSYSCMDSETSTATUS
Définit le texte de la barre d'état en fonction de l'argument texte.
ACSYSCMDCLEARSTATUS
Réinitialise le texte de la barre d'état.
NOTES
Edition I O S
page 123
CONSTANTES D’INFORMATIONS ACCESS ACSYSCMDRUNTIME
Retourne True (–1) si une version run-time de Microsoft Access est en cours d'exécution.
ACSYSCMDACCESSVER
Retourne le numéro de version de Microsoft Access.
ACSYSCMDINIFILE
Retourne le nom du fichier .INI que Microsoft Access utilise.
ACSYSCMDACCESSDIR
Retourne le nom du répertoire contenant MSACCESS.EXE.
ACSYSCMDPROFILE
Retourne le nom du profil spécifié par l'utilisateur au moment du démarrage de Microsoft Access, et ce à partir de la ligne de commande.
ACSYSCMDGETW ORKGROUPFILE
Retourne le chemin d'accès au fichier workgroup (SYSTEM.MDW).
CONSTANTE D’INFORMATIONS SUR L'ÉTAT D'UN OBJET DE BASE DE DONNÉES. ACSYSCMDGETOBJECTSTATE
Retourne l'état de l'objet de base de données spécifié. Vous devez spécifier les arguments type d'objet et nom de l'objet lorsque vous utilisez cette valeur d'action.
TEXTE
Expression chaîne identifiant le texte à afficher aligné à gauche dans la barre d'état. Cet argument est obligatoire lorsque acSysCmdInitMeter, acSysCmdUpdateMeter ou acSysCmdSetStatus sont attribués à action ; mais il n'est pas valide pour les autres valeurs d'action.
VALEUR
Expression numérique qui contrôle l'affichage de la règle de progression. Cet argument est obligatoire lorsque acSysCmdInitMeter est attribué à action ; mais il n'est pas valide pour les autres valeurs d'action.
TYPE D'OBJET
:.
Cet argument est obligatoire lorsque acSysCmdGetObjectState est attribué à action, mais il n'est pas valide pour les autres valeurs d'action Une des constantes intrinsèques suivantes : acTable, acQuery , acForm, acReport, acMacro, acModule
NOM DE L'OBJET
Expression chaîne qui est le nom valide d'un objet de base de données du type spécifié dans l'argument type d'objet. Il est obligatoire lorsque acSysCmdGetObjectState est attribué à action, mais il n'est pas valide pour les autres valeurs d'action.
NOTES
page 124
reproduction réservée
INFORMATION
Lorsque les diverses actions de la règle de progression sont utilisées avec la fonction SysCmd, la règle de progression peut être affichée dans la barre d'état pour une opération dont la durée ou le nombre d'étapes est déterminée, et mise à jour pour suivre la progression de l'opération. Pour afficher une règle de progression dans la barre d'état, appeler la fonction SysCmd avec l'action acSysCmdInitMeter et les arguments texte et valeur. Lorsque acSysCmdInitMeter est attribué à l'argument action, valeur est alors la valeur maximale de la règle, soit 100 pour cent. Pour mettre à jour la règle de progression en fonction du déroulement de l'opération, utiliser avec SysCmd l'action acSysCmdUpdateMeter et l'argument valeur. Lorsque acSysCmdUpdateMeter est attribué à l'argument action, SysCmd utilise l'argument valeur pour calculer le pourcentage affiché par la règle. Par exemple, si la valeur maximale est 200, puis la règle mise à jour en lui affectant la valeur 100, la règle de progression sera à moitié pleine. Il est également possible de modifier le texte affiché dans la barre d'état en utilisant la fonction SYSCMD accompagnée de l'action ACSYSCMDSETSTATUS avec l'argument texte. Par exemple, pendant un tri, il peut être remplacé par « Tri en cours... ». Une fois le tri effectué, supprimez le texte de la barre d'état pour la réinitialiser. L'argument texte peut contenir environ 80 caractères. Comme le texte de la barre d'état utilise une police proportionnelle, le nombre exact de caractères affichables dépend de la largeur totale de tous les caractères spécifiés par texte.
INFORMATION
Si la largeur de la barre d'état est augmentée, la longueur de la règle est diminuée. Si le texte est plus long que la barre d'état et si ACSYSCMDINITMETER est attribué à action, SYSCMD ignore le texte et ne l'affiche pas dans la barre d'état. Si le texte est plus long que la barre d'état et si ACSYSCMDSETSTATUS est attribué à action, SYSCMD tronque le texte et l'ajuste à la barre d'état Une chaîne vide (" ") peut être attribuée au texte de la barre d'état. Pour supprimer le texte existant, attribuer un espace à l'argument texte. Les exemples suivants illustrent les différentes façons de le faire: VARRETOURNÉE = SYSCMD(ACSYSCMDINITMETER, " ", 100) VARRETOURNÉE = SYSCMD(ACSYSCMDSETSTATUS, " ")
EXEMPLE
Si la règle de progression est déjà affichée lorsque le texte est défini en utilisant la fonction SYSCMD dans l'action ACSYSCMDSETSTATUS, SYSCMD supprime automatiquement la règle Utiliser les autres actions de la fonction SYSCMD pour connaître les informations relatives à Microsoft Access (vous pouvez entre autres connaître le numéro de la version en cours d'exécution, l'emplacement de son fichier exécutable et la définition de l'argument Profil spécifié dans la ligne de commande, le nom du fichier .ini associé à Microsoft Access, et savoir s'il s'agit d'une version run-time).
AVANCÉ
Les paramètres généraux et personnalisés pour Microsoft Access étant sauvegardés dans le Registre Windows, un fichier .INI n'est plus nécessaire. L'action ACSYSCMDINIFILE existe encore pour la compatibilité avec des versions antérieures de Microsoft Access
NOTES
Edition I O S
page 125
Utiliser la fonction SYSCMD avec l'action ACSYSCMDGETOBJECTSTATE et les arguments type d'objet et nom de l'objet pour retourner l'état de l'objet de base de données spécifié. Cet état peut correspondre à fermé ou inexistant, ouvert, nouveau, modifié.
EXEMPLE
Vous construisez un assistant destiné à insérer un nouveau champ dans une table. Pour enregistrer la table avant d'en modifier la structure, vous devrez savoir si elle a été modifiée sans pour autant avoir été enregistrée. Vérifiez pour cela la valeur retournée par SysCmd pour connaître l'état de la table. Utilisée avec l'action ACSYSCMDGETOBJECTSTATE, la fonction SYSCMD peut retourner n'importe quelle combinaison des constantes suivantes : CONSTANTE ÉTAT DE L'OBJET DE BASE DE DONNÉES ACOBJSTATEOPEN OUVERT ACOBJSTATENEW NOUVEAU ACOBJSTATEDIRTY MODIFIÉ, MAIS NON SAUVEGARDÉ Si l'objet désigné par nom de l'objet est soit fermé, soit inexistant, SysCmd retourne une valeur zéro
INFORMATION
L'exemple suivant crée un objet Jeu d'enregistrements de type instantané (SNAPSHOT), lit chaque enregistrement et affiche la règle de progression en indiquant la position relative actuelle dans l'instantané EXEMPLE
FUNCTION LIREENREGISTREMENTS(CHNOMTABLE AS STRING) AS INTEGER CONST CONBADARGS = -1 DIM BDS AS DATABASE, INSTANTANÉ AS RECORDSET DIM COMPTEENR AS LONG, CHMSG AS STRING DIM VARRETOURNÉE AS VARIANT, LNGX AS LONG LIREENREGISTREMENTS = 0 IF CHNOMTABLE <> "" THEN DOCMD.HOURGLASS TRUE SET BDS = CURRENTDB ON ERROR RESUME NEXT SET INTANTANÉ = BDS.OPENRECORDSET(CHNOMTABLE) ' COMPTE LES ENREGISTREMENTS. INSTANTANÉ.MOVELAST INSTANTANÉ.MOVEFIRST IF ERR THEN LIREENREGISTREMENTS = CONBADARGS END IF COMPTEENREG = INSTANTANÉ.RECORDCOUNT ON ERROR GOTO 0 IF COMPTEENREG THEN CHMSG = " LECTURE DE " & UCASE$(CHNOMTABLE) & "..." VARRETOURNÉE = SYSCMD(ACSYSCMDINITMETER, CHMSG, COMPTEENREG) ' AFFICHE LE MESSAGE DANS LA BARRE D'ÉTAT. FOR LNGX = 1 TO COMPTEENREG VARRETOURNÉE = SYSCMD(ACSYSCMDUPDATEMETER, LNGX) ' MET À JOUR LA RÈGLE. ' MODIFIE L'ENREGISTREMENT. page 126
reproduction réservée
. INSTANTANÉ.MOVENEXT ' PASSE À L'ENREGISTREMENT SUIVANT. NEXT LNGX VARRETOURNÉE = SYSCMD(ACSYSCMDCLEARSTATUS) GOSUB FERMETUREOBJETS LIREENREGISTREMENTS = COMPTEENREG ' RETOURNE LE NOMBRE D'ENREGISTREMENTS. EXIT FUNCTION END IF END IF ' INTROUVABLE OU NE CONTIENT PAS D'ENREGISTREMENT. CHMSG = "TABLE '" & CHNOMTABLE & "' INTROUVABLE OU NE CONTIENT PAS D'ENREGISTREMENT.'" MSGBOX CHMSG, VBINFORMATION, " LIREENREGISTREMENTS " GOSUB FERMETUREOBJETS EXIT FUNCTION FERMETUREOBJETS: ON ERROR RESUME NEXT INSTANTANÉ.CLOSE BDS.CLOSE ON ERROR GOTO 0 DOCMD.HOURGLASS FALSE RETURN END FUNCTION
NOTES
Edition I O S
page 127
Cet exemple montre comment utiliser la fonction SysCmd et l'action acSysCmdGetObjectState pour déterminer l'état de l'objet de base de données actif : EXEMPLE
DIM ENTTYPEOBJ AS INTEGER, CHNOMOBJ AS STRING, ENTÉTATOBJ AS INTEGER ENTTYPEOBJ = APPLICATION.CURRENTOBJECTTYPE CHNOMOBJ = APPLICATION.CURRENTOBJECTNAME ENTÉTATOBJ = SYSCMD(ACSYSCMDGETOBJECTSTATE, ENTTYPEOBJ, CHNOMOBJ)
IF ENTÉTATOBJ <> 0 THEN END IF LA FONCTION DIR Renvoie une valeur de type String représentant le nom d'un fichier, d'un répertoire ou d'un dossier correspondant à une chaîne de recherche, à un attribut de fichier ou au nom de volume d'un lecteur. SYNTAXE DIR[(PATHNAME[, ATTRIBUTES])] La syntaxe de la fonction DIR comprend les éléments suivants : Élément
DESCRIPTION
PATHNAME
Facultatif. Expression de chaîne définissant un nom de fichier. Cet argument peut préciser le répertoire ou dossier et le lecteur. Une chaîne de longueur nulle est renvoyée si PATHNAME est introuvable.
ATTRIBUTES
Facultatif. Constante ou expression numérique, dont la somme définit des attributs de fichier. Si cet argument est omis, tous les fichiers correspondant à l’argument PATHNAME sont renvoyés.
L'argument ATTRIBUTES peut prendre les valeurs suivantes : CONSTANTE
VALEUR
DESCRIPTION
VBNORMAL
0
Normal
VBHIDDEN
2
Caché
VBSYSTEM
4
Fichier système
VBVOLUME
8
Nom de volume ; si cette valeur est indiquée, les autres arguments sont ignorés
16
Répertoire ou dossier
VBDIRECTORY
NOTES
page 128
reproduction réservée
REMARQUE : La fonction DIR permet d'utiliser des caractères génériques multicaractères (* : MULTICARACTÈRES, ? : caractère unique) pour sélectionner plusieurs fichiers. Définir l’argument PATHNAME lors du premier appel de la fonction DIR, où une erreur se produit. Si les attributs de fichier sont indiqués, l’argument PATHNAME doit être présent. La fonction Dir renvoie le premier nom de fichier correspondant à l’argument PATHNAME. Pour extraire d'autres noms de fichier correspondant à l’argument PATHNAME, appelez de nouveau la fonction DIR sans préciser d'arguments. Quand tous les fichiers ont été indiqués, la fonction DIR renvoie une chaîne de longueur nulle (""). Lorsqu'une chaîne de longueur nulle a été renvoyée, vous devez indiquer l’argument PATHNAME dans les appels ultérieurs de la fonction ou une erreur se produit. Vous pouvez indiquer un nouvel argument PATHNAME sans avoir extrait tous les noms de fichier correspondant à l’argument PATHNAME courant. Il est cependant impossible d'appeler la fonction Dir de manière récursive. Les appels DIR comportant l'attribut VBDIRECTORY ne renvoient pas continuellement les sous-répertoires. Cet exemple utilise la fonction Dir pour vérifier si certains fichiers et répertoires existent. EXEMPLE
DIM MYFILE, MYPATH, MYNAME ' SOUS MICROSOFT W INDOWS: ' RENVOIE "WIN.INI" SI CE FICHIER EXISTE. MYFILE = DIR("C:\WINDOWS\WIN.INI") ' RENVOIE LE NOM DE FICHIER AVEC L'EXTENSION INDIQUÉE. ' SI PLUSIEURS FICHIERS *.INI ' EXISTENT, LE PREMIER FICHIER TROUVÉ EST RENVOYÉ. MYFILE = DIR("C:\WINDOWS\*.INI") ' APPELLE DE NOUVEAU DIR SANS ARGUMENT POUR RENVOYER LE' FICHIER *.INI SUIVANT DANS LE MÊME RÉPERTOIRE. MYFILE = DIR ' RENVOIE LE PREMIER FICHIER *.TXT AVEC L'ATTRIBUT ' FICHIER CACHÉ. MYFILE = DIR("*.TXT", VBHIDDEN) ' AFFICHE LES NOMS DANS C:\ REPRÉSENTANT DES RÉPERTOIRES. MYPATH = "C:\" ' DÉFINIT LE CHEMIN D'ACCÈS. ' EXTRAIT LA PREMIÈRE ENTRÉE. MYNAME = DIR(MYPATH, VBDIRECTORY) DO W HILE MYNAME <> "" ' COMMENCE LA BOUCLE. ' IGNORE LE RÉPERTOIRE COURANT ET LE RÉPERTOIRE ' CONTENANT LE RÉPERTOIRE COURANT. IF MYNAME <> "." AND MYNAME <> ".." THEN ' UTILISE UNE COMPARAISON AU NIVEAU DU BIT POUR ' VÉRIFIER QUE MYNAME EST UN RÉPERTOIRE. IF (GETATTR(MYPATH & MYNAME) _ AND VBDIRECTORY) = VBDIRECTORY THEN ' AFFICHE L'ENTRÉE UNIQUEMENT SI ELLE DEBUG.PRINT MYNAME END IF ' REPRÉSENTE UN RÉPERTOIRE. END IF MYNAME = DIR ' EXTRAIT L'ENTRÉE SUIVANTE. LOOP LA FONCTION MSGBOX Affiche un message dans une boîte de dialogue, attend que l'utilisateur clique sur un bouton, puis renvoie une valeur de type INTEGER qui indique le bouton choisi par l'utilisateur.
Edition I O S
page 129
SYNTAXE MSGBOX(PROMPT[, BUTTONS] [, TITLE] [, HELPFILE, CONTEXT]) La syntaxe de la fonction MSGBOX comprend les arguments nommés suivants : ÉLÉMENT
DESCRIPTION
PROMPT
Expression de chaîne affichée comme message dans la boîte de dialogue. La longueur maximale de l'argument prompt est d'environ 1 024 caractères selon la largeur des caractères utilisés. Si l'argument prompt occupe plus d'une ligne, n'oubliez pas d'insérer un retour chariot (Chr(13)) ou un saut de ligne (Chr(10)) entre les lignes, ou une combinaison de caractères retour chariot-saut de ligne (Chr(13) & Chr(10)).
BUTTONS
Facultatif. Expression numérique qui représente la somme des valeurs indiquant le nombre et le type de boutons à afficher, le style d'icône à utiliser, l'identité du bouton par défaut, ainsi que la modalité du message. Si l'argument buttons est omis, sa valeur par défaut est 0.
TITLE
Facultatif. Expression de chaîne affichée dans la barre de titre de la boîte de dialogue. Si l'argument TITLE est omis, le nom de l'application est placé dans la barre de titre.
HELPFILE
Facultatif. Expression de chaîne indiquant le fichier d'aide à utiliser pour fournir une aide contextuelle sur la boîte de dialogue. Si l'argument HELPFILE est défini, l'argument CONTEXT doit l'être également.
CONTEXT
Facultatif. Expression indiquant le numéro de contexte attribué par l'auteur de l'aide à la rubrique appropriée. Si l'argument CONTEXT est défini, l'argument HELPFILE doit l'être également.
L'argument buttons prend les valeurs suivantes : CONSTANTE
DESCRIPTION
vbOKOnly
0
Affiche le bouton OK uniquement.
vbOKCancel
1
Affiche les boutons OK et Annuler.
vbAbortRetryIgnore
2
Affiche le bouton Abandonner, Réessayer et Ignorer.
vbYesNoCancel
3
Affiche les boutons Oui, Non et Annuler.
vbYesNo
4
Affiche les boutons Oui et Non.
vbRetryCancel
5
Affiche les boutons Réessayer et Annuler.
vbCritical
16
Affiche l'icône Message critique.
vbQuestion
32
Affiche l'icône Requête d'avertissement.
vbExclamation
48
Affiche l'icône Message d'avertissement.
vbInformation
64
Affiche l'icône Message d'information.
vbDefaultButton1
0
Le premier bouton est le bouton par défaut.
vbDefaultButton2
256
Le deuxième bouton est le bouton par défaut.
vbDefaultButton3
512
Le troisième bouton est le bouton par défaut.
vbDefaultButton4
768
Le quatrième bouton est le bouton par défaut.
vbApplicationModal
vbSystemModal
page 130
0
Boîte de dialogue modale. L'utilisateur doit répondre au message affiché dans la zone de message avant de pouvoir continuer de travailler dans l'application en cours.
4096
Modal système. Toutes les applications sont interrompues jusqu'à ce que l'utilisateur réponde au message affiché dans la zone de message. reproduction réservée
Le premier groupe de valeurs (0 à 5) décrit le nombre et le type de boutons affichés dans la boîte de dialogue. Le deuxième groupe (16, 32, 48 et 64) décrit le style d'icône. Le troisième groupe (0, 256 et 512) définit le bouton par défaut. Enfin, le quatrième groupe (0 et 4 096) détermine la modalité de la zone de message. Pour obtenir la valeur finale de l'argument buttons, ne sélectionnez qu'un seul nombre dans chaque groupe pour les additionner. VALEURS RENVOYÉES : CONSTANTE
BOUTON
VBOK
1
OK
VBCANCEL
2
Annuler
VBABORT
3
Abandonner
VBRETRY
4
Réessayer
VBIGNORE
5
Ignorer
VBYES
6
Oui
VBNO
7
Non
SYNTAXE Lorsque les deux arguments HELPFILE et CONTEXT sont définis, l'utilisateur peut appuyer sur F1 pour afficher la rubrique d'aide correspondant à l'argument CONTEXT. Certaines applications hôtes, Microsoft Excel par exemple, peuvent ajouter automatiquement un bouton Aide à la boîte de dialogue.
INFORMATION
Si la boîte de dialogue est dotée d'un bouton ANNULER, appuyer sur ÉCHAP équivaut à cliquer sur Annuler. Si la boîte de dialogue contient un bouton Aide, cela signifie qu'une aide contextuelle relative à la boîte de dialogue est disponible. Toutefois, aucune valeur n'est renvoyée tant que l'utilisateur n'a pas cliqué sur l'un des autres boutons
NOTES
Edition I O S
page 131
EXEMPLE
Cet exemple utilise la fonction MsgBox pour afficher un message d’erreur grave dans une boîte de dialogue pourvue des boutons Yes et No. Le bouton No est spécifié comme réponse par défaut. La valeur retournée par la fonction MsgBox dépend du bouton sélectionné par l’utilisateur. DEMO.HLP est un fichier d’aide contenant une section dont le numéro de contexte d’aide est 1000. DIM MSG, STYLE, TITLE, HELP, CTXT, RESPONSE, MYSTRING MSG = "SOUHAITEZ-VOUS CONTINUER?" ' DÉFINIT LE ' MESSAGE. STYLE = VBYESNO + VBCRITICAL + VBDEFAULTBUTTON2 ' DÉFINIT LES BOUTONS. TITLE = "DÉMONSTRATION DE MSGBOX " ' DÉFINIT LE TITRE. HELP = "DEMO.HLP" ' DÉFINIT LE FICHIER D’AIDE. CTXT = 1000 ' DÉFINIT LE ' CONTEXTE DE LA RUBRIQUE. ' AFFICHE LE MESSAGE. RESPONSE = MSGBOX(MSG, STYLE, TITLE, HELP, CTXT) IF RESPONSE = VBYES THEN ' L’UTILISATEUR A CHOISIT YES. MYSTRING = "YES" ' EFFECTUE UNE ACTION. ELSE ' L’UTILISATEUR A CHOISI NO. MYSTRING = "NO" ' EFFECTUE UNE ACTION. END IF
NOTES
page 132
reproduction réservée
X. DOSSIER PÉDAGOGIQUE ET EXEMPLES A A.. A AM MIIS S 0033..M MD DB B CRÉER UNE BASE DE DONNÉES DE GESTION DE CONTACT À PARTIR DU MODÈLE JOINT AVEC UN MENU ET UNE BARRE D'OUTILS EXERCICE
NOTES
Edition I O S
page 133
B B.. B BIIB BLLIIO O 0033..M MD DB B CRÉER UNE BASE DE DONNÉES DE GESTION DE BIBLIOTHÈQUE (EMPRUNT DE LIVRES, AUTEURS, NOMBRE D'EXEMPLAIRES…) À PARTIR DU MODÈLES SUIVANT EXERCICE
page 134
reproduction réservée
C C.. LLIIS STTE ED DE EV VIIN NS S 0033..M MD DB B CRÉER UNE BASE DE DONNÉES DE GESTION DE CAVE À PARTIR DU MODÈLE SUIVANT
EXERCICE
NOTES
Edition I O S
page 135
D D.. C CO OM MP PTTO OIIR RX XP P..M MD DB B
NOTES
page 136
reproduction réservée
TABLE DES MATIÈRES I.
LES MACROS
1
A.
CRÉER UNE MACRO
1
B.
ENREGISTRER UNE MACRO
3
C.
EXÉCUTER UNE MACRO
4
D.
TESTER UNE MACRO
5
II.
PROGRAMMER AVEC LES MACROS
7
A.
LES MACROS ET LES AUTRES OBJETS
7
B. C.
LES ACTIONS LIÉES AUX MACROS GÉRER LES CONDITIONS
7 9
D.
AFFICHER DES MESSAGES
11
E.
RÉPONSES AUX ÉVÉNEMENTS
13
1 2 3
F.
RÉPONSES AUX ÉVÉNEMENTS POUR UN FORMULAIRE RÉPONSES AUX ÉVÉNEMENTS POUR UN ÉTAT RÉPONSES AUX ÉVÉNEMENTS SOURIS
13 17 18
LES OBJETS 1 2 3
20
TRAITER UN OBJET IMPRIMER UN OBJET EXÉCUTER DU CODE DANS DES OBJETS
20 22 22
G.
GÉRER LES DONNÉES
24
H.
ARRÊTER UNE MACRO
25
III.
CRÉER DES APPLICATIONS A. 1 2
B.
27
DÉMARRAGE AUTOMATIQUE
27
AUTOEXEC OPTIONS DE DÉMARRAGE
27 27
la BARRE DE MENUS
28
1 CRÉER UN MENU PERSONNALISE 2 AJOUTER UN MENU PERSONNALISE DANS UNE BARRE 3 AJOUTER UN MENU INTÈGRE DANS UNE BARRE 4 AJOUTER UNE COMMANDE A UN MENU 5 DÉPLACER OU COPIER UNE COMMANDE DE MENU 6 ATTACHER UNE BARRE DE MENUS PERSONNALISÉE A UN FORMULAIRE OU UN ÉTAT
C.
LA BARRE D'OUTILS 1 2 3 4 5
CRÉER UNE BARRE D’OUTILS PERSONNALISÉE AJOUTER UN OUTIL A LA BARRE DÉPLACER OU COPIER UN OUTIL CRÉER UNE BARRE D'OUTILS A PARTIR D'UNE MACRO ATTACHER LA BARRE D'OUTILS
28 29 30 30 31 31
32 32 33 33 34 34
D.
AFFECTATION DES TOUCHES DE RACCOURCI
35
E.
IMPORTATION / EXPORTATION
38
IV.
ADMINISTRER UNE BASE DE DONNÉES A.
SÉCURITÉ 1 2 3 4
Edition I O S
PROTÉGER LA BASE UTILISATEURS GROUPES PROTECTION
43 43 44 45 47 47
page 1
5 6
AFFICHAGE DES INFORMATIONS DE SÉCURITÉ ASSISTANT GROUPE DE TRAVAIL
49 49
B.
COMPACTER UNE BASE
50
C.
RÉPARER ACCESS
51
D.
SAUVEGARDER UNE BASE
52
V.
VISUAL BASIC
53
A.
LES MODULES
53
B.
CREATION D'UNE PROCÉDURE
56
C.
CREATION D'UNE PROCÉDURE ÉVÉNEMENTIELLE
57
D.
CREATION D'UNE PROCÉDURE / PARAMÉTRER DES PROPRIÉTÉS D'OBJETS58
E.
LA FENÊTRE D'EXÉCUTION
VI.
VARIABLES, CONSTANTES, TYPES ET TABLEAUX
59
63
A.
DÉCLARATION DES VARIABLES
63
B.
TYPES DE VARIABLES
66
C.
TABLEAUX DE VARIABLES
71
D.
GESTION DES VARIABLES
72
1 2 3 4
E.
STATIC : PUBLIC : PROCÉDURE FUNCTION PROCÉDURE SUB
OBJETS ET COLLECTION D'ACCÈS AUX DONNÉES
VII.
LES OPERATEURS
VIII.
FONCTIONS ET INSTRUCTIONS
72 72 72 72
73
79 101
A.
LES CHAINES DE CARACTÈRES
101
B.
LES CONTRÔLES DU DÉROULEMENT DU PROGRAMME
110
C.
LES ENTRÉES / SORTIES
117
IX.
FICHES FONCTION
123
X.
DOSSIER PÉDAGOGIQUE ET EXEMPLES
133
A.
AMIS 03.MDB
133
B.
BIBLIO 03.MDB
134
C.
LISTE DE VINS 03.MDB
135
D.
COMPTOIR XP.MDB
136
page 2
reproduction réservée