Vous êtes sur la page 1sur 112

Institut Agronomique et Vtrinaire Hassan II Dpartement de Statistique Applique

Support de cours

Access
Mr Mouanis LAHLOU

1999
! : IAV Hassan II. B.P. 6202-Instituts 10101 Rabat : +07 77 17 58/59/45 Fax : +07 77 81 35 ou 77 58 38
Mail : mouanis@iav.refer.org.ma

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

Table des Matires


I.
A. B.

propos de la cration d'une base de donnes _________________________________________ 6


Introduction _______________________________________________________________________ 6 tapes de cration d'une base de donnes _______________________________________________ 9

II.
A. B. C.

Crer une table _______________________________________________________________ 11


Introduction ______________________________________________________________________ 11 Crer une table vierge ______________________________________________________________ 13 Quel type de donnes dois-je utiliser pour un champ dans ma table ? _______________________ 14

III.
A. B. C. D. E. F.

propos des relations dans une base de donnes ____________________________________ 16


Comment fonctionnent les relations ? _________________________________________________ 17 Relation un--plusieurs _____________________________________________________________ 17 Relation plusieurs--plusieurs _______________________________________________________ 18 Relation un--un___________________________________________________________________ 18 Dfinition des relations _____________________________________________________________ 19 Dfinir des relations entre les tables_____________________________________________________ 20

IV.
A. B. C. D. E.

Requtes_____________________________________________________________________ 21
Introduction ______________________________________________________________________ 21 Comment personnaliser une requte ?_________________________________________________ 22 Comment spcifier plusieurs critres dans une requte ? _________________________________ 22 Exemple de requte Analyse croise___________________________________________________ 24 Types de jointure et influence sur le rsultat de la requte ________________________________ 26

V.
A. B. C. D. E. F.
1. 2. 3.

Formulaires __________________________________________________________________ 27
Introduction ______________________________________________________________________ 27 Personnaliser un formulaire _________________________________________________________ 29 Sections d'un formulaire ____________________________________________________________ 29 Crer un formulaire sans Assistant ___________________________________________________ 30 Crer un formulaire l'aide d'un Assistant ____________________________________________ 31 Sous-formulaire _____________________________________________________________________ 31
Introduction ________________________________________________________________________________ 31 Types de sous-formulaires ____________________________________________________________________ 32 Lier un formulaire principal et un sous-formulaire __________________________________________________ 33

VI.
A. B. C.

tats ________________________________________________________________________ 34
Introduction ______________________________________________________________________ 34 Sections d'un tat __________________________________________________________________ 35 Exemple d'enregistrements regroups dans un tat ______________________________________ 37

VII. VIII.
A.
1.

Introduction__________________________________________________________________ 38 DAO ______________________________________________________________________ 40


Prsentation des objets d'accs aux donnes ____________________________________________ 40
Modles d'objet _____________________________________________________________________________ 40

Page 2 sur 2

Institut Agronomique et Vtrinaire Hassan II 2. 3. 4.

M. LAHLOU

Objets DAO________________________________________________________________________________ 40 Collections DAO____________________________________________________________________________ 41 Objets DBEngine et Workspace ________________________________________________________________ 41

B.
1. 2. 3. 4. 5. 6.

Utilisation de l'espace de travail Microsoft Jet __________________________________________ 43


Ouverture d'une base de donnes _______________________________________________________________ 43 Langage de dfinition de donnes _______________________________________________________________ 43 Manipulation de donnes _____________________________________________________________________ 43 Transactions _______________________________________________________________________________ 43 Duplication ________________________________________________________________________________ 43 Scurit ___________________________________________________________________________________ 43

C. D. E. F. G. H. I. J.

Rfrence des objets et collections d'accs aux donnes___________________________________ 44 DBEngine ________________________________________________________________________ 44 Workspace _______________________________________________________________________ 45 Database ___________________________________________________________________________ 47 TableDef _________________________________________________________________________ 48 Field_____________________________________________________________________________ 50 Index ______________________________________________________________________________ 52 Recordset __________________________________________________________________________ 54

IX.
A. B. C. D.

Macros ______________________________________________________________________ 57
Qu'est-ce qu'une macro ? ___________________________________________________________ 57 Srie d'actions_____________________________________________________________________ 57 Groupe de macros _________________________________________________________________ 57 Actions conditionnelles _____________________________________________________________ 58

X.
A.
1. 2.

Access Basic _________________________________________________________________ 59


Prsentation ______________________________________________________________________ 59
Modules de classe ___________________________________________________________________________ 59 Modules standard ___________________________________________________________________________ 60

B. C.
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.

Dans quel cas utiliser Access Basic____________________________________________________ 60 Instructions_______________________________________________________________________ 61


Vue densemble_____________________________________________________________________________ 61 Beep (VBA) _______________________________________________________________________________ 63 Call (VBA) ________________________________________________________________________________ 63 Close (VBA) _______________________________________________________________________________ 63 Const (VBA) _______________________________________________________________________________ 63 Declare (VBA) _____________________________________________________________________________ 63 Dim (VBA) ________________________________________________________________________________ 63 Do...Loop (VBA) ___________________________________________________________________________ 64 End (VBA) ________________________________________________________________________________ 64 Exit (VBA) ______________________________________________________________________________ 65 For Each...Next (VBA) _____________________________________________________________________ 65 For...Next (VBA) _________________________________________________________________________ 65 Function (VBA) __________________________________________________________________________ 65 GoTo (VBA) _____________________________________________________________________________ 65 If...Then...Else (VBA)______________________________________________________________________ 65 On Error (VBA) __________________________________________________________________________ 66 Option Base (VBA) _______________________________________________________________________ 67 Option Compare (VBA) ____________________________________________________________________ 67 Option Explicit (VBA) _____________________________________________________________________ 68 Option Private (VBA) ______________________________________________________________________ 68 ReDim (VBA)____________________________________________________________________________ 68 Rem (VBA)______________________________________________________________________________ 68 Resume (VBA) ___________________________________________________________________________ 68

Page 3 sur 3

Institut Agronomique et Vtrinaire Hassan II 24. 25. 26. 27. 28.

M. LAHLOU

SelectCase (VBA)_________________________________________________________________________ 69 SendKeys (VBA) _________________________________________________________________________ 69 Stop (VBA) ______________________________________________________________________________ 69 Sub (VBA) ______________________________________________________________________________ 69 While...Wend (VBA) ______________________________________________________________________ 69

D.
1. 2. 3. 4.

Oprateurs _______________________________________________________________________ 70
Oprateurs arithmtiques______________________________________________________________________ 70 Oprateurs de comparaison ____________________________________________________________________ 70 Oprateurs de concatnation ___________________________________________________________________ 71 Oprateurs boolens _________________________________________________________________________ 71

E.
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.

vnements et proprits d'vnement ________________________________________________ 71


Qu'est-ce qu'un vnement ? ___________________________________________________________________ 71 Rponse un vnement Clic (Click) l'aide d'une procdure vnementielle ____________________________ 71 Rponse un vnement Clic (Click) l'aide d'une macro____________________________________________ 72 vnements de type Clavier ___________________________________________________________________ 72 vnements de type Donnes __________________________________________________________________ 73 vnements de type Erreur et Minuterie __________________________________________________________ 74 vnements de type Fentre ___________________________________________________________________ 74 vnements de type Filtre _____________________________________________________________________ 75 vnements de type Focus ____________________________________________________________________ 75 vnements de type Impression ______________________________________________________________ 75 vnements de type Souris __________________________________________________________________ 76 Cration d'une procdure vnementielle _______________________________________________________ 76

XI.
A.
1. 2. 3. 4. 5.

Le langage SQL_______________________________________________________________ 77
Langage de manipulation de donnes _________________________________________________ 77
SELECT, instruction _________________________________________________________________________ 77 DELETE, instruction_________________________________________________________________________ 84 UPDATE, instruction ________________________________________________________________________ 85 UNION, opration___________________________________________________________________________ 85 TRANSFORM, instruction ____________________________________________________________________ 85

B.
1. 2. 3. 4. 5.

Langage de dfinition de donnes_____________________________________________________ 86


DROP, instruction ___________________________________________________________________________ 86 CREATE TABLE, instruction _________________________________________________________________ 86 CREATE INDEX, instruction__________________________________________________________________ 87 ALTER TABLE, instruction ___________________________________________________________________ 87 CONSTRAINT, clause _______________________________________________________________________ 87

XII.
A. B.
1. 2. 3. 4. 5.

Cration, modification et saisie de donnes dans les formulaires _______________________ 89


Introduction ______________________________________________________________________ 89 Crer un formulaire________________________________________________________________ 90
Crer un formulaire colonne simple l'aide du bouton Nouvel objet __________________________________ 90 Crer un formulaire l'aide d'un Assistant ________________________________________________________ 90 Crer un formulaire sans Assistant ______________________________________________________________ 91 Crer un formulaire fond sur plusieurs tables _____________________________________________________ 91 Crer un formulaire partir d'enregistrements dj filtrs dans une table, une requte ou un autre formulaire ____ 91

C.
1. 2.

Proprits des formulaires __________________________________________________________ 92


Dfinition de proprits l'aide de code __________________________________________________________ 92 Proprits _________________________________________________________________________________ 94

D. E. F.
1. 2. 3. 4.

Ouvrir un formulaire______________________________________________________________ 105 Ajouter de nouvelles donnes en mode Feuille de donnes ou en mode Formulaire ___________ 105 Personnaliser un formulaire __________________________________________________________ 105
Modifier l'apparence d'un formulaire ___________________________________________________________ 105 Dplacer, redimensionner et aligner les contrles__________________________________________________ 106 Modifier l'tiquette ou la source du contrle______________________________________________________ 106 Ajouter un champ ou un contrle ______________________________________________________________ 106

XIII.

Complments ______________________________________________________________ 106


Page 4 sur 4

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

A. B. C. D.
1. 2. 3.

Cration de la macro AutoExec _____________________________________________________ 106 Cration d'une barre de menu personnalise l'aide du Gnrateur de menu_______________ 107 Barre d'outils personnalise ________________________________________________________ 108 Fonctions d'aide __________________________________________________________________ 108
Recherche rapide___________________________________________________________________________ 108 A propos du Conseiller ______________________________________________________________________ 109 Copie d'exemples de programmation ___________________________________________________________ 110

XIV.

Exemple dapplication_______________________________________________________ 110

Page 5 sur 5

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

Microsoft Access I
I. propos de la cration d'une base de donnes
Avant de commencer utiliser Microsoft Access pour la cration des tables, formulaires et autres objets qui composeront votre base de donnes, il est important de s'attarder sur sa structure. Une base de donnes bien conue est l'lment essentiel dans la cration d'une base de donnes qui rpond de manire efficace et prcise vos besoins.

A.

Introduction

1. Une base de donnes est un ensemble d'informations associes un sujet particulier, tel que le suivi des commandes ou la gestion d'une collection musicale. Si votre base de donnes n'est pas stocke sur un ordinateur, ou si elle ne l'est que partiellement, vous tes peut-tre oblig de grer des informations en provenance de sources diverses que vous devez coordonner et organiser manuellement.

2. l'aide de Microsoft Access, vous pouvez grer toutes vos informations l'aide d'un fichier unique de base de donnes. Dans ce fichier, vous devez rpartir ces donnes entre plusieurs contenants appels tables. Les formulaires en ligne vous permettent de consulter, d'ajouter et de mettre jour les donnes des tables. Les requtes vous permettent de rechercher et de rcuprer les donnes que vous voulez. Quant aux tats, ils servent analyser et imprimer les donnes selon la mise en page de votre choix.

Page 6 sur 6

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

3. Pour stocker vos donnes, vous devez crer une table par type d'informations que vous grez. Pour rassembler, dans une requte, un formulaire ou un tat, des donnes en provenance de plusieurs tables, vous devez dfinir des relations entre les tables.

4. Pour rechercher et rcuprer les donnes correspondant aux conditions que vous aurez spcifies, y compris des donnes contenues dans plusieurs tables, vous devez crer une requte. Les requtes peuvent galement vous permettre de mettre jour ou de supprimer plusieurs enregistrements la fois, et d'effectuer sur vos donnes des calculs intgrs ou personnaliss.

5. Pour afficher, saisir et modifier facilement des donnes directement dans une table, crez un formulaire. Lorsque vous ouvrez un formulaire, Microsoft Access rcupre les donnes d'une ou plusieurs tables et les affiche l'cran en utilisant la mise en page que vous avez choisie dans l'Assistant Formulaire, ou celle que vous avez cr vous-mme.

Page 7 sur 7

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

6. Pour analyser vos donnes ou les mettre en page pour l'impression, vous devez crer un tat. Par exemple, vous pouvez crer un tat regroupant des donnes et calculant des totaux, et un autre tat contenant des donnes mises en forme en vue de l'impression d'tiquettes de publipostage.

7.

Page 8 sur 8

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

B.
1

tapes de cration d'une base de donnes

Voici les tapes de base pour crer une base de donnes : Dterminez l'objectif de votre base de donnes: La premire tape dans la conception d'une base de donnes consiste dterminer l'objectif de la base de donnes et l'utilisation qui va en tre faite. Vous devez rflchir aux informations que vous souhaitez obtenir de la base de donnes. partir de l, vous pouvez dterminer les sujets sur lesquels vous voulez stocker des faits (les tables) et les faits que vous voulez stocker propos de chaque sujet (les champs des tables). Discutez avec les personnes qui utiliseront la base de donnes. Rflchissez ensemble aux questions auxquelles la base de donnes doit apporter une rponse. Esquissez les tats que vous souhaitez raliser. Runissez les formulaires que vous utilisez actuellement pour enregistrer vos donnes. Examinez des bases de donnes bien conues et semblables la vtre. 2 Dterminez les tables1 dont vous avez besoin dans la base de donnes: Dterminer les tables dont vous avez besoin peut tre l'tape la plus complique lorsque vous crez une base de donnes. Cela est d au fait que les rsultats que vous souhaitez obtenir de votre base de donnes (les tats que vous voulez imprimer, les formulaires que vous voulez utiliser, les questions auxquelles une rponse doit tre apporte) ne fournissent pas ncessairement des indices sur la structure des tables qui les produisent. Vous n'tes pas oblig de concevoir vos tables l'aide de Microsoft Access. En fait, il peut tre prfrable de tracer une esquisse de la structure de vos tables sur papier d'abord, pour les y retravailler ensuite. Lorsque vous crez vos tables, morcelez les informations en gardant l'esprit les principes de base suivants: Une table ne doit pas contenir d'informations en double et les informations ne doivent pas tre dupliques entre les tables. Lorsque chaque lment d'information est stock dans une seule table, vous le mettez jour un seul endroit. Cette mthode est plus efficace et limine le risque d'entres en double contenant des informations diffrentes. Par exemple, vous pouvez stocker chaque adresse et numro de tlphone des clients une seule fois et dans une seule table. Chaque table doit contenir des informations relatives un seul sujet. Lorsque chaque table contient des faits relatifs un seul sujet, vous pouvez conserver des informations relatives chaque sujet indpendamment des autres sujets. Par exemple, vous pouvez stocker les adresses des clients dans une table diffrente de celle des commandes des clients, de manire pouvoir supprimer une commande et conserver malgr tout les informations relatives un client. 3 Dterminez les champs2 dont vous avez besoin dans les tables. Chaque table comporte des informations relatives un mme sujet, et chaque champ d'une table contient des faits individuels relatifs au sujet de la table. Par exemple, une table Client pourra inclure les champs Socit, Adresse, Ville, Pays et Numro de tlphone. En esquissant les champs de chaque table, gardez les conseils suivants l'esprit: tablissez une relation directe entre chaque champ et le sujet de la table.

Table : Structure fondamentale d'un systme de gestion de base de donnes relationnelle. Dans Microsoft Access, une table est un objet qui stocke les donnes dans des enregistrements (lignes) et des champs (colonnes). Les donnes se rapportent gnralement une catgorie particulire de choses, par exemple des employs ou des commandes. Champ : Partie d'une table qui contient un lment spcifique d'information, par exemple un nom de famille. Un champ est reprsent par une colonne ou une cellule dans une feuille de donnes. Dans un formulaire, vous pouvez utiliser un contrle, tel qu'une zone de texte, pour afficher les donnes d'un champ.

Page 9 sur 9

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

N'incluez pas des donnes drives ou calcules (des donnes qui sont le rsultat d'une expression). Incluez toutes les informations dont vous avez besoin. Stockez les informations de la manire la plus logique possible (par exemple, crez les champs Nom et Prnom, plutt que seulement Nom).

Identifiez les champs comportant des valeurs uniques: Pour permettre Microsoft Access de relier les informations stockes dans des tables spares (par exemple, pour relier un client toutes ses commandes), chaque table de votre base de donnes doit inclure un champ ou un ensemble de champs qui identifient de manire unique chaque enregistrement individuel dans la table. Un tel champ ou ensemble de champs s'appelle une cl primaire3.

Dterminez les relations entre les tables: prsent que vous avez divis vos informations sous forme de tables et que vous avez identifi les champs cl primaire, il vous faut indiquer Microsoft Access la faon de runir les informations connexes de manire significative. Pour cela, vous devez dfinir des relations entre les tables. Vous trouverez sans doute utile d'examiner les relations dans une base de donnes existante qui a t conue avec soin. Pour afficher les relations dans la base de donnes exemple Les comptoirs, ouvrez Comptoir.mdb et cliquez sur Relations dans le menu Outils.

Affinez votre structure: Aprs avoir cr les tables, les champs et les relations ncessaires, vous devez prsent tudier la structure et dtecter tout dfaut qu'elle pourrait prsenter. Il est plus facile de modifier la structure de votre base de donnes maintenant plutt qu'aprs avoir introduit vos donnes dans les tables. l'aide de Microsoft Access, crez vos tables, spcifiez les relations entre elles et tapez quelques enregistrements de donnes dans chaque table. Vrifiez si vous pouvez utiliser la base de donnes pour obtenir les rponses souhaites. Crez des formulaires et des tats brouillons et vrifiez s'ils affichent les donnes souhaites. Recherchez les donnes redondantes inutiles et liminez-les.

Ajoutez les donnes et crez d'autres objets de base de donnes. Lorsque vous tes satisfait et que la structure des tables rpond aux objectifs noncs ici, il est alors temps de passer l'tape suivante et d'ajouter toutes vos donnes existantes dans les tables. Vous pouvez ensuite crer tou(te)s les requtes4, formulaires5, tats6, macros7 et modules8 que vous voulez.

Cl primaire : Un ou plusieurs champs dont la ou les valeurs identifient de faon unique chaque enregistrement d'une table. Dans une relation, une cl primaire permet de faire rfrence des enregistrements spcifiques d'une table partir d'une autre table. Une cl primaire est appele cl externe lorsqu'elle est rfrence depuis une autre table. Requte : Question sur les donnes enregistres dans vos tables ou demande d'excution d'une action sur des donnes. Une requte permet de runir les donnes de plusieurs tables en vue de leur utilisation comme source de donnes pour un formulaire ou un tat. Dans Microsoft Access, vous pouvez crer et excuter les types de requtes suivants : Les requtes Slection, y compris les requtes paramtres et les requtes avec Oprations. Les requtes action Les requtes Analyse croise Les requtes spcifiques SQL

Formulaire : Objet de base de donnes Microsoft Access dans lequel vous pouvez placer des contrles servant la saisie, l'affichage et la modification des donnes dans les champs. tat : Objet de base de donnes Microsoft Access qui reprsente des informations mises en forme et organises selon vos spcifications. Par exemple, des rcapitulatifs des ventes, des listes de numros de tlphone et des tiquettes de publipostage.

Page 10 sur 10

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

Utilisez des outils d'analyse Microsoft Access. Microsoft Access comporte deux outils qui vous permettent d'affiner la structure de votre base de donnes. L'Assistant Analyseur de table analyse la structure d'une table la fois, propose de nouvelles structures et relations pour les tables et restructure une table en de nouvelles tables connexes si cela est ncessaire.

II.

Crer une table


A. Introduction

1.

2. En mode Feuille de donnes, vous pouvez ajouter, diter ou afficher les donnes de la table. Vous pouvez galement vrifier l'orthographe et imprimer les donnes de la table, filtrer ou trier les enregistrements, modifier l'aspect de la feuille de donnes, ou changer la structure de la table en ajoutant ou en supprimant des colonnes.

7 8

Macro : Action ou ensemble d'actions permettant d'automatiser des tches.

Module : Ensemble de dclarations, d'instructions et de procdures enregistres dans une unit les regroupant sous un mme nom. Microsoft Access propose deux types de modules : les modules standard et les modules de classe. Les modules d'tat et de formulaire sont des modules de classe contenant du code ne s'appliquant qu'au formulaire ou l'tat. moins de les dclarer explicitement comme prives et rserves au module auquel elles appartiennent, les procdures des modules standard sont reconnues et peuvent tre appeles par les procdures d'autres modules de la base de donnes ou d'une base de donnes rfrence. Chaque champ de la table Produits contient le mme type d'informations pour chaque produit, comme le nom du produit. Chaque enregistrement de la table Produits contient toutes les informations sur un produit, comme le nom du produit, le numro du fournisseur, la quantit en stock, etc.

Page 11 sur 11

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

3. En mode Feuille de donnes, vous pouvez crer de toute pice une table entire, ajouter, supprimer, ou personnaliser les champs d'une table existante.

Page 12 sur 12

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

B.

Crer une table vierge

1 2 3 4

Si ce n'est dj fait, basculez sur la fentre Base de donnes Pour afficher la fentre Base de donnes quelle que soit la fentre o vous vous trouvez, appuyez sur F11. Cliquez sur l'onglet Tables, puis sur Nouveau. Double-cliquez sur mode Cration. Dfinissez chacun des champs de la table. a) Cliquez dans la colonne Nom du champ et tapez le nom du champ, en respectant les rgles d'appellation10 des objets de Microsoft Access. b) Dans la colonne Type de donnes, gardez la valeur par dfaut (Texte) ou cliquez dans la colonne Type de donnes11, puis sur la flche et slectionnez le type de donnes dsir. c) Pour des informations sur les types de donnes voir ci dessous.

10

Rgles d'appellation des objets : Ensemble de rgles spcifiques servant nommer les objets Microsoft Access. Dans Microsoft Access, les noms peuvent comporter jusqu' 64 caractres et n'importe quelle combinaison de lettres, nombres, espaces et caractres spciaux l'exception du point (.), du point d'exclamation (!), de l'apostrophe inverse (`) et des crochets ([ ]). De plus, vous ne pouvez pas utiliser les espaces en dbut de nom ni les caractres de contrle (valeurs ASCII de 0 31). Conseils vitez l'emploi d'espaces dans les noms d'objet si vous comptez faire souvent rfrence des objets dans des expressions ou du code Visual Basic. vitez l'emploi de noms trop longs, car il est difficile de s'en souvenir et d'y faire rfrence.

11

Type de donnes : Attribut d'une variable ou d'un champ qui dtermine le genre de donnes qu'elle ou qu'il peut contenir. Par exemple, les types de donnes de champ Texte et Mmo permettent au champ de stocker du texte ou des nombres, mais le type de donnes Numrique n'accepte que des nombres. Les champs de type de donnes Numrique contiennent des donnes numriques utilises pour les calculs mathmatiques. Le type de donnes Montaire permet d'afficher ou de calculer des valeurs montaires. Les types de donnes pris en charge sont les types de donnes de champ, les types de donnes Visual Basic et les types de donnes de requte paramtre.

Page 13 sur 13

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

d) Dans la colonne Description, tapez la description du contenu de ce champ. Cette description s'affichera sur la barre d'tat lorsque vous ajouterez des donnes dans le champ et elle figurera dans la Dfinition de l'objet de la table. Vous n'tes pas oblig d'entrer une description. e) Si vous le souhaitez, vous pouvez dfinir les proprits du champ dans la partie infrieure de la fentre. Remarque : S'il s'agit d'une table attache, vous ne pouvez pas ajouter un nouveau champ la base de donnes en cours. Si la table attache est une table Microsoft Access, vous devez ouvrir sa base de donnes source pour ajouter un champ. Si la table attache provient d'une autre application, vous devez d'abord ouvrir le fichier source avec son application pour pouvoir ajouter un champ. 5 Avant d'enregistrer la table, dfinissez un champ de cl primaire. a) Slectionnez le ou les champs que vous souhaitez dfinir comme cl primaire. Pour slectionner un champ, cliquez sur le slecteur de ligne en regard du champ. Pour slectionner plusieurs champs, maintenez la touche CTRL enfonce et cliquez sur le slecteur de ligne correspondant chaque champ. b) Cliquez sur Cl primaire dans la barre d'outils. Remarques Vous pouvez spcifier une cl primaire pour un champ qui contient dj des donnes, mais si Microsoft Access trouve des doublons ou des valeurs de type Null lorsqu'il enregistre la table, il affiche un message d'erreur. Si ce message s'affiche, trois solutions s'offrent vous : soit vous utilisez une requte Trouver les doublons pour localiser les enregistrements comportant des doublons ou des valeurs Null, puis ditez le champ pour les enlever ; soit vous choisissez un autre champ ; soit encore, vous ajoutez un champ Numrotation automatique et le dfinissez comme cl primaire. Dans une cl primaire compose, l'ordre des champs peut avoir de l'importance pour vous. Les champs dans une cl primaire compose sont tris en fonction de leur ordre dans la table en mode Cration. Si vous voulez un ordre diffrent, spcifiez d'abord les champs composant la cl primaire de la manire dcrite dans la procdure prcdente, puis cliquez sur Index dans la barre d'outils pour afficher la fentre Index et reclasser les noms de champ pour l'index appel Cl primaire.

Remarque : Vous n'tes pas oblig de dfinir une cl primaire, mais c'est prfrable. Si vous n'en dfinissez pas, Microsoft Access vous demande si vous dsirez qu'il la cre votre place lors de l'enregistrement de la table. 6 Lorsque vous tes prt enregistrer votre table, cliquez sur Enregistrer dans la barre d'outils, puis tapez le nom de la table en respectant les rgles d'appellation des objets de Microsoft Access.

C.

Quel type de donnes dois-je utiliser pour un champ dans ma table ?

Pour dcider du type de donnes utiliser, basez-vous sur les considrations suivantes : Quel type de donnes voulez-vous autoriser dans ce champ ? Par exemple, vous ne pouvez pas enregistrer du texte dans un champ de type Numrique. Combien d'espace disque voulez-vous utiliser pour enregistrer les donnes du champ ? Quel type d'opration voulez-vous accomplir sur les valeurs de ce champ ? Par exemple, Microsoft Access permet d'additionner des valeurs dans des champs de type Numrique ou Montaire, mais pas dans des champs de type Texte ou Liaison OLE. Voulez-vous trier ou indexer le champ ? Vous ne pouvez pas trier ni indexer des champs de type Mmo, Hyperlien ou Liaison OLE.

Page 14 sur 14

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

Dsirez-vous utiliser le champ pour effectuer des regroupements lorsque vous gnrez des requtes ou des tats ? Vous ne pouvez pas effectuer un regroupement sur un champ de type Mmo, Hyperlien ou Liaison OLE. Comment voulez-vous trier les valeurs du champ ? Dans un champ Texte, les nombres sont tris comme des chanes de caractres (1, 10, 100, 2, 20, 200, etc.), et non comme des valeurs numriques. Si vous dsirez effectuer un tri sur des nombres, utilisez un champ de type Numrique ou Montaire. Il en est de mme pour les dates ; si vous devez effectuer un tri sur des dates, dfinissez ce champ comme un champ de type Date/Heure et non pas comme un champ de type Texte.

Remarque : Les types de donnes Numrique, Date/Heure, Montaire et Oui/Non proposent des formats d'affichage prdfinis. Utilisez la proprit Format du champ pour choisir l'un des formats proposs pour chaque type de donnes. Vous pouvez galement crer un format d'affichage personnalis, sauf pour les champs de type Liaison OLE.
Champs de table Visual Basic Description Valeur True/False ou yes/no. Les valeurs de type Boolean sont gnralement stockes dans des champs Bit d'une base de donnes Microsoft Jet ; toutefois, certaines bases de donnes ne prennent pas directement en charge ce type de donnes. Type de donnes lmentaire utilis pour stocker de petits nombres entiers positifs compris entre 0 et 255. Type de donnes lmentaire qui regroupe des nombres entiers longs. Une variable de type Long est enregistre sous la forme d'un nombre de 32 bits (4 octets) dont la valeur est comprise entre -2 147 483 648 et 2 147 483 647. Type de donnes utilis dans les calculs montaires ou dans les calculs virgule fixe pour lesquels une grande prcision est requise. Ce type de donnes permet de stocker des nombres comportant au maximum 15 chiffres avant la virgule et 4 chiffres aprs la virgule. Le type de donnes Currency utilisant des valeurs discrtes pour tous les montants, l'arrondissement binaire n'entre pas en compte lors du calcul de totaux. Les dates et les heures sont enregistres en interne comme les composants d'un nombre rel. Date/Heure Date La valeur gauche du sparateur dcimal reprsente une date comprise entre le 30 dcembre 1899 et le 30 dcembre 9999 inclus. Les valeurs ngatives reprsentent des dates antrieures au 30 dcembre 1899. La valeur situe droite du sparateur dcimal reprsente une heure comprise entre 0:00:00 et 23:59:59, inclus. Midi est reprsent par .5. Type de donnes lmentaire qui regroupe les nombres virgule flottante en double prcision dans le format IEEE. Une variable de type Double est enregistre sous la forme d'un nombre de 64 bits (8 octets) dont la valeur est comprise entre -1,79769313486231E308 et -4,94065645841247E-324 pour les valeurs ngatives, entre 4,94065645841247E-324 et 1,79769313486231E308 pour les valeurs positives, et 0.

Oui/Non

Boolean

Numrique (Taille du champ = Octet) NumroAuto (Taille du champ = Entier long) / Numrique (Taille du champ = Entier long)

Byte

Long

Montaire

Currency

Numrique (Taille du Double champ = Rel double)

Page 15 sur 15

Institut Agronomique et Vtrinaire Hassan II Champs de table Visual Basic Description

M. LAHLOU

Numrique ou NumroAuto (Taille du champ = N de rplication)

Non pris en charge

Identifiant mondialement unique/identifiant universellement unique. Chane d'identification unique utilise dans le cas d'appels de procdure distance. Toutes les interfaces et les classes d'objet utilisent un identificateur GUID. Un GUID est une valeur de 128 bits. Par exemple, 12345678-1234-1234-1234-123456789ABC est un GUID syntaxiquement correct. Les GUID sur le client et le serveur doivent correspondre pour que ces derniers puissent tre relis. Les fournisseurs d'objets OLE (Object Linking and Embedding) peuvent demander Microsoft de leur fournir un ou plusieurs jeux de 256 GUID pour leur usage exclusif. Ou, si vous possdez une carte rseau, vous pouvez excuter un utilitaire appel Uuidgen.exe, qui fournit un jeu de 256 GUID en fonction de l'heure, de la date et d'un numro unique cod dans votre carte rseau. Type de donnes de champ utilis pour lier ou incorporer dans une base de donnes Microsoft Jet des objets crs dans d'autres applications. Par exemple, vous pouvez utiliser un champ OLE Object pour y placer une collection d'images. Type de donnes de champ. Les champs Memo peuvent contenir jusqu' 1,2 Go de donnes texte. Type de donnes lmentaire qui regroupe des nombres virgule flottante en simple prcision au format IEEE. Une variable de type Single est stocke sous la forme d'un nombre de 32 bits (4 octets) dont la valeur est comprise entre -3,402823E38 et -1,401298E-45 pour les valeurs ngatives, entre 1,401298E-45 et 3,402823E38 pour les valeurs positives, et 0. Type de donnes lmentaire qui regroupe des nombres entiers. Une variable de type Integer est enregistre sous la forme d'un nombre sur 16 bits (2 octets) dont la valeur est comprise entre -32 768 et 32 767. Type de donnes de champ. Les champs Texte peuvent contenir jusqu' 255 caractres ou le nombre de caractres indiqu par la proprit Size de l'objet Field s'il est infrieur 255. Si la proprit Size du champ Texte est 0, le champ peut contenir jusqu' 255 caractres de donnes. Type de donnes de champ. Les champs Memo peuvent contenir jusqu' 1,2 Go de donnes texte.

Objet OLE

String

Mmo

String

Numrique (Taille du Single champ = Rel simple)

Numrique (Taille du champ = Entier)

Integer

Texte

String

Lien hypertexte

String

III.

propos des relations dans une base de donnes

Aprs avoir install diverses tables pour les diffrents sujets traits dans votre base de donnes, il vous faut un moyen d'indiquer Microsoft Access comment rassembler ces informations. La premire tape consiste dfinir des relations entre vos diffrentes tables. Aprs quoi vous pouvez crer des requtes, des formulaires et des tats pour afficher simultanment des donnes provenant de plusieurs tables diffrentes. Par exemple, le formulaire ci-dessous comprend des informations provenant de cinq tables diffrentes :

Page 16 sur 16

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

A.

Comment fonctionnent les relations12 ?

Dans l'exemple prcdent, les champs des cinq tables doivent tre coordonns de manire prsenter les informations dans le mme ordre. Cette coordination est obtenue au moyen de relations entre tables. Une relation a pour objet de faire correspondre les donnes des champs-cls de deux tables - ces champs ont habituellement le mme nom dans les deux tables. Dans la plupart des cas, ces champs sont la cl primaire de la premire table, qui constitue un identificateur unique pour chaque enregistrement, et la cl externe13 de l'autre table. Par exemple, il est possible d'associer les employs avec les commandes dont ils ont la charge en crant une relation entre la table Employs et la table Commandes l'aide des champs Nemploy.

B.

Relation un--plusieurs

La relation un--plusieurs est la plus rpandue. Dans ce type de relation, un enregistrement de la table A peut tre mis en correspondance avec plusieurs enregistrements de la table B, alors qu' chaque enregistrement de la table B ne correspond qu'un enregistrement de la table A.

12

Relation : Association de champs (colonnes) communs deux tables. Une relation peut tre du type un--un, un--plusieurs ou plusieurs--plusieurs. Cl externe : Un ou plusieurs champs de table faisant rfrence au(x) champ(s) qui constitue(nt) la cl primaire d'une autre table. Une cl externe indique la manire dont les tables sont relies (les donnes figurant dans le(s) champ(s) de la cl externe et le(s) champ(s) de la cl primaire doivent correspondre). Par exemple, la table Produits de la base de donnes exemple Les comptoirs contient la cl externe N fournisseur, qui fait rfrence la cl primaire N fournisseur de la table Fournisseurs. l'aide de cette relation, la table Produits affiche un nom de fournisseur provenant de la table Fournisseurs pour chaque produit.

13

Page 17 sur 17

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

C.

Relation plusieurs--plusieurs

Dans une relation plusieurs--plusieurs, un enregistrement de la table A peut tre mis en correspondance avec plusieurs enregistrements de la table B, et inversement un enregistrement de la table B peut tre mis en correspondance avec plusieurs enregistrements de la table A. Ce type de relation n'est possible qu'aprs dfinition d'une troisime table (appele table de jonction), dont la cl primaire est compose de deux champs les cls trangres des tables A et B. Une relation plusieurs-plusieurs n'est en fait rien d'autre que deux relations un--plusieurs avec une troisime table. Par exemple, la table Commandes et la table Produits ont une relation plusieurs--plusieurs dfinie en crant deux relations un--plusieurs avec la table Dtails commandes.

D.

Relation un--un

Dans une relation un--un, chaque enregistrement de la table A ne peut correspondre qu' un enregistrement de la table B, et inversement chaque enregistrement de la table B ne peut correspondre qu' un enregistrement de la table A. Ce type de relation est peu rpandu, car la plupart des informations qui seraient associes de la sorte font normalement partie d'une mme table. Vous pouvez utiliser une relation un--un pour diviser une table en plusieurs champs, pour isoler une partie d'une table pour des raisons de scurit, ou pour stocker des informations ne s'appliquant qu' un sousPage 18 sur 18

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

ensemble de la table principale. Par exemple, vous pouvez crer une table pour recenser les employs participant un jeu de football organis pour lever des fonds.

E.

Dfinition des relations

Pour dfinir une relation, vous devez ajouter les tables relier dans la fentre Relations et faire glisser le champ-cl de la premire table sur le champ-cl de l'autre table.

Le type de relation cre par Microsoft Access dpend de la manire dont sont dfinis les champs lis : Une relation un--plusieurs est cre si un seul des champs lis est une cl primaire ou a un index unique14. Une relation un--un est cre si les deux champs lis sont des cls primaires ou ont des index uniques. Une relation plusieurs--plusieurs est en fait compose de deux relations un--plusieurs, avec une troisime table dont la cl primaire consiste en deux champs, qui sont les cls trangres des deux autres tables.

Remarque Si vous faites glisser un champ qui n'est pas une cl primaire et n'a pas un index unique vers un autre champ qui n'est pas une cl primaire et n'a pas un index unique, la relation cre est indtermine. Dans les requtes contenant des tables avec une relation indtermine, Microsoft Access

14

Index unique : Index dfini par l'attribution de la valeur Oui (sans doublons) la proprit Index (Indexed) d'un champ. Un index unique ne permet pas la saisie de doublons dans le champ index. Le paramtrage du champ comme cl primaire dsigne automatiquement le champ en tant qu'index unique.

Page 19 sur 19

Institut Agronomique et Vtrinaire Hassan II


15

M. LAHLOU

affiche une ligne de jointure par dfaut entre les tables, mais l'intgrit rfrentielle ne sera pas garantie, et rien ne garantit non plus que les champs seront uniques dans aucune des tables.

F.
1 2 3 4

Dfinir des relations entre les tables

Fermez toutes les tables ouvertes. Vous ne pouvez pas crer ou modifier des relations entre des tables ouvertes. Si ce n'est dj fait, basculez vers la fentre Base de donnes Vous pouvez utiliser la touche F11 pour basculer vers la fentre Base de donnes, quelle que soit la fentre o vous vous trouvez. Cliquez sur Relations dans la barre d'outils. Si vous n'avez dfini aucune relation dans votre base de donnes, la bote de dialogue Ajouter tables/requtes s'affiche automatiquement. Si vous devez ajouter les tables que vous voulez relier alors que la bote de dialogue Ajouter une table ne s'affiche pas, cliquez sur Ajouter une table dans la barre d'outils. Si les tables que vous voulez relier sont dj affiches, passez directement l'tape 6. Double-cliquez sur le nom des tables que vous souhaitez relier, puis fermez la bote de dialogue Ajouter tables/requtes. Faites glisser partir d'une table le champ que vous souhaitez relier au champ d'une autre table. Pour faire glisser plusieurs champs, appuyez sur CTRL et cliquez sur chacun d'eux avant de les faire glisser. Dans la plupart des cas, vous reliez le champ cl primaire (qui est affich en gras) d'une table avec un champ correspondant d'une autre table (souvent du mme nom) appel la cl externe Les champs lis ne doivent pas obligatoirement avoir le mme nom, mais ils doivent possder le mme type de donnes ( deux exceptions prs) et contenir le mme type d'informations. En outre, lorsque les champs correspondants sont des champs de type Numrique, ils doivent avoir le mme paramtrage de la proprit FieldSize. Les deux seules exceptions cette rgle sont la possibilit de relier un champ Numrotation automatique avec un champ Numrique dont la proprit FieldSize est Entier long ; et un champ Numrotation automatique avec un champ Numrique si les deux champ ont ID de rplica comme paramtre de la proprit FieldSize.

5 6

La bote de dialogue Relations s'affiche. Vrifiez les noms des champs affichs dans les deux colonnes et assurez-vous qu'ils sont corrects. Vous pouvez les modifier si ncessaire. Dfinissez les options de relation si ncessaire. Pour des informations sur un lment donn de la bote de dialogue Relations, cliquez sur le bouton d'aide , puis sur l'lment.

8 9

Cliquez sur le bouton Crer pour crer la relation. Rptez les tapes 5 8 pour chaque couple de tables relier.

Lorsque vous refermez la fentre Relations, Microsoft Access vous demande si vous dsirez sauvegarder la mise en forme. Quelle que soit votre rponse, les relations cres sont enregistres dans la base de donnes. Remarques : Si vous souhaitez voir toutes les relations dfinies dans une base de donnes, cliquez sur Afficher toutes les relations dans la barre d'outils. Pour n'afficher que les relations dfinies pour une table donne, cliquez sur la table, puis sur Afficher les relations directes dans la barre d'outils. Si vous souhaitez modifier la mise en forme de la table, cliquez sur la table avec le bouton droit de la souris, puis sur Modifier la table.

15

Intgrit rfrentielle : Rgles devant tre respectes pour prserver les relations dfinies entre des tables lors de l'ajout ou la suppression d'enregistrements. Si vous appliquez l'intgrit rfrentielle, Microsoft Access vous empche d'ajouter des enregistrements une table lie lorsque la table primaire ne contient pas d'enregistrement associ, de procder la modification de valeurs dans la table primaire qui entranerait des enregistrements orphelins dans une table relie, et de supprimer des enregistrements de la table primaire lorsque la table relie contient des enregistrements correspondants.

Page 20 sur 20

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

Vous pouvez crer des relations entre des requtes comme pour des tables. Dans ce cas, l'intgrit rfrentielle ne peut tre applique. Pour crer une relation entre une table et elle-mme, ajoutez-la deux fois. Ce type de relation est souvent utilis lorsque vous devez effectuer une recherche dans la mme table. Par exemple, dans la table Employs de la base de donnes exemple Les Comptoirs, il existe une relation entre les champs N Employ et Rend compte , de manire ce que le champ Rend compte affiche aussi le nom d'un employ de la table.

IV.

Requtes
A. Introduction

Utilisez les requtes pour afficher, modifier ou analyser les donnes de diffrentes manires. Vous pouvez aussi les utiliser comme source d'un formulaire ou d'un tat.

Le type de requte le plus courant est une requte Slection. Une requte Slection recherche les donnes dans une ou plusieurs tables en fonction des critres que vous spcifiez. Ces donnes sont ensuite affiches dans l'ordre que vous dsirez.

Page 21 sur 21

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

B.

Comment personnaliser une requte ?

C.

Comment spcifier plusieurs critres dans une requte ?

Un champ utilisant Ou

Page 22 sur 22

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

Un champ utilisant Et

Deux champs utilisant Ou

Deux champs utilisant Et Page 23 sur 23

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

Trois champs utilisant Et et Ou

D. Exemple de requte Analyse croise


Ce type de requte calcule une somme, une moyenne, effectue un comptage ou tout autre type d'opration concernant les donnes regroupes dans les deux types d'informations (un en bas gauche de la feuille de donnes et l'autre en haut).

Page 24 sur 24

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

Pour crer une requte de ce type, utilisez un Assistant ou crez-la directement dans la grille de cration. Dans la grille de cration, vous devrez spcifier les valeurs des champs qui serviront d'en-tte de colonne, d'en-tte de range et les valeurs des champs sur lesquels effectuer une addition, une moyenne, un comptage ou tout autre type d'opration.

Page 25 sur 25

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

E. Types de jointure et influence sur le rsultat de la requte

Page 26 sur 26

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

V.

Formulaires
A. Introduction
Vous pouvez utiliser des formulaires des fins diverses.

La plupart des informations contenues dans un formulaire proviennent d'une source d'enregistrements sous-jacente. Les autres informations du formulaire sont stockes dans le formulaire en mode Cration.

Page 27 sur 27

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

Vous crez le lien entre un formulaire et sa source d'enregistrements l'aide d'objets graphiques appels contrles. Le type de contrle le plus rpandu pour l'affichage et la saisie de donne est la zone de texte.

Page 28 sur 28

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

B. Personnaliser un formulaire

C. Sections d'un formulaire


Vous pouvez augmenter les performances d'un formulaire en lui ajoutant une ou plusieurs sections. La plupart des formulaires comportent uniquement une section Dtail, mais il est possible d'ajouter une section En-tte de formulaire, une section En-tte de page, une section Pied de page et une section Pied de formulaire.

Cette illustration montre le formulaire Produits tel qu'il apparat sur l'cran prcdent en mode Formulaire et tel qu'il apparat une fois imprim.

Page 29 sur 29

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

D. Crer un formulaire sans Assistant


1 2 3 4 Dans la fentre Base de donnes, cliquez sur l'onglet Formulaires. Cliquez sur Nouveau. Dans la bote de dialogue Nouveau formulaire, cliquez sur Mode Cration. Cliquez sur le nom de la table ou de la requte contenant les donnes sur lesquelles vous voulez baser votre formulaire. Si le formulaire doit tre vierge (par exemple, si vous voulez crer un formulaire fonctionnant comme un Menu Gnral pour ouvrir d'autres formulaires ou tats, ou pour crer une bote de dialogue personnalise), ne procdez aucune slection dans la liste. Remarque Si vous dsirez crer un formulaire reprenant les donnes d'au moins deux tables, basez votre formulaire sur une requte impliquant les tables correspondantes. 5 Cliquez sur OK.

Page 30 sur 30

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

Ajouter des contrles: tout lment que vous ajoutez un formulaire porte le nom de contrle16. Les zones de texte, les tiquettes, les zones de liste, les boutons d'option, les boutons de commande et les traits sont autant d'exemples de contrles diffrents. La cration d'un contrle dpend du type de contrle souhait : contrle dpendant17, contrle indpendant18 ou contrle calcul19.

E. Crer un formulaire l'aide d'un Assistant


1 2 3 4 Dans la fentre Base de donnes, cliquez sur l'onglet Formulaires. Cliquez sur Nouveau. Dans la bote de dialogue Nouveau formulaire, cliquez sur l'Assistant que vous souhaitez utiliser. Une description de l'Assistant apparat dans la partie gauche de la bote de dialogue. Cliquez sur le nom de la table ou de la requte qui contient les donnes sur lesquelles vous voulez baser votre formulaire. Remarque Vous n'avez pas besoin d'effectuer cette tape si vous cliquez sur l'option Assistant Formulaire (vous pouvez spcifier l'origine des enregistrements du formulaire dans l'Assistant). 5 6 Cliquez sur OK. Si vous avez cliqu, lors de l'tape 3, sur l'Assistant Formulaire, l'Assistant Graphique ou l'Assistant Tableau crois dynamique, suivez les instructions des botes de dialogue de l'Assistant. Si vous cliquez sur Formulaire instantan : Colonne simple, Formulaire instantan : Tabulaire ou Formulaire instantan : Feuille de donnes, Microsoft Access cre automatiquement votre formulaire.

Si le formulaire obtenu ne produit pas le rsultat escompt, vous pouvez le modifier en mode Cration. Remarque Si vous cliquez sur l'une des options de formulaire instantan, Microsoft Access utilise le format automatique que vous avez spcifi en dernier, que ce soit par l'Assistant Formulaire ou par la commande Format automatique du menu Format en mode Cration.

F. Sous-formulaire 1. Introduction
Un sous-formulaire est un formulaire dans un formulaire. Le formulaire primaire est appel formulaire principal et le formulaire qu'il contient, sous-formulaire. Une combinaison formulaire/sous-formulaire est souvent appele formulaire hirarchique ou formulaire pre/fils. Les sous-formulaires sont particulirement utiles lorsque vous voulez afficher les donnes de tables ou de requtes qui ont une relation un--plusieurs20. Vous pouvez, par exemple, crer un formulaire qui

16

Contrle : Objet graphique, par exemple une zone de texte, une case cocher, un rectangle ou un bouton de commande, que vous placez dans un formulaire ou un tat en mode Cration pour afficher des donnes, excuter une action ou faciliter la lecture du formulaire ou de l'tat. Contrle dpendant : contrle dans un formulaire ou un tat dont le contenu provient d'un champ de la table, de la requte ou de l'instruction SQL sous-jacente. La proprit SourceContrle (ControlSource) du contrle est dfinie par un nom de champ de la table, de la requte ou de l'instruction SQL. Par exemple, une zone de texte qui affiche le nom d'un employ est associe au champ Nom de la table Employs. Contrle indpendant : contrle qui n'est pas reli un champ. Un contrle indpendant vous permet d'afficher du texte informatif, comme des instructions relatives l'utilisation d'un formulaire, ou des graphismes et des images provenant d'autres applications. Par exemple, les traits et les rectangles sont des contrles indpendants. Vous pouvez galement utiliser les contrles indpendants pour accepter les entres de l'utilisateur et excuter une action en fonction de ces entres. Contrle calcul : contrle dans un formulaire ou un tat qui affiche le rsultat d'une expression plutt que les donnes stockes. Cette valeur est recalcule chaque fois qu'une valeur de l'expression change. Un champ calcul est un champ dfini dans une requte qui affiche le rsultat d'une expression plutt que les donnes stockes. Relation un--plusieurs : association entre deux tables dans laquelle :

17

18

19

20

Page 31 sur 31

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

contient un sous-formulaire afin d'afficher les donnes d'une table Catgories et d'une table Produits. Les donnes de la table Catgories reprsentent le ct un de la relation. Les donnes de la table Produits reprsentent le ct plusieurs de la relation (chaque catgorie peut avoir plusieurs produits).

Dans ce type de formulaire, le formulaire principal et le sous-formulaire sont lis. Ainsi, le sousformulaire n'affiche que les enregistrements qui correspondent l'enregistrement en cours du formulaire principal. Par exemple, lorsque le formulaire principal affiche la catgorie Boissons, le sous-formulaire affiche uniquement les produits de la catgorie Boissons. Lorsque vous utilisez un formulaire possdant un sous-formulaire pour entrer de nouveaux enregistrements, Microsoft Access enregistre l'enregistrement en cours dans le formulaire principal lorsque vous entrez le sous-formulaire. Grce cela, les enregistrements de la table plusieurs pourront tre relis un enregistrement dans la table un . Chaque enregistrement est galement automatiquement enregistr lorsqu'il est ajout au sous-formulaire. Un sous-formulaire peut tre affich sous forme de feuille de donnes, comme dans l'illustration prcdente, il peut galement tre affich sous la forme d'un formulaire unique ou continu. Un formulaire principal ne peut tre affich que sous forme de formulaire unique. Un formulaire principal peut contenir autant de sous-formulaires que vous le souhaitez condition qu'ils soient placs dans le formulaire principal. Vous pouvez galement crer deux niveaux de sousformulaires. Cela signifie que vous pouvez avoir un sous-formulaire contenu dans le formulaire principal mais aussi un second sous-formulaire contenu dans le premier sous-formulaire. Vous pouvez, par exemple, avoir un formulaire principal qui affiche les clients, un sous-formulaire qui affiche les commandes et un autre sous-formulaire qui affiche les dtails des commandes.

2. Types de sous-formulaires
Lorsque vous crez un sous-formulaire, vous pouvez faire en sorte qu'il soit affich en mode Feuille de donnes uniquement ; en mode Formulaire uniquement sous forme de formulaire unique ou continu ; ou dans l'un ou l'autre de ces modes. Les sous-formulaires affichs sous forme de formulaire unique ou continu peuvent tre simples ; ils peuvent galement tre largement personnaliss afin de contenir des en-ttes, des bas de page, etc.

La valeur de la cl primaire de chaque enregistrement de la table primaire correspond la valeur du ou des champs correspondants de plusieurs enregistrements de la table lie. La valeur de la cl primaire de chaque enregistrement de la table lie correspond la valeur du ou des champs correspondants d'un et un seul enregistrement de la table primaire.

Page 32 sur 32

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

3. Lier un formulaire principal et un sous-formulaire


Si vous crez un sous-formulaire l'aide de l'Assistant formulaire ou de l'Assistant sous-formulaire, Microsoft Access lie automatiquement le formulaire principal et le sous-formulaire pour autant que certaines conditions soient respectes. Pour plus d'informations, cliquez sur . Si votre formulaire principal et votre sous-formulaire ne remplissent pas ces conditions, vous pouvez recourir la procdure suivante afin de les lier. 1 2 3 Ouvrez le formulaire principal en mode Cration. Assurez-vous que le contrle du sous-formulaire est slectionn, puis cliquez sur Proprits dans la barre d'outils pour afficher la feuille des proprits contrle du sous-formulaire. Dans la bote de proprit ChampsFils (LinkChildFields), entrez le nom du champ de liaison dans le sous-formulaire. Si vous ne savez pas avec certitude quel est le champ de liaison, cliquez sur le bouton Gnrer afin d'ouvrir le Gestionnaire de liaisons du sous-formulaire ou du sous-tat. Pour entrer plusieurs champs de liaison, sparez les noms de champs l'aide du signe deux points. Si vous entrez plusieurs champs de liaison, vous devez entrer respecter l'ordre des proprits ChampsPres (LinkMasterFields) et ChampsFils (LinkChildFields). Remarque Vous ne pouvez pas utiliser le nom d'un contrle dans la proprit ChampsFils (LinkChildFields). 4 Dans la bote de proprit ChampsPres (LinkMasterFields), entrez le nom du champ de liaison dans le formulaire principal. Si vous ne savez pas avec certitude quel est le champ de liaison, cliquez sur le bouton Gnrer afin d'ouvrir le Gestionnaire de liaisons du sous-formulaire ou du sous-tat. Pour entrer plusieurs champs de liaison, sparez les noms de champs l'aide du signe deux points. Si vous entrez plusieurs champs de liaison, vous devez respecter le mme ordre dans les proprits ChampsPres (LinkMasterFields) et ChampsFils (LinkChildFields).

Remarques Il n'est pas ncessaire que les champs de liaison apparaissent dans le formulaire principal ou dans le sous-formulaire, mais ils doivent tre prsents dans la source d'enregistrement sous-jacente. Si vous crez le sous-formulaire l'aide de l'Assistant Formulaire, Microsoft Access inclut automatiquement les champs de liaison dans la source d'enregistrement sous-jacente mme si vous ne les slectionnez pas dans l'Assistant.

Page 33 sur 33

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

Les champs de liaison doivent contenir le mme genre de donnes et tre du mme type de donnes ou d'un type ou d'une taille compatible. Par exemple, un champ NumroAuto est compatible avec un champ Numrique dont la proprit FieldSize est dfinie sur Entier long.

VI.

tats
A. Introduction
Les tats permettentde reprsenter efficacement vos donnes sous une forme imprime. Dans la mesure o vous avez la possibilit de dfinir la taille et la mise en forme de chaque lment de l'tat, vous pouvez afficher les informations exactement comme vous le souhaitez.

La plupart des informations contenues dans un tat proviennent de tables sous-jacentes, de requtes ou d'instructions SQL constituant la source des donnes de l'tat. Les autres informations contenues dans l'tat sont, quant elles, enregistres lors de sa cration.

Page 34 sur 34

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

B. Sections d'un tat


Vous pouvez rpartir les informations d'un tat sur plusieurs sections. Chaque section a une fonction particulire et s'imprime dans un ordre particulier sur la page et sur l'tat.

En mode Cration, les sections sont reprsentes sous forme de bandeaux. Chaque section contenue dans l'tat n'est reprsente qu'une seule fois, mais il est possible que certaines sections s'impriment plusieurs fois dans un tat. Pour identifier les informations contenues dans une section, placez des contrles (par exemple des tiquettes ou des zones de texte).

Page 35 sur 35

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

21

Vous pouvez regrouper des enregistrements ayant des valeurs identiques et effectuer des soustotaux afin de faciliter la lecture de vos tats. Dans cet exemple, les commandes livres un mme jour sont regroupes.

22

21

L'en-tte de l'tat n'apparat qu'une seule fois, au dbut de l'tat. Vous pouvez l'utiliser pour y placer un logo, un titre ou la date d'impression. L'en-tte de l'tat s'imprime avant l'en-tte de la premire page de l'tat. L'en-tte de page apparat en haut de chaque page de l'tat. Utilisez-la pour y placer des lments tels que les titres de colonnes. La section Dtail contient le corps principal des donnes de l'tat. Cette section est rpte pour chaque enregistrement dfini dans la source de l'tat. Le pied de page apparat au bas de chaque page de l'tat. Utilisez-le pour y placer des lments tels que le numro de page. Le pied d'tat n'apparat qu'une seule fois, la fin de l'tat. Utilisez-le pour y placer des lments tels que des totaux rcapitulatifs. Bien que le pied d'tat apparaisse comme la dernire section la cration de l'tat, il s'imprime juste avant le dernier pied de page de l'tat.

22

L'en-tte de groupe apparat chaque nouveau groupe d'enregistrements. Utilisez-le pour y placer des informations gnrales qui s'appliquent au groupe, par exemple le nom du groupe. Le pied de groupe apparat la fin de chaque groupe d'enregistrements. Utilisez-le pour y placer des lments tels que les totaux relatifs au groupe.

Page 36 sur 36

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

C. Exemple d'enregistrements regroups dans un tat

Page 37 sur 37

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

Microsoft ACCESS II

VII.

Introduction

Une base de donnes est un ensemble d'informations associes un sujet particulier, tel que le suivi des commandes ou la gestion d'une collection musicale. Si votre base de donnes n'est pas stocke sur un ordinateur, ou si elle ne l'est que partiellement, vous tes peut-tre oblig de grer des informations en provenance de sources diverses que vous devez coordonner et organiser manuellement. l'aide de Microsoft Access, vous pouvez grer toutes vos informations l'aide d'un fichier unique de base de donnes. Dans ce fichier, vous devez rpartir ces donnes entre plusieurs contenants appels tables. Les formulaires en ligne vous permettent de consulter, d'ajouter et de mettre jour les donnes des tables. Les requtes vous permettent de rechercher et de rcuprer les donnes Page 38 sur 38

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

que vous voulez. Quant aux tats, ils servent analyser et imprimer les donnes selon la mise en page de votre choix. Pour stocker vos donnes, vous devez crer une table par type d'informations que vous grez. Pour rassembler, dans une requte, un formulaire ou un tat, des donnes en provenance de plusieurs tables, vous devez dfinir des relations entre les tables. Pour rechercher et rcuprer les donnes correspondant aux conditions que vous aurez spcifies, y compris des donnes contenues dans plusieurs tables, vous devez crer une requte. Les requtes peuvent galement vous permettre de mettre jour ou de supprimer plusieurs enregistrements la fois, et d'effectuer sur vos donnes des calculs intgrs ou personnaliss. Pour afficher, saisir et modifier facilement des donnes directement dans une table, crez un formulaire. Lorsque vous ouvrez un formulaire, Microsoft Access rcupre les donnes d'une ou plusieurs tables et les affiche l'cran en utilisant la mise en page que vous avez choisie dans l'Assistant Formulaire, ou celle que vous avez cr vous-mme. Pour analyser vos donnes ou les mettre en page pour l'impression, vous devez crer un tat. Par exemple, vous pouvez crer un tat regroupant des donnes et calculant des totaux, et un autre tat contenant des donnes mises en forme en vue de l'impression d'tiquettes de publipostage.

Microsoft Access possde un grand nombre de caractristiques qui vous permettent de mieux contrler la manipulation des objets et des donnes l'aide de la programmation. Vous trouverez ci-aprs une brve description de certaines de ces fonctionnalits. 1. Procdures vnementielles et modules de formulaire et d'tat Tout comme dans Microsoft Visual Basic, vous pouvez maintenant crer des procdures vnementielles dans Access Basic pour rpondre des vnements qui se produisent dans des formulaires et des tats. Les procdures vnementielles sont enregistres dans les modules du formulaire et de l'tat. Ces modules tant attachs au formulaire ou l'tat, votre code fait partie de la structure du formulaire ou de l'tat. Vous pouvez galement appeler une fonction Access Basic partir d'une proprit de type vnement. Pour plus d'informations sur la cration et l'utilisation de procdures vnementielles. 2. Accs ais aux macros et au code Vous pouvez accder directement une macro ou une procdure vnementielle sans quitter votre formulaire ou votre tat pour passer la fentre Base de donnes. Slectionnez la proprit de type vnement qui contient la macro ou la procdure vnementielle que vous souhaitez modifier, puis cliquez sur le bouton Gnrateur situ droite de la zone de proprit. 3. Nombre accru de proprits dfinissables l'excution Il est dsormais possible d'utiliser une macro ou une procdure vnementielle pour dfinir la plupart des proprits d'un formulaire ou d'un tat l'excution, en rponse aux vnements qui se produisent dans le formulaire ou l'tat. 4. Modle d'vnement Un modle d'vnement similaire celui utilis dans Microsoft Visual Basic permet votre application de rpondre une grande varit d'vnements, dont la frappe de touches, les dplacements de la souris, les erreurs d'excution et l'coulement du temps. 5. Architecture extensive de dfinition de donnes Access Basic Access Basic vous permet prsent de dfinir et de grer une grande varit d'objets, tels que des tables, des requtes, des champs, des index, des relations, des formulaires, des tats et des contrles. 6. Gnrateur de menu et intgration de sous-menus Le nouveau Gnrateur de menu fournit une interface d'une grande simplicit qui permet de crer des barres de menus personnalises. Vous pouvez, en outre, incorporer des sous-menus vos barres de menus personnalises. Page 39 sur 39

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

7. Prsence des outils de dbogage Outre la dfinition de points d'arrt et la vrification pas pas du code la recherche des erreurs, vous avez maintenant la possibilit d'afficher la liste de tous les appels de procdure actifs. Pour cela, choisissez la commande Appels du menu Affichage, ou le bouton Appels de la barre d'outils. 8. Gestion des erreurs En plus des techniques traditionnelles de gestion des erreurs, vous pouvez utiliser les procdures vnementielles Erreur pour intercepter une erreur d'excution et prendre les mesures qui s'imposent. 9. Interface de scurit L'amlioration des commandes et des botes de dialogue destines la scurit facilite l'attribution des autorisations de protection pour les objets, et la modification de la proprit d'un objet. 10. Prise en charge de lautomatisation OLE tant donn que Microsoft Access prend en charge la version 2.0 de OLE, vous pouvez maintenant manipuler les objets exposs d'autres applications en appelant des mthodes et en dfinissant des proprits, exactement comme s'il s'agissait d'objets Microsoft Access. 11. Cration et installation de complments Vous pouvez utiliser Access Basic pour crer des complments, tels que des Assistants ou des gnrateurs personnaliss. La nouvelle commande Installateur de complments facilite l'installation de complments dans Microsoft Access.

VIII. DAO
A. Prsentation des objets d'accs aux donnes
Les objets d'accs aux donnes (DAO) vous permettent d'utiliser un langage de programmation pour extraire et manipuler des donnes dans des bases de donnes locales ou distantes. Ils vous permettent galement de grer des bases de donnes, ainsi que les objets et la structure de ces dernires.

1. Modles d'objet
La bibliothque DAO prend en charge deux environnements de bases de donnes diffrents, galement appels "espaces de travail" : les espaces de travail Microsoft Jet permettent d'accder des donnes provenant de sources de donnes Microsoft Jet, Microsoft Jet connectes ODBC, et de bases de donnes ISAM sous divers formats, comme, dBase, Paradox ou Lotus 1-2-3 ; les espaces de travail ODBCDirect permettent d'accder des serveurs de base de donnes via ODBC, sans charger le moteur de base de donnes Microsoft Jet.

Utilisez l'espace de travail Microsoft Jet pour ouvrir une base de donnes Microsoft Jet (fichier .mdb) ou toute autre base de donnes de bureau ISAM, ou pour utiliser les fonctionnalits uniques de Microsoft Jet, comme la jonction de donnes provenant de base de donnes de formats diffrents. Vous pouvez galement utiliser l'espace de travail ODBCDirect pour excuter de simples requtes ou procdures stockes sur un serveur dport, comme Microsoft SQL Server, ou lorsque votre application cliente ncessite des fonctions spcifiques ODBC, comme la mise jour par lots ou l'excution de requtes asynchrones.

2. Objets DAO
Il existe 17 types d'objets DAO. Vous pouvez dclarer de nouvelles variables objet DAO pour chacun des types d'objets. Par exemple, le code Visual Basic pour Applications (VBA) suivant cre des variables objet pour un objet Database, un objet Recordset de type Feuille de rponses dynamique (Dynaset) et un objet Field : Page 40 sur 40

Institut Agronomique et Vtrinaire Hassan II


Dim Dim Dim Set Set Set dbsExample rstExample fldExample dbsExample rstExample fldExample As Database As Recordset As Field = OpenDatabase("Biblio.mdb") = dbsExample.OpenRecordset("Authors", dbOpenDynaset) = rstExample.Fields("Au_ID")

M. LAHLOU

3. Collections DAO
Une collection correspond chacun des types d'objet DAO, l'exception du type DBEngine. Une collection comprend tous les objets d'un type donn. Par exemple, la collection Recordsets contient tous les objets Recordset ouverts. Chaque collection appartient un objet de niveau immdiatement suprieur dans la hirarchie. Un objet Database possde une collection Recordsets. l'exception des objets Connection et Error, tout objet DAO possde une collection Properties. La plupart des objets DAO disposent de collections par dfaut et de proprits par dfaut. Par exemple, la collection par dfaut d'un objet Recordset est la collection Fields. La proprit par dfaut d'un objet Field est la proprit Value. Vous pouvez simplifier votre code en tirant partie de ce paramtrage par dfaut. Par exemple, le code suivant dfinit la valeur du champ PubID dans l'enregistrement en cours :
rstExample!PubID=99

4. Objets DBEngine et Workspace


Tous les objets DAO sont drivs du type d'objet DBEngine. La proprit DefaultType de l'objet DBEngine permet de choisir le type d'espace de travail (Microsoft Jet ou ODBCDirect) cr lors des appels de mthode CreateWorkspace ultrieurs. Cette proprit par dfaut peut tre modifie par l'argument type de la mthode CreateWorkspace. Lorsque votre application cre un espace de travail, la bibliothque correspondante savoir le moteur de base de donnes Microsoft Jet ou ODBC est alors charge en mmoire. Vous pouvez, si ncessaire, ouvrir des objets Workspace supplmentaires. chaque objet Workspace est associ un ID utilisateur et un mot de passe.

Page 41 sur 41

Institut Agronomique et Vtrinaire Hassan II


Hirarchie (DAO, Data Access Object) DBEngine

M. LAHLOU

Workspaces

Workspace

Databases

Database

Tabledefs

Querydefs

Recordsets

Relations

Containers

TableDef

QueryDef

Recordset

Relation

Container

Fields

Parameters

Fields

Fields

Documents

Field Indexes

Parameter Fields

Field

Field

Document

Index

Field

Fields

Field Users

User

Groups

Group Groups

Group

Users

User

Collection Objet Page 42 sur 42

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

B. Utilisation de l'espace de travail Microsoft Jet 1. Ouverture d'une base de donnes


Pour ouvrir une base de donnes, il suffit d'ouvrir un objet Database ou d'en crer un nouveau. Cet objet peut reprsenter une base de donnes Microsoft Jet (fichier .mdb), une base de donnes ISAM (Paradox, par exemple) ou une base de donnes ODBC connecte via le moteur de base de donnes Microsoft Jet (galement appele "base de donnes ODBC connecte par Microsoft Jet").

2. Langage de dfinition de donnes


Vous pouvez utiliser des variables objet et d'autres fonctionnalits de DDL pour modifier la structure de votre base de donnes. Le code suivant permet par exemple d'ajouter un nouvel objet Field une table :
Dim dbs As Database, tdf As TableDef, fld As Field Set dbs = OpenDatabase("Biblio.mdb") ' Ouvre une base de donnes. Set tdf = dbs.TableDefs("Authors") ' Ouvre un objet TableDef. Set fld = tdf.CreateField("Address", dbText, 20) ' Cre un champ. tdf.Fields.Append fld ' Ajoute le champ la collection Fields de l'objet TableDef

Le code ci-dessus cre une nouvelle variable objet correspondant un objet Field et l'ajoute un objet TableDef par le biais de la mthode Append. Un objet TableDef contient la dfinition d'une table. La table comporte donc maintenant un champ Address permettant la saisie de donnes. Vous pouvez crer des tables et des index de manire similaire.

3. Manipulation de donnes
La bibliothque DAO contient un ensemble d'outils de manipulation de donnes trs performants. Vous pouvez crer un objet Recordset pour interroger facilement une base de donnes et manipuler les jeux de rsultats renvoys. La mthode OpenRecordset accepte comme argument de source de donnes une chane SQL ou un nom d'objet QueryDef (requte stocke). Vous pouvez galement l'ouvrir depuis un objet QueryDef ou TableDef, utilisant ce dernier comme source de donnes. L'objet Recordset obtenu possde un ensemble de proprits et de mthodes d'une extrme richesse permettant de consulter et de modifier les donnes. Il existe quatre types d'objet Recordset : Table, Feuille de donnes dynamique (Dynaset), En avant seulement ( Forward-only) et Instantan(Snapshot).

4. Transactions
Tous les objets Database ouverts sur un objet Workspace ont la mme porte de transaction. En d'autres termes, lorsque vous appliquez la mthode BeginTrans un objet Workspace, elle affecte toutes les bases de donnes ouvertes au sein de l'objet Workspace. Il en est de mme lorsque vous appliquez la mthode CommitTrans l'objet Workspace.

5. Duplication
La duplication de base de donnes permet de crer et d'entretenir des duplicatas d'une base de donnes Microsoft Jet matre, en utilisant la mthode Synchronize pour mettre jour rgulirement tout ou partie des duplicatas, ou pour copier les nouvelles donnes d'un duplicata vers un autre. Vous pouvez galement limiter la mise jour certains enregistrements grce la proprit ReplicaFilter, puis synchroniser ces derniers avec la mthode PopulatePartial.

6. Scurit
Vous pouvez limiter l'accs une ou plusieurs bases de donnes .mdb ou aux tables de ces dernires l'aide des fonctions de scurit dfinies et gres par le moteur de base de donnes Microsoft Jet. Dans votre code, vous pouvez dfinir des objets Group et User pour fixer objet par objet la porte et le niveau des autorisations de chaque utilisateur. Vous pouvez par exemple accorder un utilisateur un accs en lecture seule une table et un accs intgral une autre. Page 43 sur 43

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

C. Rfrence des objets et collections d'accs aux donnes


Les collections et objets d'accs aux donnes (DAO) constituent un cadre permettant d'crire des routines de cration et de manipulation de composantes de votre SGBD. Les objets et les collections comportent des proprits dcrivant les caractristiques des composantes de base de donnes et des mthodes utilises pour les manipuler. Ces objets et collections constituent un modle hirarchis de la structure de votre base de donnes, structure contrlable par programmation. Les objets et les collections comportent diffrents types de relations de limitation : les objets contiennent zro, une ou plusieurs collections, de types diffrents, et les collections contiennent zro, un ou plusieurs objets, du mme type. Bien que ces objets et collections soient des entits similaires, cette nuance permet de diffrencier les deux types de relations. Dans le tableau suivant, le type de collection mentionn dans la premire colonne contient les objets dont le type est indiqu dans la deuxime. La troisime colonne contient une description du contenu des types d'objet. Collection Containers Databases None Documents Errors Fields Groups Indexes Parameters Properties QueryDefs Recordsets Relations TableDefs Users Workspaces Objet Container Database DBEngine Document Error Field Group Index Parameter Property QueryDef Recordset Relation TableDef User Workspace Description Stockage d'informations sur un type d'objet prdfini Base de donnes ouverte Moteur de base de donnes Microsoft Jet Informations sur un objet prdfini enregistr Informations sur toute erreur associe l'objet Colonne appartenant une table, une requte, un index, une relation ou un jeu d'enregistrements Groupe de comptes d'utilisateur Agencement prdfini et unicit des valeurs d'une table Paramtre de requte Paramtre Proprit intgre ou dfinie par l'utilisateur Dfinition de requte enregistre Enregistrements d'une table de base ou d'une requte Relation entre champs de tables et entre requtes Dfinition de table enregistre Compte d'utilisateur Session du moteur de base de donnes Microsoft Jet

D. DBEngine
L'objet DBEngine est l'objet de niveau suprieur du modle objet DAO. L'objet DBEngine contient et contrle tous les objets de la hirarchie d'objets DAO. Il est impossible de crer des objets DBEngine supplmentaires. L'objet DBEngine n'appartient aucune collection. Avec tout type de base de donnes ou de connexion, vous pouvez : utiliser la proprit Version pour rcuprer le numro de version DAO ; utiliser les proprits DefaultPassword et DefaultUser pour dfinir l'identification et les mots de passe utilisateur pour l'objet Workspace par dfaut ; utiliser la mthode CreateWorkspace pour crer un objet Workspace ; vous pouvez utiliser des arguments facultatifs pour infirmer le paramtrage des proprits DefaultType, DefaultPassword et DefaultUser ; utiliser la mthode OpenDatabase pour ouvrir une base de donnes dans l'objet Workspace par dfaut, et utiliser les mthodes BeginTrans, Commit et Rollback pour contrler les transactions dans cet objet Workspace ; utiliser la collection Workspaces pour faire rfrence des objets Workspace spcifiques ; utiliser la collection Errors pour obtenir des informations dtailles sur les erreurs d'accs aux donnes. Page 44 sur 44

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

D'autres proprits et mthodes sont disponibles, condition d'utiliser les objets DAO avec le moteur de base de donnes Microsoft Jet. Elles permettent de contrler le moteur de base de donnes Microsoft Jet, de manipuler ses proprits et d'excuter des oprations sur les objets temporaires n'appartenant pas des collections. Vous pouvez par exemple : utiliser la mthode CreateDatabase pour crer un objet Database Microsoft Jet ; utiliser la mthode Idle pour permettre au moteur de base de donnes Microsoft Jet de terminer les tches en attente ; utiliser les mthodes CompactDatabase et RepairDatabase pour grer les fichiers de base de donnes ; utiliser les proprits IniPath et SystemDB pour dfinir l'emplacement des informations Microsoft Jet de la base de registres de Windows et du fichier d'informations sur le groupe de travail Microsoft Jet, respectivement. La mthode SetOption permet modifier les paramtres de la base de registres concernant le moteur de base de donnes Microsoft Jet.

Pour faire rfrence une collection appartenant l'objet DBEngine, ou pour faire rfrence une mthode ou une proprit s'appliquant cet objet, utilisez la syntaxe suivante :
[DBEngine.][collection | method | property]

L'objet DBEngine contient les collections, mthodes et proprits suivantes : Collections Errors Properties Workspaces (Valeur par dfaut) Mthodes BeginTrans CommitTrans CompactDatabase CreateDatabase CreateWorkspace Idle OpenConnection OpenDatabase RegisterDatabase RepairDatabase Rollback SetOption Proprits DefaultPassword DefaultType DefaultUser IniPath LoginTimeout SystemDB Version

E. Workspace
Un objet Workspace dfinit une session de travail pour un utilisateur. Il contient des bases de donnes ouvertes et fournit les mcanismes ncessaires aux transactions simultanes et, dans les espaces de travail Microsoft Jet, la prise en charge d'un groupe de travail scuris. Il contrle galement l'utilisation du moteur de base de donnes Microsoft Jet ou de ODBCDirect pour accder des donnes externes. Un objet Workspace est un objet non permanent qui dfinit l'interaction de votre application avec les donnes en utilisant le moteur de base de donnes Microsoft Jet ou ODBCDirect. Utilisez l'objet Workspace pour grer la session en cours ou pour dmarrer une session supplmentaire. Dans le cadre d'une session, vous pouvez ouvrir plusieurs bases de donnes et plusieurs connexions, et grer des transactions. Vous pouvez par exemple : utiliser les proprits Name, UserName et Type pour tablir une session nomme. Cette session constitue un cadre dans lequel vous pouvez ouvrir plusieurs bases de donnes et effectuer une srie de transactions imbriques ; Page 45 sur 45

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

utiliser la mthode Close pour mettre fin une session ; utiliser la mthode OpenDatabase pour ouvrir une ou plusieurs bases de donnes existantes dans l'objet Workspace ; utiliser les mthodes BeginTrans, CommitTrans et Rollback pour grer le traitement des transactions imbriques l'intrieur d'un mme objet Workspace et utiliser plusieurs objets Workspace pour effectuer simultanment plusieurs transactions qui se chevauchent.

De plus, en utilisant une base de donnes Microsoft Jet, vous pouvez tablir une scurisation base sur les noms d'utilisateur et les mots de passe. Lorsque vous faites rfrence un objet Workspace, ou que vous l'utilisez pour la premire fois, vous crez automatiquement l'espace de travail par dfaut, DBEngine.Workspaces(0). Les valeurs des proprits Name et UserName de l'espace de travail par dfaut sont respectivement "#Default Workspace#" et "Admin". Si la scurit est active, la proprit UserName a pour valeur le nom de l'utilisateur connect. Lorsque vous utilisez des transactions, toutes les bases de donnes de l'objet Workspace indiqu sont affectes par ces transactions, mme si plusieurs objets Database sont ouverts dans l'objet Workspace. Par exemple, utilisez une mthode BeginTrans, mettez jour plusieurs enregistrements d'une base de donnes, puis supprimez des enregistrements dans une autre base de donnes. Si vous utilisez alors la mthode Rollback, les oprations de mise jour et de suppression sont annules et restaures. Vous pouvez crer des objets Workspace supplmentaires pour grer les transactions sparment pour chaque objet Database. Pour crer des objets Workspace, utilisez la mthode CreateWorkspace. Une fois un objet Workspace cr, vous pouvez l'ajouter la collection Workspaces si vous avez besoin d'y faire rfrence depuis cette collection. Vous pouvez utiliser un objet Workspace sans l'ajouter la collection Workspaces. Il vous faut cependant y faire rfrence par la variable objet que vous lui avez associe. Pour faire rfrence un objet Workspace dans une collection par son numro ordinal ou par sa proprit Name, utilisez l'une des syntaxes suivantes :
DBEngine.Workspaces(0) DBEngine.Workspaces("name") DBEngine.Workspaces![name]

Un objet Workspace contient les collections, mthodes et proprits suivantes : Collections Connections Databases (par dfaut) Groups Properties Users Mthodes BeginTrans Close CommitTrans CreateDatabase CreateGroup CreateUser OpenConnection OpenDatabase Rollback Une collection Workspaces apparat dans l'objet DBEngine et contient les mthodes et la proprit suivantes : Proprits DefaultCursorDriver IsolateODBCTrans LoginTimeout Name Type UserName

Page 46 sur 46

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

Mthodes Append Delete Refresh

Proprit Count

F. Database
Un objet Database reprsente une base de donnes ouverte. Utilisez l'objet Database, et les mthodes et proprits qui sont lui associes, pour manipuler une base de donnes ouverte. Dans toutes les bases de donnes, vous pouvez : utiliser la mthode Execute pour excuter une requte Action ; utiliser la proprit RecordsAffected pour dterminer le nombre d'enregistrements modifis par une requte Action ; utiliser la mthode OpenRecordset pour excuter une requte Slection et crer un objet Recordset ; utiliser la proprit Version pour connatre la version du moteur de base de donnes utilis pour crer la base de donnes.

Avec une base de donnes Microsoft Jet (fichier .mdb), vous pouvez galement utiliser d'autres mthodes, proprits et collections pour manipuler un objet Database, ainsi que pour crer ou modifier des tables, des requtes et des relations, ou obtenir des informations sur ces lments. Vous pouvez par exemple : utiliser les mthodes CreateTableDef et CreateRelation pour crer respectivement des tables et des mthodes ; utiliser la mthode CreateProperty pour dfinir de nouvelles proprits d'objet Database ; utiliser la mthode CreateQueryDef pour crer une dfinition de requte permanente ou temporaire ; utiliser les mthodes MakeReplica, Synchronize et PopulatePartial pour crer et synchroniser des duplicatas partiels ou intgrals de votre base de donnes ; dfinir la proprit CollatingOrder pour tablir l'ordre de tri alphabtique des champs de caractres dans diffrentes langues.

Utilisez la mthode CreateDatabase pour crer un objet Database permanent automatiquement ajout la collection Databases, ce qui permet de l'enregistrer sur le disque dur. Il n'est pas ncessaire de prciser l'objet DBEngine lorsque vous utilisez la mthode OpenDatabase. L'ouverture d'une base de donnes comportant des tables attaches n'tablit pas automatiquement des liaisons avec les fichiers externes ou les sources de donnes ODBC connectes par Microsoft Jet indiqus. Vous devez faire rfrence aux objets TableDef ou Field de la table ou ouvrir un objet Recordset. Si vous ne pouvez tablir de liaisons avec ces tables, une erreur rcuprable se produit. De mme, si le cas chant, vous n'avez pas d'autorisation d'accs la base de donnes, ou si cette dernire est ouverte en mode exclusif par un autre utilisateur, des erreurs rcuprables se produisent. Par ailleurs, vous pouvez utiliser la mthode OpenDatabase pour ouvrir directement une base de donnes externe (de type FoxPro, dBASE ou Paradox), au lieu d'ouvrir une base de donnes Microsoft Jet comportant des tables attache cette base externe. Lors de l'excution d'une procdure dclarant un objet Database, les objets Database locaux sont ferms en mme temps que tous les objets Recordset ouverts. Toutes les mises jour en attente sont perdues et toutes les transactions en attente sont rvoques, mais aucune erreur rcuprable ne se produit. Mettez fin explicitement toute transaction ou modification en attente et fermez les objets Recordset et Database avant de quitter des procdures dclarant localement ces variables objet. Lorsque vous appliquez une des mthodes de transaction (BeginTrans, CommitTrans ou Rollback) l'objet Workspace, les transactions s'appliquent toutes les bases de donnes ouvertes dans l'objet Page 47 sur 47

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

Workspace depuis lequel l'objet Database a t ouvert. Pour utiliser des transactions indpendantes, ouvrez au pralable un objet Workspace supplmentaire, puis un nouvel objet Database dans cet objet Workspace. Note Vous pouvez ouvrir plusieurs fois la mme source de donnes ou base de donnes, ce qui cre des noms en double dans la collection Databases. Il est conseill d'associer des variables objet aux objets Database et de leur faire rfrence par nom de variable. Un objet Database contient les collections, mthodes et proprits suivantes : Collections Containers Properties QueryDefs Recodsets Relations TableDefs (valeur par dfaut) Mthodes Close CreateProperty CreateQueryDef CreateRelation CreateTableDef Execute MakeReplica NewPassword OpenRecordset PopulatePartialSynchroniz e Proprits CollatingOrder Connect Connection DesignMasterID Name QueryTimeout RecordsAffected Replicable (dfini par l'utilisateur) ReplicaID Updatable V1xNullBehavior Version Une collection Databases apparat dans chaque objet Workspace, et contient la mthode et la proprit suivantes : Mthode Refresh Proprit Count

G. TableDef
Un objet TableDef reprsente la dfinition stocke d'une table de base ou d'une table lie. Pour manipuler une dfinition, utilisez un objet TableDef, ses mthodes et ses proprits. Vous pouvez par exemple : examiner la structure des champs et des index de toute table locale, lie ou externe d'une base de donnes ; utiliser les proprits Connect et SourceTableName pour dfinir ou renvoyer des informations sur les tables lies, et utiliser la mthode RefreshLink pour mettre jour les connexions aux tables attaches ; utiliser les proprits ValidationRule et ValidationText pour dfinir ou renvoyer les conditions de validation ; utiliser la mthode OpenRecordset pour crer un objet Recordset de type Table, Dynaset, Dynamique, Instantan ou En avant seulement, selon la dfinition de la table.

Pour les tables de base, la proprit RecordCount contient le nombre d'enregistrements de la table de base de donnes spcifie. Pour les tables attaches, la proprit RecordCount a toujours la valeur -1. Pour crer un objet TableDef, utilisez la mthode CreateTableDef. Pour ajouter un champ une table Page 48 sur 48

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

1. 2. 3.

Vrifiez que tous les objets Recordset bass sur la table sont ferms. Utilisez la mthode CreateField pour crer une variable objet Field et dfinir ses proprits. Utilisez la mthode Append pour ajouter l'objet Field la collection Fields de l'objet TableDef.

Vous pouvez supprimer un objet Field d'une collection TableDefs si aucun index ne lui est affect, mais les donnes du champ seront perdues. Pour crer une table prte accueillir de nouveaux enregistrements dans une base de donnes 1. 2. 3. 4. 5. Utilisez la mthode CreateTableDef pour crer un objet TableDef. Dfinissez ses proprits. Pour chacun des champs de la table, utilisez la mthode CreateField pour crer une variable objet Field et dfinissez ses proprits. Utilisez la mthode Append pour ajouter les champs la collection Fields de l'objet TableDef. Utilisez la mthode Append pour ajouter le nouvel objet TableDef la collection TableDefs de l'objet Database.

Une table attache est connecte la base de donnes par les proprits SourceTableName et Connect de l'objet TableDef. Pour attacher une table une base de donnes 1. 2. 3. Utilisez la mthode CreateTableDef pour crer un objet TableDef. Dfinissez ses proprits Connect et SourceTableName (et, facultativement, sa proprit Attributes). Utilisez la mthode Append pour l'ajouter la collection TableDefs d'un objet Database.

Pour faire rfrence un objet TableDef dans une collection par son numro ordinal ou par sa proprit Name, utilisez l'une des syntaxes suivantes :
TableDefs(0) TableDefs("name") TableDefs![name]

Un objet TableDef contient les collections, mthodes et proprits suivantes :

Page 49 sur 49

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

Collections Fields (Valeur par dfaut) Indexes Properties

Mthodes CreateField CreateIndex CreateProperty OpenRecordset RefreshLink

Proprits Attributes ConflictTable Connect DateCreated KeepLocal (dfinie par l'utilisateur) LastUpdated Name RecordCount Replicable (dfinie par l'utilisateur) ReplicaFilter SourceTableName Updatable ValidationRule ValidationText

Chaque objet Database d'une base de donnes Microsoft Jet contient une collection TableDefs, qui comporte les mthodes et la proprit suivantes : Mthodes Append Delete Refresh Proprit Count

H. Field
Un objet Field reprsente une colonne de donnes de mme type de donnes partageant un mme ensemble de proprits. Les collections Fields des objets Index, QueryDef, Relation et TableDef objets contiennent les dfinitions des champs que ces objets reprsentent. La collection Fields d'un objet Recordset reprsente les objets Field d'une ligne de donnes ou d'un enregistrement. Utilisez les objets Field d'un objet Recordset pour lire et dfinir les valeurs des champs de l'enregistrement en cours de l'objet Recordset. Les champs sont manipuls l'aide d'un objet Field et de ses mthodes et proprits. Vous pouvez par exemple : utiliser la proprit OrdinalPosition pour dfinir ou renvoyer l'ordre de prsentation de l'objet Field d'une collection Fields ; utiliser la proprit Value d'un champ d'un objet Recordset pour dfinir ou renvoyer les donnes stockes ; utiliser les mthodes AppendChunk et GetChunk et la proprit FieldSize pour rcuprer ou dfinir la valeur d'un champ OLE Object ou Memo d'un objet Recordset ; utiliser les proprits Type, Size et Attributes pour dterminer le type de donnes pouvant tre stockes dans le champ ; utiliser les proprits SourceField et SourceTable pour dterminer la source de donnes d'origine.

Page 50 sur 50

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

utiliser la proprit ForeignName pour dfinir ou renvoyer des informations sur un champ externe dans un objet Relation ; utiliser les proprits AllowZeroLength, DefaultValue, Required, ValidateOnSet, ValidationRule ou ValidationText pour dfinir ou renvoyer des conditions de validation ; appliquer la proprit DefaultValue d'un champ un objet TableDef pour dfinir la valeur par dfaut de ce champ lors de l'ajout de nouveaux enregistrements.

Pour crer un objet Field dans un objet Index, TableDef ou Relation, utilisez la mthode CreateField. Lorsque vous accdez un objet Field dans le cadre d'un objet Recordset, les donnes de l'enregistrement en cours apparaissent dans la proprit Value de l'objet Field. Pour manipuler les donnes dans l'objet Recordset, on ne fait gnralement pas rfrence directement la collection Fields ; il est conseill de faire rfrence indirectement la proprit Value de l'objet Field de la collection Fields de l'objet Recordset. Pour faire rfrence un objet Field dans une collection par son numro ordinal ou par la valeur de sa proprit Name, utilisez l'une des syntaxes suivantes :
Fields(0) Fields("name") Fields![name]

l'aide des mmes syntaxes, vous pouvez galement faire rfrence la proprit Value d'un objet Field cr et ajout une collection Fields. Le contexte de la rfrence de champ dtermine si vous faites rfrence l'objet Field ou la proprit Value de l'objet Field. Un objet Field contient la collection, les mthodes et les proprits suivantes : Collection Properties Mthodes Le tableau suivant dresse la liste de toutes les mthodes de l'objet Field. Le type d'objet dont la collection Fields contient l'objet Field dtermine les mthodes disponibles. Mthode AppendChunk CreateProperty GetChunk Index * QueryDef * * Recordset * Relation * TableDef *

Proprits Le tableau suivant dresse la liste de toutes les proprits de l'objet Field. Le type d'objet dont la collection Fields contient l'objet Field dtermine les proprits disponibles. Les proprits sont toutes en lecture seule dans le cas d'objets Field ajouts aux collections Fields d'objets Index, Relation et TableDef. Proprit AllowZeroLength Attributes CollatingOrder DataUpdatable DefaultValue FieldSize ForeignName Name OrdinalPosition Required Size SourceField SourceTable Index * * QueryDef * * * * * Recordset * * * * * * * * * * * * Relation TableDef ** * * **

* *

* * * * * *

* *

** ** * * * * Page 51 sur 51

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

Proprit Type ValidateOnSet ValidationRule ValidationText Value * **

Index *

QueryDef * * *

**

Recordset * ** * * **

Relation

TableDef * ** **

Lecture seule Lecture/criture

Remarques Gnralement, la proprit Value permet dextraire et de modifier les donnes dobjets Recordset. La proprit Value est la proprit par dfaut des objets Field, Parameter et Property. Ds lors, les lignes de code suivantes sont quivalentes (si lon considre que Champ1 correspond la premire position ordinale):
varX varX varX varX varX varX F$ varX varX = = = = = = = = = rstProduits!Champ1 rstProduits!Champ1.Value rstProduits(0) rstProduits(0).Value rstProduits("Champ1").Value rstProduits("Champ1") "Champ1" rstProduits(F$).Value rstProduits(F$)

Une collection Fields apparat dans chacun des objets TableDef, QueryDef, Recordset, Relation et Index, et contient les mthodes et la proprit suivantes : Mthodes Append Delete Refresh Index * * * Proprit Count Index * QueryDef * Recordset * Relation * TableDef * QueryDef Recordset Relation * * * TableDef * * *

I. Index
Les objets Index spcifient lordre daccs des enregistrements partir de tables de base de donnes et lacceptation ou non des doublons. Ces objets Index permettent aussi un accs efficace aux donnes. Dans le cadre des bases de donnes externes, les objets Index dcrivent les index crs pour les tables externes. Remarques Le moteur de base de donnes Microsoft Jet gre automatiquement tous les index de table d'origine. Les index sont mis jour chaque ajout, modification ou suppression denregistrements dans la table d'origine. Lorsque la base de donnes est cre, utilisez rgulirement la mthode CompactDatabase pour mettre jour les statistiques des index. Le moteur de base de donnes Jet utilise des index pour joindre des tables et crer des objets Recordset. Ces index dterminent lordre des enregistrements retourns par des objets Recordset de type Table, mais pas lordre dans lequel les enregistrements sont enregistrs dans la table d'origine ni lordre des enregistrements retourns partir de nimporte quel autre type de jeu denregistrements. Lors de laccs un objet Recordset de type Table, vous spcifiez lordre des enregistrements laide de la proprit Index de lobjet. Attribuez cette proprit la valeur de la proprit Name dun objet Index existant de la collection Indexes. Cette collection est contenue dans lobjet TableDef sous-jacent Page 52 sur 52

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

lobjet Recordset que vous remplissez. Par exemple, pour ordonner votre objet Recordset de type Table en fonction de lindex ZIP_INDEX, utilisez le code suivant:
Set dbsBiblio = Workspaces(0).OpenDatabase("Biblio.mdb") Set rstEditeurs = dbsBiblio.OpenRecordset("Editeurs", dbOpenTable) rstEditeurs.Index = "ZIP_INDEX"

Conseil Il nest pas obligatoire de crer des index pour une table, mais laccs un enregistrement spcifique ou le traitement de jointures concernant des tables volumineuses et non indexes peut exiger beaucoup de temps. Inversement, trop dindex peuvent ralentir les mises jour dans la base de donnes car chaque index de la table est modifi. La proprit Attributes de chaque objet Field de lindex dtermine lordre des enregistrements retourns et donc quelles techniques daccs utiliser pour cet index. Chaque objet Field de la collection Fields dun objet Index est un lment de lindex. Vous dfinissez un nouvel objet Index en paramtrant ses proprits avant de lajouter une collection, ce qui permet de lutiliser ultrieurement. Note Vous ne pouvez modifier la proprit Name dun objet Index existant que si True est attribu la proprit Updatable de lobjet TableDef correspondant. A laide dun objet Index et de ses proprits, vous pouvez: utiliser la proprit Required pour dterminer si les objets Field de lindex exigent des valeurs non Null, puis utiliser la proprit IgnoreNulls pour dterminer si les valeurs Null ont des entres dans lindex; utiliser les proprits Primary et Unique pour dterminer lordre et le caractre unique de lobjet Index.

Lorsque vous spcifiez une cl primaire pour une table, le moteur de base de donnes Jet la dfinit automatiquement comme index primaire. Un index primaire reprsente un ou plusieurs champs qui identifient de manire unique tous les enregistrements dune table suivant un ordre prdfini. tant donn que le champ de lindex primaire doit tre unique, le moteur de base de donnes Jet attribue automatiquement True la proprit Unique de lobjet Index primaire. Si lindex primaire comporte plusieurs champs, chacun dentre eux peut contenir des doublons, mais la combinaison des valeurs de tous les champs indexs doit tre unique. Un index primaire consiste en une cl pour la table et comporte toujours les mmes champs que la cl primaire. Important Assurez-vous que vos donnes respectent les attributs de votre nouvel index. Si votre index exige des valeurs uniques, veillez ce que des enregistrements de donnes existants ne contiennent pas de doublons. Sinon, le moteur de base de donnes Jet ne peut pas crer lindex, ce qui provoque une erreur rattrapable lorsque vous essayez dutiliser la mthode Append sur le nouvel index. Lorsque vous crez une relation qui applique lintgrit rfrentielle, le moteur de base de donnes Jet cre automatiquement un index en paramtrant la proprit Foreign en tant que cl externe de la table de rfrence. Une fois que vous avez cr une relation entre tables, le moteur de base de donnes Jet empche que les ajouts et les modifications dans la base de donnes violent cette relation. Si vous dfinissez la proprit Attributes de lobjet Relation de manire permettre les oprations de mise jour en cascade et de suppression en cascade, le moteur de base de donnes Jet excute automatiquement la mise jour ou la suppression denregistrements dans les tables relies. Pour crer un nouvel objet Index 1. 2. 3. 4. Par exemple: Utilisez la mthode CreateIndex sur lobjet TableDef. Utilisez la mthode CreateField sur lobjet Index pour crer un objet Field pour chaque champ (colonne) inclure dans lobjet Index. Dfinissez les proprits ncessaires de lobjet Index. Ajoutez lobjet Field la collection Fields.

Page 53 sur 53

Institut Agronomique et Vtrinaire Hassan II


' Cre un nouvel objet Index. Set idxUnAutre = tbdEmploys.CreateIndex("UnAutre") Set fldNom = idxUnAutre.CreateField("Nom") idxUnAutre.Primary = True idxUnAutre.Required = True idxUnAutre.Fields.Append fldNom ' Enregistre la dfinition de l'objet Index en l'ajoutant ' la collection Indexes. tbdEmploys.Indexes.Append idxUnAutre

M. LAHLOU

Remarque La proprit Clustered est ignore dans les bases de donnes qui utilisent le moteur de base de donnes Jet, car celui-ci ne prend pas en charge les index de regroupement. Lobjet Index contient les collections, mthodes et proprits suivantes. Collections Fields (Valeur par dfaut) Properties Mthodes CreateField CreateProperty Proprits Clustered DistinctCount Foreign IgnoreNulls Name Primary Required Unique Une collection Indexes apparat dans chaque objet TableDef et contient les mthodes et proprits suivantes. Mthodes Append Delete Refresh Proprit Count

J. Recordset
Un objet Recordset reprsente les enregistrements d'une table de base ou les enregistrements rsultant de l'excution d'une requte. Les objets Recordset servent manipuler des donnes dans une base de donnes au niveau de l'enregistrement. Lorsque vous utilisez des objets DAO, vous manipulez les donnes presque uniquement l'aide d'objets Recordset. Tous les objets Recordset sont construits l'aide d'enregistrements (lignes) et de champs (colonnes). Il existe cinq types d'objets Recordset : Objet Recordset de type Table reprsente une table de base dans le code. Vous pouvez l'utiliser pour ajouter, modifier ou supprimer des enregistrements dans une table de base de donnes spcifique. Objet Recordset de type Feuille de rponses dynamique (Dynaset) rsultat d'une requte qui peut comprendre des enregistrements pouvant tre mis jour. Un objet Recordset de type Feuille de rponses dynamique (Dynaset) est un ensemble dynamique d'enregistrements que vous pouvez utiliser pour ajouter, modifier ou supprimer des enregistrements dans une ou plusieurs tables de base de donnes sous-jacentes. Un objet Recordset de type Feuille de rponses dynamique (Dynaset) peut contenir des champs provenant d'une ou plusieurs tables d'une base de donnes. Objet Recordset de type Instantan copie statique d'un jeu d'enregistrements que vous pouvez utiliser pour rechercher des donnes ou gnrer des tats. Un objet Recordset de type Instantan peut contenir des champs provenant d'une ou de plusieurs tables d'une base de donnes, mais il ne peut tre mis jour. Page 54 sur 54

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

Objet Recordset de type En avant seulement identique un type Instantan la diffrence qu'aucun curseur n'est fourni. Vous ne pouvez faire dfiler les enregistrements que vers l'avant. Les performances sont ainsi amliores dans les cas o vous ne devez consulter un jeu de rsultats qu'une seule fois. Objet Recordset de type Dynamique jeu de rsultats d'une requte provenant d'une ou de plusieurs tables de base dans lequel vous pouvez ajouter, modifier ou supprimer des enregistrements d'une requte renvoyant des lignes. De plus, les enregistrements ajouts, supprims ou modifis par d'autres utilisateurs dans les tables de base apparaissent galement dans l'objet Recordset.

Vous pouvez choisir le type d'objet Recordset que vous souhaitez crer l'aide de l'argument type de la mthode OpenRecordset. Si vous ne prcisez pas l'argument type, la bibliothque DAO tente de crer le type d'objet Recordset dot d'un maximum de fonctionnalits, en commenant par le type Table. Si ce type n'est pas disponible, la bibliothque DAO tente de crer un objet Recordset de type Feuille de rponses dynamique (dynaset), puis de type Instantan et enfin de type En avant seulement. Lorsque vous crez un objet Recordset l'aide d'un objet TableDef non li dans une espace de travail Microsoft Jet, des objets Recordset de type Table sont crs. Seuls des objets Recordset de type Feuille de rponses dynamique ou de type Instantan peuvent tre crs avec des tables lies ou des tables de bases de donnes Microsoft Jet connectes ODBC. Un nouvel objet Recordset est automatiquement ajout la collection Recordsets lorsque vous ouvrez l'objet, et est automatiquement supprim lorsque vous le fermez. Note Si vous utilisez des variables pour reprsenter un objet Recordset et l'objet Database contenant l'objet Recordset, vrifiez que les variables ont la mme porte ou dure de vie. Par exemple, si vous dclarez une variable publique reprsentant un objet Recordset, vrifiez que la variable reprsentant l'objet Database contenant l'objet Recordset est galement publique ou est dclare dans une procdure Sub ou Function l'aide du mot cl Static. Vous pouvez crer autant de variables objet Recordset que vous le voulez. Des objets Recordset distincts peuvent accder aux mmes tables, requtes et champs sans crer de conflit. La collection par dfaut d'un objet Recordset est la collection Fields, et la proprit par dfaut d'un objet Field est la proprit Value. Utilisez ces valeurs par dfaut pour simplifier votre code. Lorsque vous crez un objet Recordset, l'enregistrement en cours est positionn sur le premier enregistrement si des enregistrements existent. S'il n'existe aucun enregistrement, la proprit RecordCount prend la valeur 0 et la valeur respective des proprits BOF et EOF est True. Vous pouvez utiliser les mthodes MoveNext, MovePrevious, MoveFirst et MoveLast pour repositionner l'enregistrement en cours. Les objets Recordset de type En avant seulement ne prennent en charge que la mthode MoveNext. Lorsque vous utilisez les mthodes Move pour consulter chaque enregistrement (ou vous "promener" dans l'objet Recordset), vous pouvez utiliser les proprits BOF et EOF pour vrifier la fin ou le dbut de l'objet Recordset. Avec des objets Recordset de type Feuille de rponses dynamique (Dynaset) et de type Instantan, vous pouvez galement utiliser les mthodes Find, telles que FindFirst, pour rechercher un enregistrement spcifique en fonction de critres dtermins. Si l'enregistrement n'est pas trouv, la proprit NoMatch prend la valeur True. Pour les objets Recordset de type Table, vous pouvez balayer les enregistrements l'aide de la mthode Seek. La proprit Type indique le type d'objet Recordset cr, et la proprit Updatable indique si vous pouvez modifier les enregistrements de l'objet. Les informations sur la structure d'une table de base, telles que les noms et les types de donnes de chaque objet Field et de chaque objet Index, sont stockes dans un objet TableDef. Pour faire rfrence un objet Recordset dans une collection par son numro ordinal ou par sa proprit Name, utilisez l'une des syntaxes suivantes :

Page 55 sur 55

Institut Agronomique et Vtrinaire Hassan II


Recordsets(0) Recordsets("name") Recordsets![name]

M. LAHLOU

Note Vous pouvez ouvrir un objet Recordset plusieurs fois depuis la mme source de donnes ou base de donnes, en crant des noms dupliqus dans la collection Recordsets. Il est conseill d'attribuer les objets Recordset des variables objet et d'y faire rfrence par leur nom de variable. Un objet Recordset contient les collections, mthodes et proprits suivantes : Collections Fields (valeur par dfaut) Properties Proprits * : Lecture seule. ** : Lecturecriture. -: non disponible.
Dynaset ** * ** * ** ** * * ** * ** * * ** * * ** * * * * * Snapshot ** * ** * * * ** * * ** * * ** False * False * * ** * * ** * * ** * False * * * * * Renvoie le nombre d'enregistrements auxquels vous avez accd dans un objet Recordset ou TableDef. Cette proprit est en lecture seule. Renvoie une valeur qui indique si un objet Recordset gre la mthode Requery, laquelle excute nouveau la requte sur laquelle est bas l'objet Recordset. Renvoie ou dfinit l'ordre de tri des enregistrements contenus dans un objet Recordset. Renvoie une valeur qui indique si un objet gre l'enregistrement de plusieurs modifications pouvant tre ultrieurement rappeles (annules) ou valides (enregistres). Renvoie une valeur qui indique le type oprationnel ou le type de donnes d'un objet. Renvoie une valeur qui indique si un objet d'accs aux donnes peut tre modifi. Renvoie ou dfinit une valeur qui valide les donnes contenues dans un champ lorsque ce dernier est modifi ou ajout une table. Renvoie ou dfinit une valeur qui spcifie le texte du message affich par votre application lorsque la valeur d'un objet Field ne satisfait pas la rgle de validation spcifie par la valeur de la proprit ValidationRule. Renvoie une valeur indiquant si un enregistrement particulier a t trouv par la mthode Seek ou l'une des mthodes Find. Dfinit ou renvoie une valeur indiquant le type de verrouillage en cours au moment de la modification. Table * ** * * * * Renvoie une valeur qui indique l'tat de modification de l'enregistrement en cours. Renvoie une valeur indiquant si le pointeur d'enregistrement se trouve aprs le dernier enregistrement dans un objet Recordset. Renvoie ou dfinit une valeur dterminant les enregistrements inclure dans un objet Recordset ouvert par la suite. Renvoie ou dfinit une valeur qui indique le nom de l'objet Index en cours dans un objet Recordset de type Table. Renvoie une valeur indiquant si le pointeur d'enregistrement se trouve avant le premier enregistrement dans un objet Recordset. Renvoie ou dfinit un signet qui identifie de faon unique l'enregistrement en cours dans un objet Recordset ou dfinit l'enregistrement en cours d'un objet Recordset comme signet valide. Renvoie une valeur qui indique si un objet Recordset gre les signets que vous pouvez affecter en utilisant la proprit Bookmark. Remarque Proprit AbsolutePosition BOF Bookmark Bookmarkable CacheSize CacheStart DateCreated EditMode EOF Filter Index LastModified LastUpdated LockEdits Name NoMatch PercentPosition RecordCount Restartable Sort Transactions Type Updatable ValidationRule ValidationText

Mthodes

Page 56 sur 56

Institut Agronomique et Vtrinaire Hassan II


Mthode AddNew CancelUpdate Clone Close CopyQueryDef Delete Edit FindFirst, FindLast, FindNext, FindPrevious GetRows Move MoveFirst, MoveLast, MoveNext, MovePrevious OpenRecordset Requery Seek Update * Dynaset * * * * * * * * * * * * * * Snapshot Table * * * * Remarque

M. LAHLOU

Cre un nouvel enregistrement pour un objet Recordset de type Table ou Dynaset. La mthode AddNew peut galement tre utilise avec les objets obsoltes Dynaset et Table. Annule les mises jour en attente pour l'objet Recordset reprsent par l'espace rserv objet. Cre un objet Recordset dupliqu qui fait rfrence l'objet d'origine. Ferme un objet d'accs aux donnes ouvert. Renvoie un objet QueryDef qui est une copie de l'objet QueryDef utilis pour crer l'objet Recordset reprsent par l'espace rserv objet. Supprime l'enregistrement en cours dans un objet Recordset de type Dynaset ou Table ouvert. Copie l'enregistrement en cours dans un objet Recordset de type Dynaset ou Table et le place dans le tampon de copie en vue de sa modification ultrieure. Recherche, dans un objet Recordset de type Dynaset ou de type Snapshot, le premier enregistrement, le dernier, le suivant ou le prcdent qui rpond aux critres spcifis et le transforme en enregistrement en cours.

* * *

* * *

* * *

Extrait plusieurs ranges d'un objet Recordset et les place dans un tableau. Dplace la position de l'enregistrement en cours au sein d'un objet Recordset. Passe au premier enregistrement, au dernier, au suivant ou au prcdent dans un objet Recordset spcifi et le transforme en enregistrement en cours.

* *

* *

Cre un nouvel objet Recordset et l'ajoute la collection Recordsets. Met jour les donnes contenues dans un objet Recordset en excutant de nouveau la requte sur laquelle l'objet est fond.

* *

Recherche, dans un objet Recordset de type Table index, l'enregistrement qui rpond aux critres spcifis pour l'index en cours et le transforme en enregistrement en cours. Enregistre le contenu du tampon de copie dans un objet Recordset spcifi de type Dynaset ou Table.

Une collection Recordsets apparat dans chaque objet Connection et Database, et contient la mthode et la proprit suivantes : Mthode Refresh Proprit Count

IX.

Macros
A. Qu'est-ce qu'une macro ?

Une macro comporte une ou plusieurs actions effectuant chacune une opration particulire, telle l'ouverture d'un formulaire ou l'impression d'un tat. Les macros permettent d'automatiser les tches habituelles. Vous pouvez, par exemple, excuter une macro qui imprime un tat lorsqu'un utilisateur clique sur un bouton de commande. Une macro peut se prsenter sous forme de macro unique compose d'une srie d'actions, ou sous forme de groupe de macros. Vous pouvez galement utiliser une expression conditionnelle pour dterminer si, dans certaines circonstances particulires, une action est effectue lorsqu'une macro s'excute.

B. Srie d'actions
La macro qui suit se compose d'une srie d'actions. Microsoft Access effectue ces actions chaque fois que la macro s'excute. Pour excuter cette macro, vous devez faire rfrence au nom de macro Consulter produits.

C. Groupe de macros
Si vous utilisez un grand nombre de macros, regroupez les macros lies dans des groupes de macros pour faciliter la gestion de votre base de donnes. Pour afficher les noms des macros d'un groupe de macros, cliquez sur Nom de macro dans le menu Affichage de la fentre Macro.

Page 57 sur 57

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

Le nom qui apparat dans la colonne Nom de macro identifie chaque macro. Lorsque vous excutez une macro dans un groupe de macros, Microsoft Access effectue l'action indique dans la colonne action ainsi que toutes les actions suivantes pour lesquelles la colonne Nom de macro est vide. Pour excuter une macro contenue dans un groupe de macros, vous devez indiquer le nom du groupe de macros suivi d'un point, puis le nom de la macro.

D. Actions conditionnelles
Pour afficher la colonne Condition, cliquez sur Conditions dans le menu Affichage de la fentre Macro. La macro ci-dessous n'excute les actions BoteMsg et ArrtMacro que lorsque l'expression contenue dans la colonne Condition est vraie (lorsqu'une valeur de type Null se trouve dans le champ CodeFournisseur). Le tableau suivant regroupe les actions en catgories, en fonction de leur utilisation. Catgorie Description Action Restreindre les donnes AppliquerFiltre (ApplyFilter) TrouverSuivant (FindNext), Donnes dans les TrouverEnregistrement (FindRecord), formulaires et les tats AtteindreContrle (GoToControl), Se dplacer dans les donnes AtteindrePage (GoToPage), AtteindreEnregistrement (GoToRecord) Excuter une commande ExcuterElmentMenu (DoMenuItem) OuvrirRequte (OpenQuery), ExcuterCode Excuter une macro, une procdure ou (RunCode), ExcuterMacro (RunMacro), une requte ExcuterSQL (RunSQL) Excution Excuter une autre application ExcuterApplication (RunApp) AnnulerEvnement (CancelEvent), Quitter Arrter l'excution (Quit), ArrtToutesMacros (StopAllMacros), ArrtMacro (StopMacro) Envoyer des objets Microsoft Access CopierVers (OutputTo), EnvoyerSendObject d'autres applications Importer/exporter Transfrer des donnes entre TransfrerBase (TransferDatabase), Microsoft Access et d'autres formats TransfrerFeuilleCalcul (TransferSpreadsheet), de donnes TransfrerTexte (TransferText) CopierObjet (CopyObject), Renommer Copier ou renommer un objet (Rename) Supprimer un objet SupprimerObjet (DeleteObject) Agrandir (Maximize), Rduire (Minimize), Dplacer ou redimensionner une DplacerDimensionner (MoveSize), Restaurer fentre (Restore) Fermer (Close), OuvrirFormulaire (OpenForm), Ouvrir ou fermer un objet base de OuvrirModule (OpenModule), OuvrirRequte donnes (OpenQuery), OuvrirEtat (OpenReport), Manipulation d'objets OuvrirTable (OpenTable) OuvrirFormulaire (OpenForm), OuvrirRequte Imprimer un objet base de donnes (OpenQuery), OuvrirEtat (OpenReport), Imprimer (Print) Slectionner un objet base de donnes SlectionnerObjet (SelectObject) Dfinir la valeur d'un champ, d'un DfinirValeur (SetValue) contrle ou d'une proprit RedessinerObjet (RepaintObject), Actualiser Mettre jour les donnes ou l'cran (Requery), AfficherTousEnreg (ShowAllRecords) Crer une barre de menu Divers AjouterMenu (AddMenu) personnalise pour un formulaire Echo, Sablier (Hourglass), BoteMessage Afficher des informations l'cran (MsgBox), Avertissements (SetWarnings) Page 58 sur 58

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

Catgorie

Description Gnrer des frappes de touches Afficher ou masquer la barre d'outils mettre une tonalit

Action EnvoiTouches (SendKeys) AfficherBarreOutils (ShowToolbar) Bip (Beep)

X.

Access Basic
A. Prsentation
Acces Basic est le langage de programmation de Microsoft Access. Il sutilise de ma mme faon que les macros, pour lier des objets dans une application de faon crer un systme cohrant. Il est toutefois plus puissant et permet un meilleur contrle des applications que les macros utilises sparmnt. Dans Acces Basic, lcriture de code se fait par unit appeles procdures. Une procdure comporte une srie dinstructions Access Basic servant excuter une opration ou calculer une valeur. Un module est un ensemble de dclarations et procdures associes pour former une unit.

Il existe deux principaux types de modules : les modules de classe et les modules standard. Chacune des procdures contenues dans un module peut tre une procdure Function ou une procdure Sub.

1. Modules de classe
Les modules de formulaire et les modules d'tat sont des modules de classe associs un formulaire ou un tat spcifique. Les modules de formulaire et d'tat contiennent souvent des procdures vnementielles qui s'excutent en rponse un vnement se produisant dans le formulaire ou l'tat. Vous pouvez utiliser des procdures vnementielles pour contrler le comportement de vos formulaires et tats, et leur rponse aux actions de l'utilisateur, telles que clic de souris ou slection d'un bouton de commande.

Page 59 sur 59

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

Lorsque vous crez la premire procdure vnementielle d'un formulaire ou d'un tat, Microsoft Access lui associe automatiquement un module de formulaire ou d'tat. Pour afficher le module d'un formulaire ou d'un tat, cliquez sur Code dans la barre d'outils en mode Cration de formulaire ou d'tat.

Les procdures contenues dans vos modules de formulaire et d'tat peuvent appeler des procdures que vous avez ajoutes aux modules standard. Dans Microsoft Access 95, les modules de classe n'existent qu'en association avec un formulaire ou tat. Dans Microsoft Access 97, ils peuvent aussi exister indpendamment d'un formulaire ou d'un tat. Vous trouverez une liste de ce type de modules de classe dans l'onglet Modules de la fentre Base de donnes. Vous pouvez utiliser un module de classe de l'onglet Modules pour crer une dfinition pour un objet personnalis. Pour obtenir plus de prcisions sur la programmation l'aide de ces modules de classe, cliquez sur .

2. Modules standard
Les modules standard contiennent des procdures gnrales qui ne sont associes aucun autre objet et des procdures frquemment utilises qui peuvent tre excutes en tout point de votre base de donnes.

Vous pouvez afficher la liste des modules standard de votre base de donnes en cliquant sur l'onglet Modules dans la fentre Base de donnes. Les modules de formulaire, d'tat et standard sont galement rpertoris dans l'Explorateur d'objets.

B. Dans quel cas utiliser Access Basic


Automatiser certaines taches. Crer des fonctions personnalises. Masquer les messages d'erreur. Crer et manipuler des objets. Excuter des actions de niveau systme (lancement d'une application, initialisation d'une conversation DDE, appel de fonctions dans une DLL Windows, etc.) Manipuler les enregistrements indpendamment les uns des autres. Page 60 sur 60

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

Passer des arguments dans votre code.

C. Instructions 1. Vue densemble


Access inclut Visual Basic pour applications, qui est le mme langage que celui utilis par plusieurs applications Microsoft Office, dont Microsoft Excel et Microsoft Project. Voici certaines caractristiques du langage : Contrler le flux If...Then...Else : permet d'excuter une instruction spcifique ou un bloc d'instructions, selon la valeur d'une condition.
If Pop > 0 And GNP > 0 Then Income = GNP / PopElse Income = 0 End If

Select case...Case...End Select : sutilise lors de la comparaison d'une expression plusieurs valeurs diffrentes.
Nombre = 8 Select Case Nombre Case 1 To 5 ' Nombre compris entre 1 et 5. Debug.Print "Entre 1 et 5" Case 6, 7, 8 ' Nombre compris entre 6 et 8. Debug.Print "Entre 6 et 8" Case Is > 8 And Nombre < 11 ' Nombre compris entre 9 et 10. Debug.Print "Suprieur 8" Case Else ' Autres valeurs. Debug.Print "Non compris entre 1 et 10" End Select

Boucles Do While Loop : permettent d'excuter un bloc d'instructions un nombre de fois indfini, tant qu'une condition a la valeur True ou jusqu' ce qu'elle prenne la valeur True.
Do While I <= 50 Print I I = I + 1 Loop

For To Next : permettent de rpter un bloc d'instructions un certain nombre de fois.


For Mots = 10 To 1 Step -1 ' Dfinit 10 rptitions. For Caractre = 0 To 9 ' Dfinit 10 rptitions. MaChane = MaChane & Caractre Next Caractre ' Incrmente le compteur. MaChane = MaChane & " " ' Ajoute un espace. Next Mots

For Each...Next : rptent un bloc d'instructions pour chaque objet d'une collection ou pour chaque lment d'un tableau.
Sub CloseForms() For Each frm In Application.Forms If frm.Caption <> Screen.ActiveForm.Caption Then frm.Close Next End Sub

Dim TestArray(10) As Integer, I As Variant For Each I In TestArray TestArray(I) = I Next I

Onze types de donnes Page 61 sur 61

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

Le tableau suivant montre les types de donnes fondamentaux et donne pour chacun d'eux la taille d'enregistrement et la plage de valeurs correspondantes.
Type de donnes Taille d'enregistrement Plage

Byte Boolean Integer Long (entier long) Single (valeur virgule flottante en simple prcision) Double (valeur virgule flottante en double prcision) Currency (entier l'chelle) Date Object String (longueur variable) String (longueur fixe) Variant (avec nombres) Variant (avec caractres) Dfini par l'utilisateur (en utilisant Type)

0 255 True ou False. -32 768 32 767. -2 147 483 648 2 147 483 647. -3,402823E38 -1,401298E-45 pour les valeurs ngatives; 1,401298E-45 3,402823E38 pour les valeurs positives. 8 octets -1,79769313486232E308 -4,94065645841247E-324 pour les valeurs ngatives; 4,94065645841247E-324 1,79769313486232E308 pour les valeurs positives. 8 octets -922 337 203 685 477,5808 922 337 203 685 477,5807. 8 octets 1er janvier 100 au 31 dcembre 9999. 4 octets Toute rfrence des donnes de type Object. 10 octets + 0 environ 2 milliards (environ 65 400 pour Microsoft longueur de chane Windows version 3.11 ou antrieure). Longueur de 1 environ 2 milliards (environ 65 400 pour Microsoft chane Windows version 3.11 ou antrieure). 16 octets Toute valeur numrique jusqu' l'tendue d'un Double. 22 octets + Mme tendue que pour un String de longueur variable. longueur de chane Nombre requis par L'tendue de chaque lment est la mme que celle de son lments type de donnes.

1 octet 2 octets 2 octets 4 octets 4 octets

Remarque Quel que soit le type de donnes, les tableaux ncessitent 20 octets de mmoire, auxquels viennent s'ajouter quatre octets pour chaque dimension et le nombre d'octets occups par les donnes proprement dites. L'espace occup en mmoire par les donnes peut tre calcul en multipliant le nombre d'lments par la taille de chacun d'eux. Par exemple, les donnes stockes dans un tableau unidimensionnel constitu de quatre lments de type Integer de deux octets chacun occupent huit octets. Ajouts aux 24 octets d'espace mmoire de base, ces huit octets de donnes portent le total 32 octets de mmoire requis. De nombreuses fonctions mathmatiques, de chane, de date, etc. Fonctions mathmatiques Abs: Renvoie la valeur absolue d'un nombre. Atn: Renvoie l'arctangente d'un nombre. Cos: Renvoie le cosinus d'un angle. Exp: Renvoie e (la base des logarithmes npriens) lev une puissance. Fix: Renvoie la partie entire d'un nombre. Int: Renvoie la partie entire d'un nombre. Log: Renvoie le logarithme nprien d'un nombre. Rnd: Renvoie un nombre alatoire. Sgn: Renvoie un entier indiquant le signe d'un nombre. Sin: Renvoie le sinus d'un angle. Sqr: Renvoie la racine carre d'un nombre. Tan: Renvoie la tangente d'un angle. Fonctions de chanes Length: renvoie le nombre de caractres d'une chane de caractres. LowerCase: imprime la chane de caractres ou la valeur texte du champ de donnes entirement en minuscules. NumericText: test si le contenu d'un champ texte est un nombre. ReplicateString: Imprime une chane x, n fois. ToNumber: convertit une chane de caractres en nombre. ToText: convertit un nombre en chane de caractres. Page 62 sur 62

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

ToWords: convertit la valeur d'un champ numrique ou montaire ou le rsultat d'un calcul numrique en lettres afin de pouvoir l'utiliser comme du texte. La fonction traite le nombre comme une entit plutt que comme un ensemble de chiffres individuels. Ainsi, 123 est trait comme le nombre cent vingt-trois et non comme les chiffres un, deux et trois. TrimLeft: supprime tous les espaces de gauche dans un champ texte ou dans un champ de donnes justifi droite dans la base de donnes. TrimRight: supprime tous les espaces de droite dans un champ texte ou dans un champ de donnes justifi gauche dans la base de donnes. UpperCase: imprime la chane de caractres sous forme de valeur texte dans le champ de donnes en majuscules. Fonctions dates Date: renvoie une date partir des chiffres entrs pour le jour, le mois et l'anne. Day: extrait le jour d'une date et renvoie un nombre. DayOfWeek: extrait le numro du jour dans une date, dtermine quel jour de la semaine correspond le numro du jour et convertit le jour de la semaine en nombre (compris entre 1 et 7). Le premier jour de la semaine est le dimanche. Month: extrait le mois de la date et le convertit en nombre. Today: renvoie la date courante. Year: extrait l'anne de la date et renvoie un nombre.

2. Beep (VBA)
met un signal sonore par le haut-parleur de l'ordinateur.

3. Call (VBA)
Transfre le contrle une procdure Sub, une procdure Function ou une procdure de bibliothque de liaisons dynamiques (DLL).

4. Close (VBA)
Termine les oprations d'Entre/Sortie (E/S) dans un fichier ouvert l'aide de l'instruction Open.

5. Const (VBA)
Dclare des constantes utiliser la place de valeurs littrales. Syntaxe
[Public | Private] Const constname [As type] = expression

6. Declare (VBA)
Instruction utilise au niveau module pour dclarer des rfrences des procdures externes d'une bibliothque de liaisons dynamiques (DLL). Syntaxe 1
[Public | Private] Declare Sub name Lib "libname" [Alias "aliasname"] [([arglist])]

Syntaxe 2
[Public | Private] Declare Function name Lib "libname" [Alias "aliasname"] [([arglist])] [As type]

7. Dim (VBA)
Dclare des variables et attribue de l'espace de stockage. Syntaxe Page 63 sur 63

Institut Agronomique et Vtrinaire Hassan II


Dim [WithEvents] varname[([subscripts])] [As [New] type] [, [WithEvents] varname[([subscripts])] [As [New] type]] . . .

M. LAHLOU

La syntaxe de l'instruction Dim comprend les lments suivants : lment WithEvents Description Facultatif. Mot cl indiquant que l'argument varname est une variable objet utilise pour rpondre aux vnements dclenchs par un objet ActiveX. Valide uniquement dans des modules de classes. Vous pouvez dclarer autant de variables distinctes que vous le souhaitez l'aide du mot cl WithEvents, mais vous ne pouvez l'utiliser pour crer des tableaux. Les mots cls New et WithEvents ne peuvent tre utiliss ensemble. Nom de la variable. Respecte les conventions standard d'affectation de noms aux variables. Facultatif. Dimensions d'une variable tableau ; vous pouvez dclarer jusqu' 60 dimensions. La syntaxe de l'argument subscripts est la suivante : [lower To] upper [, [lower To] upper] . . . La limite infrieure d'un tableau qui n'est pas expressment fixe dans l'argument lower est dtermine par l'instruction Option Base. Cette limite a la valeur zro en l'absence d'instruction Option Base. Facultatif. Mot cl permettant la cration implicite d'un objet. Si vous utilisez le mot cl New lors de la dclaration de la variable objet, une nouvelle instance de l'objet est gnre lors de la premire rfrence, ce qui vite de dfinir la rfrence d'objet par le biais de l'instruction Set. Le mot cl New ne peut tre utilis pour dclarer des variables de type de donnes intrinsques et des instances d'objets dpendants. Il ne peut en outre tre utilis avec le mot cl WithEvents. Facultatif. Type de donnes de la variable ; elle peut tre de type Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal (non pris en charge actuellement), Date, String (pour les chanes de longueur variable), String * length (pour les chanes de longueur fixe), Object, Variant, un type dfini par l'utilisateur ou un type objet. Utilisez une locution As type distincte pour chaque variable que vous dclarez.

varname subscripts

New

Type

8. Do...Loop (VBA)
Rpte un bloc d'instructions aussi longtemps qu'une condition est vraie (True) ou jusqu' ce qu'une condition devienne vraie (True). Syntaxe
Do [{While | Until} condition] [instructions] [Exit Do] [instructions] Loop

Vous pouvez galement utiliser la syntaxe suivante :


Do [instructions] [Exit Do] [instructions] Loop [{While | Until} condition]

La syntaxe de l'instruction Do Loop comprend les lments suivants : lment condition Description Facultatif. Expression numrique ou expression de chane vraie (True) ou fausse (False). Si la valeur de condition est Null, elle est considre comme fausse (False). instructions Une ou plusieurs instructions rptes tant que condition est True, ou jusqu' ce qu'elle le devienne.

9. End (VBA)
Termine une procdure ou un bloc. Syntaxe
End End Function End If

Page 64 sur 64

Institut Agronomique et Vtrinaire Hassan II


End End End End End Property Select Sub Type With

M. LAHLOU

10. Exit (VBA)


Quitte un bloc DoLoop, For...Next, Function, Sub ou Property. Syntaxe
Exit Exit Exit Exit Exit Do For Function Property Sub

11. For Each...Next (VBA)


Rpte un groupe d'instructions pour chaque lment d'un tableau ou d'une collection. Syntaxe
For Each element In group [statements] [Exit For] [statements] Next [element]

12. For...Next (VBA)


Rpte un groupe d'instructions le nombre de fois indiqu. Syntaxe
For counter = start To end [Step step] [statements] [Exit For] [statements] Next [counter]

13. Function (VBA)


Dclare le nom, les arguments et le code formant le corps d'une procdure Function. Syntaxe
[Public | Private] [Static] Function name [(arglist)] [As type] [statements] [name = expression] [Exit Function] [statements] [name = expression] End Function

14. GoTo (VBA)


Effectue un branchement inconditionnel vers une ligne dtermine d'une procdure.

15. If...Then...Else (VBA)


Permet d'excuter conditionnellement des instructions en fonction du rsultat d'une expression. Syntaxe
If condition Then [statements] [Else elsestatements]

Vous pouvez galement utiliser la syntaxe suivante :


If condition Then [statements]

Page 65 sur 65

Institut Agronomique et Vtrinaire Hassan II


[ElseIf condition-n Then [elseifstatements] ... [Else [elsestatements]] End If

M. LAHLOU

16. On Error (VBA)


Valide une routine de gestion d'erreur et dfinit son emplacement au sein d'une procdure ; cette instruction permet galement d'invalider une routine de gestion d'erreur pralablement valide. Syntaxe
On Error GoTo line On Error Resume Next On Error GoTo 0

La syntaxe de l'instruction On Error peut prendre les formes suivantes : Instruction On Error GoTo line Description Valide la routine de gestion d'erreur commenant la ligne indique dans l'argument line. L'argument line peut tre une tiquette de ligne ou un numro de ligne. En cas d'erreur d'excution, le contrle est transmis au point indiqu dans l'argument line, ce qui valide le gestionnaire d'erreurs. La ligne indique dans l'argument line doit se trouver dans la mme procdure que l'instruction On Error ; sinon, une erreur se produit au moment de la compilation. Lorsqu'une erreur d'excution survient, le contrle est transmis l'instruction qui suit immdiatement celle o l'erreur s'est produite, et l'excution continue. Il est recommand d'utiliser cette formulation plutt que l'instruction On Error GoTo pour accder des objets. Invalide dans la procdure en cours tout gestionnaire d'erreurs valid.

On Error Resume Next

On Error GoTo 0 Remarques

En l'absence d'instruction On Error, toute erreur d'excution est fatale ; un message d'erreur apparat et l'excution s'arrte. Un gestionnaire d'erreurs est "valid" lorsqu'il a t dsign par une instruction On Error ; le gestionnaire d'erreurs "actif" est un gestionnaire valid qui traite une erreur. Si une erreur se produit alors qu'un gestionnaire d'erreurs est actif (c'est--dire entre la ligne o survient une erreur et une instruction Resume, Exit Sub, Exit Function ou Exit Property), le gestionnaire d'erreurs de la procdure en cours ne peut grer l'erreur. Le contrle revient la procdure appelante. Si la procdure appelante possde un gestionnaire d'erreurs valid, il est activ afin de grer l'erreur. Si le gestionnaire d'erreurs de la procdure appelante est galement actif, le contrle est restitu aux procdures appelantes antrieures jusqu' ce qu'un gestionnaire d'erreurs valid mais inactif soit trouv. Si aucun gestionnaire d'erreurs valid et inactif n'est trouv, l'erreur est fatale l'emplacement o elle s'est produite. Chaque fois que le gestionnaire d'erreurs repasse le contrle une procdure appelante, cette procdure devient la procdure en cours. Lorsqu'une erreur est gre par un gestionnaire d'erreurs dans n'importe quelle procdure, l'excution reprend dans la procdure en cours l'emplacement dsign par l'instruction Resume. Note : Une routine de gestion d'erreur n'est pas une procdure Sub ou Function. Il s'agit d'une section de code dsigne par une tiquette de ligne ou un numro de ligne. Les routines de gestion d'erreur utilisent la valeur de la proprit Number de l'objet Err pour dterminer la cause de l'erreur. La routine de gestion d'erreur doit tester ou sauvegarder les valeurs de la proprit pertinente de l'objet Err avant qu'une autre erreur ne se produise ou qu'une procdure susceptible de causer une erreur ne soit appele. Les valeurs de la proprit de l'objet Err ne refltent que l'erreur la plus rcente. Le message d'erreur associ Err.Number est contenu dans Err.Description. L'instruction On Error Resume Next permet de poursuivre l'excution partir de l'instruction qui suit immdiatement celle qui a caus l'erreur d'excution, ou qui suit immdiatement le dernier appel excut depuis la procdure contenant l'instruction On Error Resume Next. L'excution peut ainsi continuer en dpit d'une erreur d'excution. Vous pouvez placer la routine de gestion d'erreur au point Page 66 sur 66

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

o une erreur pourrait se produire, au lieu de transfrer le contrle vers un autre point de la procdure. Une instruction On Error Resume Next devient inactive lorsqu'une autre procdure est appele ; il est donc conseill de placer une instruction On Error Resume Next dans chaque routine ncessitant une gestion en ligne des erreurs survenues dans cette routine. Note : La construction On Error Resume Next est plus approprie que l'instruction On Error GoTo pour grer les erreurs gnres lors de l'accs des objets. La vrification de la variable Err aprs chaque interaction avec un objet permet de savoir quel objet votre code accdait lorsque l'erreur est survenue. Vous pouvez ainsi tre certain de l'objet qui a plac le numro d'erreur dans Err.Number et de celui qui a gnr l'erreur initiale (objet prcis dans Err.Source). L'instruction On Error GoTo 0 permet de dsactiver la gestion d'erreur dans la routine en cours. Cette instruction ne dclare pas la ligne 0 comme tant le dbut du programme de gestion d'erreur, mme si la procdure contient une ligne numro 0. En l'absence d'instruction On Error GoTo 0, le gestionnaire d'erreurs est automatiquement dsactiv lors de la sortie de procdure. Pour viter que le programme de gestion d'erreur ne s'excute en l'absence d'erreur, placez une instruction Exit Sub, Exit Function ou Exit Property immdiatement avant la routine de gestion d'erreur, comme l'illustre l'exemple suivant :
Sub InitializeMatrix(Var1, Var2, Var3, Var4) On Error GoTo ErrorHandler . . . Exit Sub ErrorHandler: . . . Resume Next End Sub

Note : Les erreurs systme se produisant au cours d'appels de bibliothques de liaisons dynamiques (DLL) ne gnrent pas d'exception et ne peuvent tre interceptes par Visual Basic. Lors de l'appel de fonctions de DLL, vous devez vrifier si chaque valeur renvoye indique un succs ou un chec (selon les spcifications de l'API) et, en cas d'chec, vrifier la valeur de la proprit LastDLLError de l'objet Err.

17. Option Base (VBA)


Instruction utilise au niveau module pour dclarer la limite infrieure par dfaut des indices d'un tableau. Syntaxe
Option Base {0 | 1}

18. Option Compare (VBA)


Instruction utilise au niveau module pour dclarer la mthode de comparaison par dfaut qu'il convient d'utiliser lors de la comparaison de chanes. Syntaxe
Option Compare {Binary | Text | Database}

Remarques Si elle est utilise, l'instruction Option Compare doit apparatre dans un module avant toute procdure. L'instruction Option Compare dfinit la mthode de comparaison de chanes (Binary, Text ou Database) pour un module. Si le module ne contient pas d'instruction Option Compare, la mthode de comparaison de texte par dfaut est Binary. L'instruction Option Compare Binary fournit des comparaisons de chanes bases sur un ordre de tri driv de la reprsentation binaire interne des caractres. Dans Microsoft Windows, l'ordre de tri est dtermin par la page de code. L'exemple suivant dcrit un ordre de tri binaire typique :
A < B < E < Z < a < b < e < z < < < < < <

Page 67 sur 67

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

L'instruction Option Compare Text fournit des comparaisons de chanes bases sur un ordre de tri qui ne distingue pas les majuscules des minuscules et qui est dtermin par les paramtres rgionaux de votre systme. Si les caractres ci-dessus sont tris l'aide de l'instruction Option Compare Text, l'ordre de tri de texte suivant est utilis :
(A=a) < ( =) < (B=b) < (E=e) < (=) < (Z=z) < (=)

L'instruction Option Compare Database ne peut tre utilise que dans Microsoft Access. Elle fournit des comparaisons de chanes bases sur l'ordre de tri dtermin par l'identificateur de paramtres rgionaux de la base de donnes dans laquelle la comparaison de chanes est effectue.

19. Option Explicit (VBA)


Instruction utilise au niveau module pour imposer la dclaration explicite de toutes les variables de ce module.

20. Option Private (VBA)


Lorsqu'elle est utilise dans des applications htes autorisant des rfrences dans plusieurs projets, l'instruction Option Private Module interdit au contenu d'un module d'tre rfrenc l'extrieur de son projet. Dans des applications htes qui n'autorisent pas ce type de rfrences, par exemple dans les versions autonomes de Visual Basic, l'instruction Option Private est sans effet.

21. ReDim (VBA)


Instruction utilise au niveau procdure pour rattribuer de l'espace de stockage aux variables de tableaux dynamiques. Syntaxe
ReDim [Preserve] varname(subscripts) [As type] [, varname(subscripts) [As type]] . . .

22. Rem (VBA)


Utilise pour inclure des remarques explicatives dans un programme.

23. Resume (VBA)


Reprend l'excution aprs la fin du traitement par une routine de gestion d'erreur. Syntaxe
Resume [0] Resume Next Resume line

La syntaxe de l'instruction Resume peut prendre l'une des formes suivantes : Instruction Resume Description Si l'erreur s'est produite dans la procdure contenant le gestionnaire d'erreurs, l'excution reprend partir de l'instruction qui a provoqu l'erreur. Si l'erreur s'est produite dans une procdure appele, l'excution reprend l'instruction ayant appel la procdure contenant la routine de gestion d'erreur. Si l'erreur s'est produite dans une procdure contenant le gestionnaire d'erreurs, l'excution reprend partir de l'instruction qui suit immdiatement celle qui a provoqu l'erreur. Si l'erreur s'est produite dans une procdure appele, l'excution reprend l'instruction qui suit immdiatement la dernire instruction ayant appel la procdure contenant la routine de gestion d'erreur (ou l'instruction On Error Resume Next). L'excution reprend la ligne indique dans l'argument line. L'argument line, qui correspond une tiquette de ligne ou un numro de ligne doit se trouver dans la mme procdure que le gestionnaire d'erreurs.

Resume Next

Resume line

Page 68 sur 68

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

24. SelectCase (VBA)


Excute un des blocs d'instructions indiqu, selon la valeur d'une expression. Syntaxe
Select Case testexpression [Case expressionlist-n [statements-n]] ... [Case Else [elsestatements]] End Select

La syntaxe de l'instruction Select Case comprend les lments suivants : lment testexpression expressionlist-n Description Toute expression numrique ou expression de chane. Si une instruction Case apparat. Liste dlimite dont les lments peuvent prendre l'une des formes suivantes : expression, expression To expression, Is comparisonoperator expression. Le mot cl To indique une plage de valeurs. Si vous utilisez To, la valeur la plus petite doit figurer avant To. Utilisez le mot cl Is avec les oprateurs de comparaison (sauf Is et Like) pour indiquer une plage de valeurs. S'il n'est pas indiqu, le mot cl Is est insr automatiquement. Facultatif. Une ou plusieurs instructions excutes si testexpression correspond l'un des lments de expressionlist-n. Facultatif. Une ou plusieurs instructions excutes si testexpression ne correspond aucun lment de la clause Case.

statements-n elsestatements

25. SendKeys (VBA)


Envoie une ou plusieurs touches la fentre active comme s'il s'agissait d'une saisie directe au clavier.

26. Stop (VBA)


Interrompt l'excution.

27. Sub (VBA)


Dclare le nom, les arguments et le code formant le corps d'une procdure Sub. Syntaxe
[Private | Public] [Static] Sub name [(arglist)] [statements] [Exit Sub] [statements] End Sub

28. While...Wend (VBA)


Excute une srie d'instructions dans une boucle aussi longtemps que la valeur dune condition est True. Syntaxe
While condition [statements] Wend

La syntaxe de l'instruction While...Wend comprend les lments suivants : lment condition statements Description Expression numrique ou expression de chane vraie (True) ou fausse (False). Si l'argument condition est de type Null, il est considr comme False. Facultatif. Une ou plusieurs instructions excutes tant que la valeur de la condition est True Page 69 sur 69

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

D. Oprateurs 1. Oprateurs arithmtiques


^ : puissance * : multiplication / : division relle \ : division entire Mod : modulo (reste dune division entire) + : addition - : soustraction

2. Oprateurs de comparaison
Permettent de comparer deux expressions. Syntaxe
rsultat = expression1 oprateurcomparaison expression2 rsultat = objet1 Is objet2 rsultat = chane Like motif

Les oprateurs de comparaison comprennent les lments suivants: lment rsultat expression oprateurcomparais on objet chane motif Notes Les oprateurs Is et Like ont des fonctionnalits de comparaison spcifiques qui les distinguent des oprateurs dcrits dans le tableau suivant. Ce tableau numre les oprateurs de comparaison et les conditions qui dterminent si rsultat a la valeur True, False ou Null: Oprateu Signification r < <= > >= = Infrieur True si expression1 < expression2 False si expression1 >= expression2 expression1 > expression2 expression1 <= expression2 expression1 < expression2 expression1 <> expression2 Null si expression1 ou expression2 = Null expression1 ou expression2 = Null expression1 ou expression2 = Null expression1 ou expression2 = Null expression1 ou expression2 = Null Page 70 sur 70 Description N'importe quelle variable numrique. N'importe quelle expression. N'importe quel oprateur de comparaison. N'importe quel nom d'objet. N'importe quelle expression de chane. N'importe quelle expression de chane ou plage de caractres.

Infrieur ou gal expression1 <= expression2 Suprieur expression1 > expression2

Suprieur ou gal expression1 >= expression2 Egal expression1 = expression2

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

<>

Diffrent de

expression1 <> expression2

expression1 = expression2

expression1 ou expression2 = Null

3. Oprateurs de concatnation
& et + : Permet la concatnation de chanes de deux expressions.

4. Oprateurs boolens
And : Permet d'effectuer une conjonction logique sur deux expressions. Eqv : Permet d'effectuer une quivalence logique sur deux expressions. Imp : Permet d'effectuer une implication logique sur deux expressions. Not : Permet de raliser une ngation logique sur une expression. Or : Permet d'effectuer une disjonction logique sur deux expressions. Xor : Permet d'effectuer une exclusion logique sur deux expressions.

E. vnements et proprits d'vnement 1. Qu'est-ce qu'un vnement ?


Un vnement est une action spcifique qui se produit dans ou en prsence d'un objet prcis. Microsoft Access est en mesure de rpondre plusieurs types d'vnements : clics de souris, modification de donnes, ouverture ou fermeture de formulaires, entre autres. Les vnements rsultent gnralement d'une action de l'utilisateur. L'utilisation d'une procdure vnementielle ou d'une macro vous permet d'ajouter votre propre rponse un vnement se produisant dans un formulaire, un tat ou un contrle. Supposez que vous souhaitiez qu'un formulaire Dtails produits s'ouvre lorsque vous cliquez sur le bouton de commande Dtails produits d'un formulaire Commandes. Les exemples qui suivent vous indiquent comment parvenir ce rsultat l'aide d'une procdure vnementielle ou d'une macro.

2. Rponse un vnement Clic (Click) l'aide d'une procdure vnementielle

Lorsque vous crez une procdure vnementielle pour un objet, Microsoft Access ajoute un modle de procdure vnementielle dsignant l'vnement et l'objet au module de formulaire ou au module d'tat. Il vous suffit alors d'ajouter le code qui rpond de la faon souhaite lorsque l'vnement se produit dans le formulaire ou l'tat.

Page 71 sur 71

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

3. Rponse un vnement Clic (Click) l'aide d'une macro


Pour qu'une macro s'excute en rponse un vnement, ouvrez la feuille des proprits du formulaire, de l'tat, ou du contrle. Retrouvez la proprit qui correspond l'vnement, et attribuez-lui le nom de la macro que vous souhaitez excuter.

La liste suivante regroupe les vnements par catgories, en fonction de leur utilisation.

4. vnements de type Clavier


Les vnements de type clavier surviennent lorsque vous tapez sur le clavier ou lorsque des frappes de touches sont envoyes l'aide de l'action EnvoiTouches ou de l'instruction SendKeys. vnement
ToucheActive (KeyPress)

Proprit d'vnement
SurToucheActive (OnKeyPress) (formulaires, contrles)

Survient
Lorsque vous appuyez sur une touche ou une combinaison de touches correspondant un code ANSI, puis relchez la ou les touches pendant qu'un contrle ou un formulaire a le focus. Un formulaire peut avoir le focus la seule condition que tous ses contrles visibles soient dsactivs ou qu'il ne contienne pas de contrles.Par exemple, vous pouvez utiliser l'vnement Touche active (KeyPress) pour rpondre aux touches frappes dans une zone de texte ou dans une zone de liste modifiable. Utilisez les vnements Touche appuye (KeyDown) et Touche relche (KeyUp) pour les touches non reconnues par l'vnement Touche active (KeyPress) telles que les touches de fonction ou de dplacement.Cet vnement se produit galement si l'utilisateur envoie une touche correspondant un code ANSI vers un formulaire ou un contrle en utilisant l'action EnvoiTouches dans une macro ou l'instruction SendKeys dans Visual Basic.Si vous attribuez la valeur Oui la proprit de formulaire Aperu des touches (KeyPreview), le formulaire reoit aussi tous les vnements Touche active (mme ceux pour les contrles) avant qu'ils ne surviennent pour les contrles.Si vous maintenez une touche enfonce, l'vnement Touche active se produit rptition. Lorsque vous appuyez sur une touche du clavier pendant qu'un contrle ou un formulaire a le focus. Un formulaire peut avoir le focus la seule condition que tous ses contrles visibles soient dsactivs ou qu'il ne contienne pas de contrles.L'vnement Touche appuye survient galement si vous envoyez une touche vers un formulaire ou un contrle en utilisant l'action EnvoiTouches dans une macro ou l'instruction SendKeys dans Visual Basic.Si vous attribuez la valeur Oui la proprit de formulaire Aperu des touches (KeyPreview), le formulaire reoit aussi tous les vnements Touche appuye (mme ceux pour les contrles) avant qu'ils ne surviennent pour les contrles.Si vous maintenez une touche enfonce, l'vnement Touche appuye se produit rptition.

ToucheAppuye (KeyDown)

SurToucheAppuye (OnKeyDown) (formulaires, contrles)

Page 72 sur 72

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

vnement
ToucheRelche (KeyUp)

Proprit d'vnement
SurToucheRelche (OnKeyUp) (formulaires, contrles)

Survient
Lorsque vous relchez une touche auparavant appuye pendant qu'un contrle ou un formulaire a le focus. L'objet qui dispose du focus reoit toutes les touches. Un formulaire peut avoir le focus la seule condition que tous ses contrles visibles soient dsactivs ou qu'il ne contienne pas de contrles.Cet vnement se produit galement si l'utilisateur envoie une touche vers un formulaire ou un contrle en utilisant l'action EnvoiTouches dans une macro ou l'instruction SendKeys dans Visual Basic.Si vous attribuez la valeur Oui la proprit de formulaire Aperu des touches (KeyPreview), le formulaire reoit aussi tous les vnements Touche relche (mme ceux pour les contrles) avant qu'ils ne surviennent pour les contrles.Si vous maintenez une touche enfonce, l'vnement Touche relche se produit aprs tous les vnements Touche appuye (KeyDown) et Touche active (KeyPress).

5. vnements de type Donnes


Les vnements de type Donnes se produisent lors de la cration, la suppression ou la modification de donnes dans un formulaire ou un contrle, ou lors du dplacement du focus d'un enregistrement un autre. vnement
AbsenceDansList e (NotInList) Activation (Current)

Proprit d'vnement

Survient

SurAbsenceDansLis Lorsque l'utilisateur entre dans une zone de liste modifiable une valeur ne figurant pas dans la liste. te (OnNotInList) (contrles) SurActivation (OnCurrent) (formulaires) Lorsque vous activez un enregistrement, ou lorsque vous actualisez une source de donnes d'un formulaire. Cet vnement survient lorsque vous ouvrez un formulaire pour la premire fois ou chaque fois que le focus quitte un enregistrement et se dplace vers une autre. Il survient galement lors de l'actualisation de la source des donnes d'un formulaire, par exemple, quand vous cliquez sur Supprimer le filtre/tri dans le menu Enregistrements ou utilisez l'action AfficherTousEnreg ou Actualiser. Aprs l'ajout d'un nouvel enregistrement la base de donnes.

AprsInsertion (AfterInsert) AprsMAJ (AfterUpdate)

AprsInsertion (AfterInsert) (formulaires) AprsMAJ (AfterUpdate) (formulaires, contrles) AprsSuppression (AfterDelConfirm) (formulaires) AvantInsertion (BeforeInsert) (formulaires) AvantMAJ (BeforeUpdate) (formulaires, contrles)

Aprs la mise jour des donnes modifies dans un contrle ou dans un enregistrement. Cet vnement survient lorsque le contrle ou l'enregistrement perd le focus ou lorsque vous cliquez sur Sauvegarder enregistrement dans le menu Enregistrements. Il se produit pour des enregistrements nouveaux et existants. Une fois que vous avez confirm la suppression des enregistrements et que ces enregistrements sont rellement supprims ou lorsque les suppressions sont annules. Lorsque vous tapez le premier caractre d'un nouvel enregistrement, mais avant l'ajout de l'enregistrement la base de donnes.
Avant la mise jour des donnes modifies dans un contrle ou un enregistrement. Cet vnement survient lorsque le contrle ou l'enregistrement perd le focus, ou lorsque vous cliquez sur Sauvegarder enregistrement dans le menu Enregistrements. Il se produit pour des enregistrements nouveaux et existants.

AprsSuppressio n (AfterDelConfirm) AvantInsertion (BeforeInsert) AvantMAJ (BeforeUpdate)

AvantSuppression AvantSuppression (BeforeDelConfir (BeforeDelConfirm) (formulaires) m)

Avant la suppression d'un ou de plusieurs enregistrements mais avant que Microsoft Access n'affiche une bote de dialogue vous demandant de confirmer ou d'annuler la suppression. Cet vnement se produit aprs l'vnement Suppression.

Page 73 sur 73

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

vnement
Changement (Change)

Proprit d'vnement
SurChangement (OnChange) (contrles) SurMAJ (OnUpdated) (contrles) SurSuppression (OnDelete) (formulaires)

Survient
Lorsque le contenu d'une zone de texte ou la partie texte d'une zone de liste modifiable est modifie. Par exemple, lorsque vous tapez un caractre dans le contrle ou modifiez la proprit Texte (Text) du contrle l'aide d'une macro ou de Visual Basic. Lorsque les donnes d'un objet OLE sont modifies.

MAJ (Updated)

Suppression (Delete)

Lorsqu'un enregistrement est supprim, mais avant que la suppression ne soit confirme et ne soit rellement effectue.

6. vnements de type Erreur et Minuterie


Les vnements suivants sont utiliss pour la gestion des erreurs et la synchronisation des donnes des formulaires ou tats. vnement
Erreur (Error)

Proprit d'vnement
SurErreur (OnError) (formulaires, tats)

Survient
Quand une erreur d'excution se produit dans Microsoft Access tandis que vous travaillez dans le formulaire. Cela inclut les erreurs du moteur de base de donnes Microsoft Jet mais pas les erreurs d'excution de Visual Basic. (Les macros ne pouvant pas identifier l'erreur qui s'est produite, vous utiliserez en gnral des procdures vnementielles Visual Basic pour cet vnement). A intervalles rguliers dfinis par la proprit IntervalleMinuterie (TimerInterval) du formulaire. Vous pouvez utiliser l'vnement Minuterie afin que les donnes restent synchronises dans un environnement multi-utilisateur en actualisant les donnes intervalles rguliers.

Minuterie (Timer) SurMinuterie (OnTimer) (formulaires)

7. vnements de type Fentre


Les vnements de type Fentre surviennent lors de l'ouverture, du redimensionnement ou de la fermeture d'un formulaire ou d'un tat. vnement
Chargement (Load)

Proprit d'vnement
SurChargement (OnLoad) (formulaires)

Survient
Quand un formulaire est ouvert et affiche des enregistrements. Il survient avant l'vnement Activation (Current), mais aprs l'vnement Ouverture (Open). Quand un formulaire ou un tat est ferm ou supprim de l'cran.

Fermeture (Close) SurFermeture (OnClose) (formulaires, tats) Libration (Unload) Ouverture (Open) SurLibration (OnUnload) (formulaires) SurOuverture (OnOpen) (formulaires, tats) SurRedimensionne ment (OnResize) (formulaires)

Lorsqu'un formulaire est ferm et que ses enregistrements sont dchargs, mais avant qu'il ne soit supprim de l'cran. Il survient avant l'vnement Fermeture (Close). Quand un formulaire est ouvert, mais avant l'affichage du premier enregistrement.Quand un tat est ouvert, mais avant son impression. Quand la taille d'un formulaire change. Il survient aussi lorsqu'un formulaire est affich pour la premire fois.

Redimensionnem ent (Resize)

Page 74 sur 74

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

8. vnements de type Filtre


Les vnements de type Filtre surviennent lors de la cration ou de l'application d'un filtre un formulaire. vnement
AppliquerFiltre (ApplyFilter)

Proprit d'vnement
SurFiltreAppliqu (OnApplyFilter) (formulaires)

Survient
Quand vous cliquez sur Appliquer le filtre dans le menu Enregistrements ou sur le bouton Appliquer le filtre de la barre d'outils. Le dernier filtre cr s'applique alors (qu'il ait t cr l'aide de la fonction Filtrer par formulaire ou de la fentre Filtre/tri avanc).Lorsque vous cliquez sur Filtrer par slection aprs avoir point sur Filtre dans le menu Enregistrements, ou sur le bouton Filtrer par slection de la barre d'outils. Le filtre qui s'applique alors se base sur la slection en cours du formulaire.Quand vous cliquez sur Supprimer le filtre/tri dans le menu Enregistrements ou sur le bouton Supprimer le filtre de la barre d'outils. Tout type de filtre (ou de tri) actuellement appliqu au formulaire est supprim.Lorsque vous fermez la fentre Filtre/tri avanc ou la fentre Filtrer par formulaire.

Filtre (Filter)

SurFiltre (OnFilter) (formulaires)

Lorsque vous cliquez sur Filtre, puis sur Filtrer par formulaire dans le menu Enregistrements, ou sur le bouton Filtrer par formulaire de la barre d'outils. Cela a pour effet d'ouvrir la fentre Filtrer par formulaire dans laquelle vous pouvez rapidement crer un filtre bas sur les champs du formulaire.Quand vous cliquez sur Filtre, puis sur Filtre/tri avanc dans le menu Enregistrements. La fentre Filtre/tri avanc s'ouvre alors, dans laquelle vous pouvez crer des filtres complexes pour le formulaire.

9. vnements de type Focus


Les vnements de type Focus surviennent lorsqu'un formulaire ou un contrle perd ou reoit le focus, ou lorsqu'un formulaire ou un contrle devient actif ou inactif. vnement
Activ (Activate)

Proprit d'vnement
SurActiv (OnActivate) (formulaires, tats) SurDsactiv (OnDeactivate) (formulaires, tats)

Survient
Lorsqu'un formulaire ou un tat devient la fentre active.

Dsactiv (Deactivate)

Lorsque vous activez une autre fentre de Microsoft Access, mais juste avant qu'elle ne devienne rellement active. L'vnement Dsactiv ne survient pas quand vous activez une fentre d'une autre application, une bote de dialogue ou un formulaire indpendant.

Entre (Enter)

SurEntre (OnEnter) Avant qu'un contrle ne reoive effectivement le focus, soit d'un contrle du mme formulaire, soit l'ouverture du formulaire. Cet vnement se produit (contrles)
avant l'vnement Rception focus (GotFocus).

PerteFocus (LostFocus)

SurPerteFocus (OnLostFocus) (formulaires, contrles) SurRceptionFocus (OnGotFocus) (formulaires, contrles) SurSortie (OnExit) (contrles)

Quand un formulaire ou un contrle perd le focus. Un formulaire peut avoir le focus la seule condition que tous ses contrles visibles soient dsactivs ou qu'il ne contienne pas de contrles. Quand un contrle ou un formulaire ne disposant pas de contrles actifs ou activs reoit le focus. Un formulaire peut recevoir le focus la seule condition que tous ses contrles visibles soient dsactivs ou qu'il ne contienne pas de contrles. Immdiatement avant qu'un contrle ne perde le focus au profit d'un autre contrle du mme formulaire. Cet vnement survient avant l'vnement Perte focus (LostFocus).

RceptionFocus (GotFocus)

Sortie (Exit)

10. vnements de type Impression


Les vnements de type Impression surviennent lors de l'impression d'un tat ou lors de son formatage pour l'impression. Page 75 sur 75

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

vnement
AucuneDonne (NoData)

Proprit d'vnement
SurAucuneDonne (OnNoData) (tats)

Survient
Aprs que Microsoft Access a mis en forme un tat ne contenant pas de donnes en vue de son impression (cet tat est li un jeu d'enregistrements vide), mais avant l'impression. Vous pouvez utiliser cet vnement pour annuler l'impression d'un tat vide Lorsque Microsoft Access dtermine quelles donnes appartiennent une section d'tat, mais avant la mise en forme de la section en vue de sa visualisation ou de son impression. Votre macro ou votre procdure vnementielle peut utiliser des donnes de l'enregistrement en cours pour apporter des modifications la mise en page. Aprs que Microsoft Access a mis en forme les donnes d'une section d'tat, mais avant l'impression de la section. Aprs que Microsoft Access a mis en forme une page en vue de son impression, mais avant l'impression. Quand Microsoft Access doit revenir sur une ou plusieurs sections d'tat en arrire sur une page afin d'excuter plusieurs oprations de mise en forme. Il survient aprs l'vnement Formatage d'une section, mais avant l'vnement Impression. L'vnement Reformatage pour chaque section survient quand Microsoft Access revient sur une section prcdente. Cela vous permet d'annuler les modifications apportes au cours de l'vnement Formatage de cette section.

Formatage (Format)

AuFormatage (OnFormat) (tats)

Impression (Print) SurImpression (OnPrint) (tats) Page (Page) Reformatage (Retreat) SurPage (OnPage) (tats) AuReformatage (OnRetreat) (tats)

11. vnements de type Souris


Les vnements de type Souris surviennent lorsque vous effectuez une action avec la souris, comme appuyer sur le bouton ou cliquer. vnement
Clic (Click)

Proprit d'vnement
SurClic (OnClick) (formulaires, contrles) SurDoubleClic (OnDblClick) (formulaires, contrles) SurSourisAppuye (OnMouseDown) (formulaires, contrles) SurSourisDplace (OnMouseMove) (formulaires, contrles) SurSourisRelche (OnMouseUp) (formulaires, contrles)

Survient
Pour un contrle, cet vnement survient lorsque vous cliquez sur un contrle avec le bouton gauche de la souris (en appuyant, puis en relchant).Pour un formulaire, il survient lorsque vous cliquez sur un slecteur d'enregistrement ou sur une portion situe en dehors d'une section ou d'un contrle.

DoubleClic (DblClick)

Lorsque vous double-cliquez sur un contrle (ou sur son tiquette) avec le bouton bouton gauche de la souris (en appuyant, puis en relchant).Pour un formulaire, il survient lorsque vous double-cliquez sur une zone vide ou sur un slecteur d'enregistrement du formulaire. Lorsque vous appuyez sur un bouton de la souris alors que le pointeur se trouve sur un formulaire ou un contrle.L'annulation de l'vnement Souris appuye (MouseDown) avec l'action AnnulerEvnement dans une macro vite l'affichage du menu contextuel d'un formulaire ou d'un contrle lorsque vous appuyez sur le bouton droit de la souris. Quand l'utilisateur dplace le pointeur de la souris sur un formulaire, une section de formulaire ou un contrle.

SourisAppuye (MouseDown)

SourisDplace (MouseMove)

SourisRelche (MouseUp)

Lorsque vous relchez un bouton de la souris alors que le pointeur se trouve sur un formulaire ou un contrle.

12. Cration d'une procdure vnementielle


Une procdure vnementielle est une procdure Sub appele automatiquement en rponse un vnement. Pour crer une procedure vnementielle, commencez par dterminer l'vnement (clic de Page 76 sur 76

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

souris ou mise jour d'un enregistrement, par exemple) dont la proprit de type vnement va dclencher la procdure vnementielle. Pour crer une procdure vnementielle 1. Ouvrez un formulaire ou un tat en mode Cration. La totalit du formulaire ou de l'tat est slectionn par dfaut, mais vous pouvez limiter la procdure vnementielle un seul contrle 2. Cliquez dans la barre d'outils sur le bouton Proprits. Microsoft Access affiche la feuille de proprits du formulaire, de l'tat ou du contrle. 3. Dans la zone de liste en haut de la feuille de proprits, slectionnez Proprits des vnements. 4. Slectionnez l'vnement qui va dclencher la procdure vnementielle et ouvrez sa liste droulante. 5. Slectionnez [Event Procedure]. 6. Cliquez sur le bouton Gnrateur pour afficher la fentre Module. 7. Tapez la procdure vnementielle entre la ligne Sub et la ligne End Sub. 8. Cliquez dans la barre d'outils sur le bouton Compile les modules chargs pour compiler la procdure vnementielle. 9. Sauvegardez les modifications apportes au module. Lorsque le formulaire ou l'tat est ouvert, chaque occurrence de l'vnement provoquera l'appel de la procdure vnementielle.

XI.

Le langage SQL
A. Langage de manipulation de donnes 1. SELECT, instruction

Demande au moteur de base de donnes Microsoft Jet de lui renvoyer des informations depuis la base de donnes sous la forme d'une srie d'enregistrements. Syntaxe
SELECT [predicate] { * | table.* | [table.]field1 [AS alias1] [, [table.]field2 [AS alias2] [, ...]]} FROM tableexpression [, ...] [IN externaldatabase] [WHERE... ] [GROUP BY... ] [HAVING... ] [ORDER BY... ] [WITH OWNERACCESS OPTION]

Linstruction SELECT se compose des lments suivants : lment predicate Description L'un des prdicats suivants : ALL, DISTINCT, DISTINCTROW ou TOP. Les prdicats permettent de limiter le nombre d'enregistrements renvoys. Si aucun nest prcis, ALL est choisi par dfaut. Indique que tous les champs de la ou des tables spcifies sont slectionns. Nom de la table contenant les champs dans lesquels les enregistrements sont slectionns. Noms des champs contenant les donnes extraire. Si vous incluez plusieurs champs, les donnes seront extraites dans l'ordre indiqu. Page 77 sur 77

* table field1, field2

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

alias1, alias2 tableexpression externaldatabase

Noms utiliser comme en-ttes de colonne la place des noms de colonnes originaux dans table. Nom de la ou des tables contenant les donnes extraire. Nom de la base de donnes contenant les tables de tableexpression si elles ne se trouvent pas dans la base de donnes en cours. a) ALL, DISTINCT, DISTINCTROW, TOP, prdicats

Spcifie les enregistrements slectionns par des requtes SQL. Syntaxe


SELECT [ALL | DISTINCT | DISTINCTROW | [TOP n [PERCENT]]] FROM table

Une instruction SELECT contenant ces prdicats se compose des lments suivants : lment ALL Description Si vous n'incluez aucun prdicat, le moteur de base de donnes Microsoft Jet slectionne tous les enregistrements qui remplissent les conditions de l'instruction SQL. Les deux exemples suivants sont quivalents et renvoient tous les enregistrements de la table Employs :
SELECT ALL * FROM Employs ORDER BY [N employ];SELECT * FROM Employs ORDER BY [N employ];

DISTINCT

Omet tous les enregistrements pour lesquels les champs slectionns contiennent des donnes en double. Ainsi, pour tre incluses dans les rsultats de la requte, les valeurs de chaque champ rpertori dans l'instruction SELECT doivent tre uniques. Par exemple, plusieurs employs rpertoris dans une table Employs peuvent avoir le mme nom. Si deux enregistrements contiennent Durand dans le champ "Nom", l'instruction SQL suivante ne renvoie alors qu'un seul de ces enregistrements :
SELECT DISTINCT Nom FROM Employs;

Si vous omettez DISTINCT, cette requte renvoie les deux enregistrements Durand.Si la clause SELECT contient plusieurs champs, la combinaison des valeurs de tous ces champs doit tre unique, pour un enregistrement donn, pour que ces valeurs apparaissent dans le rsultat.Le rsultat d'une requte qui utilise DISTINCT ne peut pas tre mis jour et ne reflte pas les modifications ultrieures effectues par d'autres utilisateurs. DISTINCTROW Omet les donnes sur la base des enregistrements complets en double, et pas seulement de champs en double. Par exemple, vous pouvez crer une requte qui joint les tables Clients et Commandes l'aide du champ "Code client". La table Clients ne contient aucun doublon dans le champ "Code client", mais la table Commandes en contient car chaque client passe plusieurs commandes. L'instruction SQL suivante montre comment utiliser DISTINCTROW pour produire une liste de socits qui ont pass au moins une commande, sans afficher le dtail de ces commandes :
SELECT DISTINCTROW Socit FROM Clients INNER JOIN Commandes ON Clients.[Code client]= Commandes.[Code client] ORDER BY Socit;

Si vous omettez DISTINCTROW, cette requte produit plusieurs lignes pour chaque socit ayant pass plusieurs commandes.DISTINCTROW n'a d'effet que si vous slectionnez des champs dans seulement certaines des tables utilises dans la requte.DISTINCTROW est ignor si votre requte n'inclut qu'une seule table ou si vous slectionnez les champs de toutes les tables.

Page 78 sur 78

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

TOP n [PERCENT]

Renvoie un certain nombre d'enregistrements situs au dbut ou la fin d'une plage spcifie par une clause ORDER BY. Supposons que vous souhaitiez obtenir les noms des 25 premiers tudiants de la promotion 1996 :
SELECT TOP 25 Nom, Prnom FROM Etudiants WHERE Promotion = 1996 ORDER BY Moyenne DESC;

Si vous n'incluez pas la clause ORDER BY, la requte renverra une srie de 25 enregistrements choisis arbitrairement parmi ceux de la table Students qui remplissent les conditions de la clause WHERE.Le prdicat TOP n'effectue pas de choix entre des valeurs gales. Dans l'exemple prcdent, si, parmi les meilleurs rsultats obtenus, le vingt-cinquime et le vingt-sixime ont obtenu la mme moyenne, la requte renvoie 26 enregistrements.Vous pouvez galement utiliser le mot rserv PERCENT pour renvoyer un certain pourcentage des premiers ou derniers enregistrements d'une plage spcifie par la clause ORDER BY. Supposons qu'au lieu des 25 meilleurs tudiants, vous souhaitiez slectionner 10 pour cent de la promotion :
SELECT TOP 10 PERCENT Nom, Prnom ORDER BY Moyenne ASC; FROM Etudiants WHERE Promotion = 1994

Le prdicat ASC donne des valeurs croissantes.La valeur qui suit TOP doit tre un entier non sign.TOP n'affecte pas les possibilits de mise jour de la requte. table Nom de la table contenant les enregistrements extraire. b) FROM, clause Spcifie les tables ou les requtes qui contiennent les champs spcifis dans l'instruction SELECT. Syntaxe
SELECT fieldlist FROM tableexpression [IN externaldatabase]

Une instruction SELECT contenant une clause FROM se compose des lments suivants : lment fieldlist Description Nom du ou des champs extraire avec leurs alias de nom de champ, fonctions de regroupement SQL, prdicats de slection (ALL, DISTINCT, DISTINCTROW ou TOP) ou autres options d'instruction SELECT. Expression qui identifie la ou les tables contenant les donnes extraire. L'expression peut tre constitue d'un seul nom de table, d'un nom de requte enregistr ou d'un compos rsultant d'une opration INNER JOIN, LEFT JOIN ou RIGHT JOIN.

tableexpression

externaldatabase

Nom du chemin d'accs complet d'une base de donnes externe contenant toutes les tables dans tableexpression. INNER JOIN, opration Fusionne les enregistrements de deux tables lorsquun champ commun contient des valeurs identiques. Syntaxe
FROM table1 INNER JOIN table2 ON table1.field1 compopr table2.field2

L'opration INNER JOIN comprend les lments suivants : lment table1, table2 Description Noms des tables depuis lesquelles les enregistrements sont fusionns.

field1, field2 Noms des champs relis entre eux. S'ils ne sont pas numriques, les champs doivent avoir le mme type de donnes et contenir des donnes de nature identique. Leurs noms peuvent tre diffrents. Page 79 sur 79

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

oprcomp Remarques

Tout oprateur de comparaison relationnelle tel que "=", "<", ">", "<=", ">=", ou "<>".

Vous pouvez utiliser une opration INNER JOIN dans n'importe quelle clause FROM. Il s'agit du type de jointure le plus rpandu. Les jointures INNER JOIN fusionnent les enregistrements de deux tables lorsquun champ commun contient des valeurs identiques.Vous pouvez utiliser INNER JOIN avec les tables Services et Employs pour slectionner tous les employs appartenant un service donn. l'oppos, pour slectionner tous les services (mme si certains n'ont aucun personnel) ou tous les employs (mme si certains ne sont lis aucun service), vous pouvez utiliser une opration LEFT JOIN or RIGHT JOIN pour crer une jointure externe. Si vous tentez d'tablir une jointure entre des champs contenant des donnes de type Memo ou OLE Object , une erreur se produit. Une jointure peut impliquer deux champs numriques de type identique. Vous pouvez, par exemple, tablir une jointure entre les champs AutoNumber et Long car il s'agit de types identiques. Par contre, il est impossible d'tablir une jointure entre les types de champs Single et Double. L'exemple qui suit montre comment raliser une jointure entre les tables Catgories et Produits, sur la base du champ Nom de catgorie :
SELECT [Nom de catgorie], [Nom du produit] FROM Catgories INNER JOIN Produits ON Catgories.[Nom de catgorie] = Produits.[Nom de catgorie];

Dans cet exemple, le champ sur lequel se fait la jointure est Nom de catgorie mais il n'est pas visible dans le rsultat de la requte car il n'a pas t inclus dans l'instruction SELECT. Pour inclure le champ de base de la jointure, intgrez son nom l'instruction SELECT : dans le cas prsent, Catgories.[Nom de catgorie]. Vous pouvez galement relier plusieurs clauses ON dans une instruction JOIN, l'aide de la syntaxe suivante :
SELECT fields FROM table1 INNER JOIN table2 ON table1.field1 compopr table2.field1 AND ON table1.field2 compopr table2.field2) OR ON table1.field3 compopr table2.field3)];

Vous pouvez galement imbriquer des instructions JOIN l'aide de la syntaxe suivante :
SELECT fields FROM table1 INNER JOIN (table2 INNER JOIN [( ]table3 [INNER JOIN [( ]tablex [INNER JOIN ...) ] ON table3.field3 compopr tablex.fieldx)] ON table2.field2 compopr table3.field3) ON table1.field1 compopr table2.field2;

Une jointure LEFT JOIN ou RIGHT JOIN peut tre imbrique dans une jointure INNER JOIN mais il est impossible d'imbriquer une jointure INNER JOIN dans une jointure LEFT JOIN ou RIGHT JOIN. Exemple1 L'exemple suivant prsente la cration de deux qui-jointures : l'une entre les tables Dtails des commandes et Commandes, et l'autre entre les tables Commandes et Employs. Les deux jointures sont ncessaires car la table Employs ne contient pas de donnes de ventes, et la table Dtail des commandes ne contient pas de donnes d'employs. La requte aboutit une liste d'employs et leurs ventes totales.
SELECT DISTINCTROW Sum(Prixunitaire * Quantit) AS Ventes, Prnom & " " & Nom AS Nomcomplet FROM Employs INNER JOIN(Commandes INNER JOIN [Dtails commandes] ON Commandes.N commande = [Dtails commandes].N commande) ON Employs.N employ = Commandes.N commande GROUP BY Prnom & " " & Nom ;

Exemple2 Cet exemple cre deux quijointures: une premire entre les tables Dtails commandes et Commandes, une autre entre les tables Commandes et Employs. Cela est ncessaire parce que la table Employs Page 80 sur 80

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

ne contient pas de donnes de ventes et que la table Dtails commandes ne contient pas de donnes d'employ. La requte produit une liste d'employs avec leurs ventes totales. Cet exemple appelle la procdure EnumFields prsente dans l'exemple de l'instruction SELECT.
Sub InnerJoinX() Dim dbs As Database, rst As Recordset Set dbs = OpenDatabase("Comptoir.mdb") ' Cre une jointure entre les tables Dtails commandes et Commandes, et une autre ' entre les tables Commandes et Employs. Obtient une liste d'employs et leurs ' ventes totales. Set rst = dbs.OpenRecordset("SELECT distinctrow " _ & "Sum([Prix unitaire]* Quantit) AS Ventes, (Prnom & Chr(32) & Nom) AS Nom " & "FROM Employs INNER JOIN(Commandes INNER JOIN [Dtails commande] " & "ON [Dtails commandes].[N commande] = Commande.[N commande] ) " & "ON Commandes.[N employ] = Employs.[N employ] " & "GROUP BY (Prnom & Chr(32) & Nom);") ' Remplit l'objet Recordset. rst.MoveLast ' Appelle la procdure EnumFields pour imprimer le contenu de l'objet Recordset. Passe ce dernier et la largeur de champ dsire. EnumFields rst, 20 dbs.Close End Sub

LEFT JOIN, RIGHT JOIN, oprations Fusionnent des enregistrements de tables source lorsqu'on les utilise dans une clause FROM. Syntaxe
FROM table1 [ LEFT | RIGHT ] JOIN table2 ON table1.field1 compopr table2.field2

Remarques Utilisez une opration LEFT JOIN pour crer une jointure externe gauche. Avec deux tables, les jointures externes gauches comprennent tous les enregistrements de la premire table (celle de gauche) mme s'il n'existe aucune valeur correspondante aux enregistrements dans la deuxime table (celle de droite). Utilisez une opration RIGHT JOIN pour crer une jointure externe droite. Avec deux tables, les jointures externes droites comprennent tous les enregistrements de la deuxime table (celle de droite) mme s'il n'existe aucune valeur correspondante aux enregistrements dans la premire table (celle de gauche). Vous pouvez utiliser, par exemple, une jointure LEFT JOIN avec les tables Services (gauche) et Employs (droite) pour slectionner tous les services y compris ceux auquel aucun employ n'est affect. Pour slectionner tous les employs, y compris ceux ne relevant d'aucun service en particulier, vous pouvez utiliser une jointure RIGHT JOIN. L'exemple qui suit montre comment raliser une jointure entre les tables Catgories et Produits, sur la base du champ Nom de catgorie. La requte produit une liste exhaustive des catgories qui comprend aussi celles ne contenant aucun produit.
SELECT [Nom de catgorie], [Nom du produit] FROM Catgories LEFT JOIN Produits ON Catgories.[Nom de catgorie] = Produits.[Nom de catgorie];

Dans cet exemple, le champ sur lequel se fait la jointure est Nom de catgorie mais il n'est pas visible dans les rsultats de la requte car il n'a pas t inclus dans l'instruction SELECT. Pour inclure le champ de base de la jointure, intgrez son nom l'instruction SELECT, dans le cas prsent, Catgories.[Nom de catgorie]. Notes Page 81 sur 81

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

Pour crer une requte ne comprenant que les enregistrements dans lesquels les donnes des champs relis sont identiques, utilisez une opration INNER JOIN. Une jointure LEFT JOIN ou RIGHT JOIN peut tre imbrique dans une jointure INNER JOIN mais il est impossible d'imbriquer une jointure INNER JOIN dans une jointure LEFT JOIN ou RIGHT JOIN. Reportez-vous aux informations donnes sur l'imbrication, dans la section consacre la jointure INNER JOIN, pour voir comment imbriquer des jointures les unes dans les autres. Vous pouvez relier plusieurs clauses ON. Reportez-vous aux informations donnes sur la liaison des clauses, dans la section consacre la jointure INNER JOIN, pour voir comment procder. Si vous tentez d'tablir une jointure entre des champs contenant des donnes de type Memo ou OLE Object , une erreur se produit. c) WHERE, clause Indique quels enregistrements des tables cites dans la clause FROM sont affects par linstruction SELECT, UPDATE ou DELETE. Syntaxe
SELECT fieldlist FROM tableexpression WHERE criteria

Avec criteria une expression que les enregistrements doivent satisfaire pour tre inclus dans le rsultat de la requte. Remarques Le moteur de base de donnes Microsoft Jet slectionne les enregistrements qui remplissent les conditions rpertories dans la clause WHERE. Si vous ne spcifiez pas de clause WHERE, votre requte renvoie toutes les lignes de la table. Si vous spcifiez plusieurs tables dans votre requte et que vous n'avez pas inclus de clause WHERE ou JOIN, votre requte gnre un produit cartsien des tables. La clause WHERE est facultative mais, si elle est prsente, elle doit suivre la clause FROM. Par exemple, vous pouvez slectionner tous les employs du service Ventes (WHERE Dept = 'Ventes') ou tous les clients qui ont entre 18 et 30 ans (WHERE Age BETWEEN 18 And 30). Si vous n'utilisez pas de clause JOIN pour effectuer des oprations de jointure SQL sur plusieurs tables, l'objet Recordset rsultant ne pourra pas tre mis jour. WHERE est similaire HAVING. WHERE dtermine quels sont les enregistrements slectionner. De mme, une fois que les enregistrements sont regroups l'aide de GROUP BY, HAVING dtermine quels sont les enregistrements renvoyer. Utilisez la clause WHERE pour liminer les enregistrements que vous ne souhaitez pas regrouper l'aide d'une clause GROUP BY. Utilisez plusieurs expressions diffrentes pour dterminer quels seront les enregistrements renvoys par l'instruction SQL. Par exemple, l'instruction SQL suivante slectionne tous les employs dont le salaire dpasse 21 000 F :
SELECT Nom, Salaire FROM Employs WHERE Salaire > 21000;

Une clause WHERE peut contenir jusqu' 40 expressions lies par des oprateurs logiques comme And et Or. Lorsque vous entrez un nom de champ contenant une espace ou un signe de ponctuation, placez ce nom entre crochets ([ ]). Par exemple :
SELECT [Restaurant favori]

Si vous spcifiez l'argument criteria, vous devez indiquer les littraux date au format amricain, et ce, mme si vous n'utilisez pas la version amricaine du moteur de base de donnes Microsoft Jet. Par exemple, le 10 mai 1996, s'crit sous la forme 10/5/96 en France et 5/10/96 aux Etats-Unis. N'oubliez pas d'indiquer vos littraux date entre deux caractres #, comme dans l'exemple ci-dessous. Pour rechercher les enregistrements dats du 10 mai 1996 dans une base de donnes franaise, utilisez l'instruction SQL suivante : Page 82 sur 82

Institut Agronomique et Vtrinaire Hassan II


SELECT * FROM Commandes WHERE [Date envoi] = #5/10/96#;

M. LAHLOU

Vous pouvez galement utiliser la fonction DateValue qui reconnat les paramtres rgionaux de Microsoft Windows. Par exemple, pour un code crit aux Etats-Unis :
SELECT * FROM Orders WHERE ShippedDate = DateValue('5/10/96');

Par exemple, pour un code crit en France :


SELECT * FROM Commandes WHERE [Date envoi] = DateValue('10/5/96');

Note Si la colonne rfrence dans la chane des critres est du type GUID, lexpression des critres suit une syntaxe sensiblement diffrente :
WHERE ReplicaID = {GUID {12345678-90AB-CDEF-1234-567890ABCDEF}}

Respectez bien limbrication des parenthses et la position des tirets. d) GROUP BY, clause La clause GROUP BY combine en un seul enregistrement les enregistrements comportant des valeurs identiques dans la liste des champs spcifis. Une valeur de synthse est cre pour chaque enregistrement si vous incluez une fonction de regroupement SQL, par exemple Sum ou Count, dans l'instruction SELECT. Syntaxe
SELECT fieldlist FROM table WHERE criteria [GROUP BY groupfieldlist]

Avec groupfieldlist les noms des champs (10 au maximum) utiliss pour regrouper les enregistrements. L'ordre des noms de champs dans groupfieldlist dtermine les niveaux de regroupement, du plus lev au plus bas. Remarques La clause GROUP BY est facultative. Les valeurs de synthse sont omises si l'instruction SELECT ne contient aucune fonction de regroupement SQL. Les valeurs Null des champs GROUP BY sont regroupes et ne sont pas omises. Toutefois, les valeurs Null ne sont values dans aucune fonction de regroupement SQL. Utilisez la clause WHERE pour exclure les lignes que vous ne souhaitez pas regrouper et la clause HAVING pour filtrer les enregistrements aprs leur regroupement. moins de contenir des donnes de type Memo ou OLE Object, un champ d'une liste de champs GROUP BY peut faire rfrence n'importe quel champ de la clause FROM, mme si celui-ci n'est pas inclus dans l'instruction SELECT, condition toutefois que l'instruction SELECT inclue au moins une fonction de regroupement SQL. Le moteur de base de donnes Microsoft Jet ne peut pas faire porter des oprations de regroupement sur des champs Memo ou OLE. Tous les champs de la liste de champs SELECT doivent tre inclus dans la clause GROUP BY ou, sous forme d'arguments, dans une fonction de regroupement SQL. e) HAVING, clause Spcifie les enregistrements regroups afficher dans une instruction SELECT dote d'une clause GROUP BY. Une fois que GROUP BY a regroup les enregistrements, HAVING affiche tous les enregistrements qui ont t regroups par la clause GROUP BY et qui rpondent aux critres de la clause HAVING. Syntaxe
SELECT fieldlist groupcriteria] FROM table WHERE selectcriteria GROUP BY groupfieldlist [HAVING

Avec groupcriteria une expression qui dtermine quels sont les enregistrements regroups afficher. Remarques La clause HAVING est facultative. Page 83 sur 83

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

HAVING est similaire WHERE, qui dtermine quels sont les enregistrements slectionner. Une fois que GROUP BY a regroup les enregistrements, HAVING dtermine quels sont les enregistrements qui seront affichs : SELECT [Code catgorie], Sum([Units en stock]) FROM Produits GROUP BY [Code catgorie] HAVING Sum([Units en stock]) > 100 And Like "BOS*"; Une clause HAVING peut contenir jusqu' 40 expressions lies par des oprateurs logiques comme And et Or. f) ORDER BY, clause Trie, par ordre croissant ou dcroissant, les enregistrements rsultants d'une requte en fonction du ou des champs spcifis. Syntaxe
SELECT fieldlist FROM table [ASC | DESC ]][, ...]]] WHERE selectcriteria [ORDER BY field1 [ASC | DESC ][, field2

Avec field1, field2 les noms des champs sur lesquels doit porter le tri. Remarques La clause ORDER BY est facultative. Mais si vous n'incluez pas ORDER BY, les donnes sont affiches sans tre tries. L'ordre de tri par dfaut est l'ordre croissant (de A Z et de 0 9). Toutefois, vous pouvez inclure le mot rserv ASC la fin de chaque champ que vous souhaitez trier par ordre croissant. Dans les deux exemples suivants, les employs sont tris sur leur nom :
SELECT Nom, Prnom FROM Employs ORDER BY Prnom; SELECT Nom, Prnom FROM Employs ORDER BY Prnom ASC;

Pour effectuer un tri par ordre dcroissant (de Z A et de 9 0), ajoutez le mot rserv DESC la fin de chaque champ que vous souhaitez trier par ordre dcroissant. Dans les deux exemples suivants, les employs sont slectionns, puis tris par ordre dcroissant :
SELECT Nom, Salaire FROM Employs ORDER BY Salaire DESC, Nom;

Si vous spcifiez un champ contenant des donnes de type Memo ou OLE Object dans la clause ORDER BY, une erreur se produit. Le moteur de base de donnes Microsoft Jet ne peut trier des champs contenant ces types de donnes. ORDER BY est gnralement le dernier lment d'une instruction SQL. Vous pouvez inclure des champs supplmentaires dans une clause ORDER BY. Les enregistrements sont tris tout d'abord en fonction du premier champ spcifi aprs ORDER BY. Ensuite, les enregistrements pour lesquels ce champ contient des valeurs identiques sont tris en fonction de la valeur du second champ spcifi, et ainsi de suite.

2. DELETE, instruction
Cre une requte Suppression qui supprime des enregistrements dans une ou dans plusieurs des tables mentionnes dans la clause FROM qui correspond la clause WHERE. Syntaxe
DELETE [table.*] FROM table WHERE criteria

Important Une fois que vous avez supprim des enregistrements l'aide d'une requte Suppression, vous ne pouvez pas annuler l'opration. Si vous dsirez savoir quels enregistrements ont t supprims, faites d'abord une requte Slection avec les mmes critres, examinez les rsultats obtenus, puis excutez la requte Suppression. Conservez toujours des copies de sauvegarde de vos donnes. Si vous supprimez des enregistrements par inadvertance, vous pourrez les rcuprer partir de vos copies de sauvegarde. Page 84 sur 84

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

3. UPDATE, instruction
Cre une requte de mise jour qui modifie les valeurs des champs d'une table spcifie, selon des critres dtermins. Syntaxe
UPDATE table SET newvalue WHERE criteria;

Vous pouvez modifier simultanment plusieurs champs. Dans l'exemple suivant, les valeurs de MontantCommande sont augmentes de 10 pour cent tandis que les valeurs de Port augmentent de 3 pour cent pour les transporteurs rsidant au Royaume Uni.
UPDATE Commandes SET [Montant Commande] = [Montant Commande] * 1,1, Port = Port * 1,03 WHERE [Pays livraison] = 'RU';

4. UNION, opration
Cre une requte Union, qui fusionne les rsultats de deux, ou plusieurs, requtes ou tables indpendantes. Syntaxe
[TABLE] query1 UNION [ALL] [TABLE] query2 [UNION [ALL] [TABLE] queryN [ ... ]]

L'opration UNION comprend les lments suivants : lment query1 queryN Remarque Description Instruction SELECT, nom d'une requte enregistre ou d'une table enregistre, prcd du mot cl TABLE.

Vous pouvez fusionner les rsultats de deux, ou plusieurs, requtes, tables ou instructions SELECT, dans n'importe quel ordre, en une unique opration UNION. Dans l'exemple suivant, on fusionne une table existante (Nouveaux Comptes) avec une instruction SELECT.
TABLE [Nouveaux Comptes] UNION ALL SELECT * FROM Clients WHERE [Montant Commande] > 1000;

5. TRANSFORM, instruction
Cre une requte croise. Syntaxe
TRANSFORM aggfunction selectstatement PIVOT pivotfield [IN (value1[, value2[, ...]])]

L'instruction TRANSFORM comprend les lments suivants : lment aggfunction Description Fonction de regroupement SQL agissant sur les donnes slectionnes.

selectstateme Instruction SELECT. nt pivotfield value1, value2 Champ ou expression que vous voulez utiliser pour crer des en-ttes de colonnes dans le jeu de rsultats de la requte. Valeurs fixes utilises pour crer les en-ttes de colonnes.

Page 85 sur 85

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

B. Langage de dfinition de donnes 1. DROP, instruction


Supprime une table dune base de donnes ou supprime un index dune table. Remarque Pour les bases de donnes autres que celles de type Microsoft Jet, le moteur de la base de donnes Microsoft Jet ne gre pas l'utilisation de DROP ou des instructions de langage de dfinition de donnes (DDL). Utilisez plutt la mthode DAO Delete. Syntaxe
DROP {TABLE table | INDEX index ON table}

Remarques Vous devez fermer la table avant de la supprimer ou d'y supprimer un index. Vous pouvez galement utiliser linstruction ALTER TABLE pour supprimer un index dune table. Vous pouvez utiliser CREATE TABLE pour crer une table et CREATE INDEX ou ALTER TABLE pour crer un index. Pour modifier une table, utilisez ALTER TABLE.

2. CREATE TABLE, instruction


Cre une nouvelle table. Note Le moteur de base de donnes Microsoft Jet ne gre pas lutilisation de CREATE TABLE ou des instructions de langage de dfinition de donnes (DDL) avec les bases de donnes non-Microsoft Jet. Utilisez plutt les mthodes Create des objets daccs aux donnes. Syntaxe
CREATE TABLE table (field1 type [(size)] [NOT NULL] [index1] [, field2 type [(size)] [NOT NULL] [index2] [, ...]] [, CONSTRAINT multifieldindex [, ...]])

Linstruction CREATE TABLE se compose des lments suivants : lment table field1, field2 type size Description Nom de la table crer. Nom du ou des champs crer dans la nouvelle table. Vous devez crer au moins un champ. Type de donnes du field dans la nouvelle table (BINARY, BIT, BYTE, COUNTER, CURRENCY, DATETIME, SINGLE, DOUBLE, SHORT, LONG, TEXT, Etc.) Taille du champ en caractres (pour les donnes de type Texte ou Binaire uniquement).

index1, index2 Clause CONSTRAINT dfinissant un index monochamp. Pour plus d'informations sur la faon de le crer, reportez-vous laide relative la clause CONSTRAINT. multifieldindex Clause CONSTRAINT dfinissant un index multichamp. Pour plus d'informations sur la faon de le crer, reportez-vous laide relative la clause CONSTRAINT. Remarques Employez linstruction CREATE TABLE pour dfinir une nouvelle table, ses champs et ses contraintes. Si NOT NULL est utilis dans la dfinition dun champ, les nouveaux enregistrements devront contenir une donne valide dans ce champ. Une clause CONSTRAINT place diverses restrictions demploi sur un champ et peut servir dfinir la cl primaire. Vous pouvez aussi utiliser linstruction CREATE INDEX pour crer une cl primaire ou de nouveaux index sur des tables existantes. Vous pouvez appliquer NOT NULL sur un champ unique ou lintrieur dune clause CONSTRAINT nomme sappliquant un champ unique ou un champ multiple. Cependant, cette restriction NOT NULL ne peut sappliquer quune seule fois sur un champ, sinon une erreur dexcution se produit. Page 86 sur 86

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

3. CREATE INDEX, instruction


Cre un nouvel index pour une table existante. Note Pour les bases de donnes autres que celles de type Microsoft Jet, le moteur de base de donnes Microsoft Jet ne gre pas l'utilisation de CREATE INDEX (sauf pour crer un pseudo index sur une table lie ODBC) ni les instructions du langage de dfinition de donnes (DDL). Utilisez plutt les mthodes Create des objets d'accs aux donnes (DAO, Data Access Objects). Syntaxe
CREATE [ UNIQUE ] INDEX index ON table (field [ASC|DESC][, field [ASC|DESC], ...]) PRIMARY | DISALLOW NULL | IGNORE NULL }] [WITH {

Remarques

4. ALTER TABLE, instruction


Modifie une table cre avec linstruction CREATE TABLE. Note Le moteur de base de donnes Microsoft Jet ne gre pas lutilisation de ALTER TABLE ou des instructions de langage de dfinition de donnes (DDL) avec les bases de donnes non-Microsoft Jet. Utilisez plutt les mthodes. Create des objets daccs aux donnes (DAO, Data Access Objects). Syntaxe
ALTER TABLE table {ADD {COLUMN field type[(size)] [NOT NULL] [CONSTRAINT index] I CONSTRAINT multifieldindex} | DROP {COLUMN field I CONSTRAINT indexname} }

Remarques L'instruction ALTER TABLE permet de modifier une table existante de plusieurs faons. Ainsi, vous pouvez : Utiliser ADD COLUMN pour ajouter un nouveau champ la table. Spcifiez alors le nom du champ, son type de donnes et (dans le cas de champs Texte et Binaire) sa taille (facultative). Par exemple, l'instruction suivante ajoute un champ de texte de 25 caractres appel Remarques la table Employs:
ALTER TABLE Employs ADD COLUMN Remarques TEXT(25)

Vous pouvez galement dfinir un index sur ce champ. Pour plus d'informations sur les index monochamp, reportez-vous la rubrique d'aide relative la clause CONSTRAINT. Si vous ajoutez lindication NOT NULL pour un champ, les nouveaux enregistrements doivent contenir des donnes valides dans ce champ. Utiliser ADD CONSTRAINT pour ajouter un index multichamp. Pour plus d'informations sur les index multichamps, reportez-vous la rubrique d'aide relative la clause CONSTRAINT. Utiliser DROP COLUMN pour supprimer un champ. Spcifiez alors uniquement le nom du champ . Utiliser DROP CONSTRAINT pour supprimer un index multichamp. Spcifiez alors uniquement le nom d'index suivant le mot rserv CONSTRAINT.

5. CONSTRAINT, clause
Une contrainte est identique un index mais elle peut tre galement utilise pour tablir une relation avec une autre table. Utilisez la clause CONSTRAINT dans les instructions ALTER TABLE et CREATE TABLE pour crer ou supprimer des contraintes. Il existe deux types de clauses CONSTRAINT : une pour la cration d'une contrainte portant sur un seul champ et une autre pour la cration d'une contrainte portant sur plusieurs champs. Note Le moteur de base de donnes Microsoft Jet ne gre pas lutilisation de CONSTRAINT ou des instructions de langage de dfinition de donnes (DDL) avec les bases de donnes non-Microsoft Jet. Utilisez plutt les mthodesCreate des objets daccs aux donnes (DAO, Data Access Objects). Page 87 sur 87

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

Syntaxe Contrainte monochamp :


CONSTRAINT name {PRIMARY KEY | UNIQUE | NOT NULL | REFERENCES foreigntable foreignfield2)]} [(foreignfield1,

Contrainte multichamp :
CONSTRAINT name {PRIMARY KEY (primary1[, primary2 [, ...]]) | UNIQUE (unique1[, unique2 [, ...]]) | NOT NULL (notnull1[, notnull2 [, ...]]) | FOREIGN KEY (ref1[, ref2 [, ...]]) REFERENCES foreigntable [(foreignfield1 [, foreignfield2 [, ...]])]}

La clause CONSTRAINT se compose des lments suivants : lment name Description Nom de la contrainte crer.

primary1, primary2 Nom du ou des champs spcifier comme cl primaire. unique1, unique2 notnull1, notnull2 ref1, ref2 foreigntable foreignfield1, foreignfield2 Nom du ou des champs spcifier comme cl unique. Nom du ou des champs ne devant pas contenir la valeur Null. Nom du ou des champs de cl externe faisant rfrence des champs dune autre table. Nom de la table externe contenant le ou les champs spcifis par foreignfield. Nom du ou des champs de la foreigntable spcifi(s) par ref1, ref2. Vous pouvez omettre cette clause si le champ faisant lobjet de la rfrence constitue la cl primaire de foreigntable .

Page 88 sur 88

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

XII.

Cration, modification et saisie de donnes dans les formulaires

A. Introduction
Vous pouvez utiliser des formulaires des fins diverses.

Crer un formulaire de saisie pour insrer ou modifier des donnes dans une table. Crer une boite de dialogue personnalise afin d'excuter l'action correspondant aux paramtres entrs par l'utilisateur. Crer un tableau de distribution pour ouvrir d'autres formulaires ou rapports.

La plupart des informations contenues dans un formulaire proviennent d'une source d'enregistrements sous-jacente. Les autres informations du formulaire sont stockes dans le formulaire en mode Cration. Vous crez le lien entre un formulaire et sa source d'enregistrements l'aide d'objets graphiques appels contrles. Le type de contrle le plus rpandu pour l'affichage et la saisie de donne est la zone de texte.

Page 89 sur 89

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

B. Crer un formulaire

Vous pouvez crer vous-mme un formulaire ou demander l'Assistant Formulaire de Microsoft Access de s'en charger pour vous. L'Assistant Formulaire vous permet de gagner du temps en excutant pour vous les tches essentielles. Il vous pose des questions et cre un formulaire en fonction de vos rponses. Mme si la cration de formulaires n'a plus de secrets pour vous, il est utile de faire appel un Assistant Formulaire pour crer rapidement tous les contrles de votre formulaire. Vous pourrez ensuite basculer en mode Cration pour personnaliser votre formulaire.

1. Crer un formulaire colonne simple l'aide du bouton Nouvel objet


Le Formulaire instantan cre un formulaire reprenant tous les champs et enregistrements de la table ou de la requte slectionne. Chaque champ apparat sur une ligne distincte avec, sa gauche, une tiquette. 1. Dans la fentre Base de donnes, cliquez sur l'onglet Tables ou sur l'onglet Requtes. 2. Cliquez sur la table ou la requte sur laquelle vous voulez baser votre formulaire, ou ouvrez la table ou la requte selon un mode d'affichage quelconque. 3. Cliquez sur la flche ct du bouton Nouvel objet de la barre d'outils, puis sur Formulaire instantan.

2. Crer un formulaire l'aide d'un Assistant


1. Dans la fentre Base de donnes, cliquez sur l'onglet Formulaires. 2. Cliquez sur Nouveau. 3. Dans la bote de dialogue Nouveau formulaire, cliquez sur l'Assistant que vous souhaitez utiliser. Une description de l'Assistant apparat dans la partie gauche de la bote de dialogue. 4. Cliquez sur le nom de la table ou de la requte qui contient les donnes sur lesquelles vous voulez baser votre formulaire. Remarque: Vous n'avez pas besoin d'effectuer cette tape si vous cliquez sur l'option Assistant Formulaire (vous pouvez spcifier l'origine des enregistrements du formulaire dans l'Assistant). 5. Cliquez sur OK. 6. Si vous avez cliqu, lors de l'tape 3, sur l'Assistant Formulaire, l'Assistant Graphique ou l'Assistant Tableau crois dynamique, suivez les instructions des botes de dialogue de l'Assistant. Si vous cliquez sur Formulaire instantan : Colonne simple, Formulaire instantan : Tabulaire ou Formulaire instantan : Feuille de donnes, Microsoft Access cre automatiquement votre formulaire. Si le formulaire obtenu ne produit pas le rsultat escompt, vous pouvez le modifier en mode Cration. Page 90 sur 90

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

Remarque: Si vous cliquez sur l'une des options de formulaire instantan, Microsoft Access utilise le format automatique que vous avez spcifi en dernier, que ce soit par l'Assistant Formulaire ou par la commande Format automatique du menu Format en mode Cration.

3. Crer un formulaire sans Assistant


1 2 3 4 Dans la fentre Base de donnes, cliquez sur l'onglet Formulaires. Cliquez sur Nouveau. Dans la bote de dialogue Nouveau formulaire, cliquez sur Mode Cration. Cliquez sur le nom de la table ou de la requte contenant les donnes sur lesquelles vous voulez baser votre formulaire. Si le formulaire doit tre vierge (par exemple, si vous voulez crer un formulaire fonctionnant comme un Menu Gnral pour ouvrir d'autres formulaires ou tats, ou pour crer une bote de dialogue personnalise), ne procdez aucune slection dans la liste. Remarque: Si vous dsirez crer un formulaire reprenant les donnes d'au moins deux tables, basez votre formulaire sur une requte impliquant les tables correspondantes. Cliquez sur OK.

Microsoft Access affiche la fentre Formulaire en mode Cration.

4. Crer un formulaire fond sur plusieurs tables


L'utilisation de l'Assistant Formulaire est la mthode la plus aise et la plus rapide pour crer un formulaire qui regroupe les donnes d'au moins deux tables. Celui-ci vous permet de gagner du temps car il effectue pour vous toutes les tches essentielles. Dans le premier cran d'un Assistant Formulaire, vous pouvez choisir les champs que vous voulez inclure, lesquels peuvent provenir d'une ou de plusieurs tables. Lorsque vous utilisez l'Assistant Formulaire pour crer un formulaire fond sur plusieurs tables, Microsoft Access cre une instruction SQL sous-jacente au formulaire. L'instruction SQL contient les informations qui permettent de dfinir quelles tables et quels champs utiliser. Grce aux Assistants Formulaire, vous pouvez galement crer un formulaire qui affiche les donnes de plusieurs tables comme un formulaire deux dimensions ou un formulaire hirarchique . Un formulaire qui reprend les produits et les fournisseurs est un exemple de formulaire deux dimensions. Un formulaire hirarchique contient un ou plusieurs sous-formulaires. Les sous-formulaires sont utiles si vous souhaitez afficher les donnes de tables qui utilisent une relation un--plusieurs. Par exemple, un formulaire Catgories contient les donnes d'une table Catgories et d'une table Produits. Si vous voulez prsenter vos donnes de manire hirarchique sans utiliser de sous-formulaire. Par exemple, si votre formulaire est compos de nombreux contrles, vous ne disposez peut-tre pas de l'espace ncessaire pour y inclure un sous-formulaire. Si tel est le cas, vous pouvez utiliser un Assistant Formulaire pour crer des formulaires synchroniss. Le fait de cliquer sur un bouton de commande d'un formulaire entrane l'ouverture d'un autre formulaire synchronis avec l'enregistrement du premier formulaire.

5. Crer un formulaire partir d'enregistrements dj filtrs dans une table, une requte ou un autre formulaire
1. Affichez les enregistrements filtrs puis cliquez sur la flche ct du bouton Nouvel objet dans la barre d'outils. Pour utiliser l'assistant Formulaire automatique ou tat automatique, cliquez sur Formulaire instantan ou tat instantan. Pour spcifier le type de formulaire ou d'tat que vous souhaitez crer, cliquez sur Formulaire ou tat puis effectuez votre choix. Le nouvel objet utilise comme source d'enregistrements la table ou la requte dans laquelle a t cr le filtre et hrite de ce filtre. 2. Remplissez la grille de cration ou apportez toutes modifications souhaites au formulaire ou l'tat puis enregistrez-le. Page 91 sur 91

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

Remarques: Si un ordre de tri a t spcifi dans la table ou la requte sous-jacente, le nouveau formulaire ou tat l'utilise. Si par la suite vous modifiez le filtre dans une table ou une requte, cela est sans effet sur un formulaire ou un tat bas sur un filtre prcdemment cr dans cette table ou requte.

C. Proprits des formulaires


Chaque formulaire possde des paramtres de proprit que vous pouvez modifier de manire transformer le mode de fonctionnement ou l'apparence du formulaire.

1. Dfinition de proprits l'aide de code


Tous les contrles ainsi que les sections, les formulaires et les tats possdent des proprits dont les paramtres peuvent tre dfinis en vue de dterminer leur apparence ou leur comportement. Pour dfinir les proprits des contrles, sections, formulaires et tats, vous pouvez utiliser une procdure Access Basic. Les proprits de la plupart des tables et des requtes peuvent galement tre dfinies de la mme faon. a) Pour dfinir une proprit d'un formulaire, d'un tat ou d'un contrle l'aide de code Dans une procdure Sub, une procdure Function, une procdure vnementielle ou dans la fentre d'excution, procdez comme suit : " Pour dfinir une proprit d'un formulaire, utilisez la syntaxe Forms!nomformulaire.nomproprit. Par exemple, pour affecter le paramtre Vrai la proprit Visible du formulaire Clients, utilisez la ligne de code suivante :
Forms![Clients].Visible = Vrai

" Pour dfinir une proprit d'un tat, utilisez la syntaxe Reports!nomtat.nomproprit. Par exemple, pour affecter le paramtre 1 la proprit 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 dfinir une proprit d'un contrle associ un formulaire ou un tat, utilisez la syntaxe Forms!nomformulaire!nomcontrle.nomproprit ou la syntaxe Reports!nomtat!nomcontrle.nomproprit. Par exemple, la ligne de code suivante attribue le paramtre Vrai la proprit Visible du contrle Saut de page cach figurant sur l'tat Totaux des ventes par montants :
Reports![Totaux des ventes par montants]![Saut de page cach].Visible = Vrai

Page 92 sur 92

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

b) Pour dfinir une proprit d'une section l'aide de code Utilisez la syntaxe Forms!nomformulaire.Section(n).nomproprit ou la syntaxe Reports!nomtat.Section(n).nomproprit pour faire rfrence la proprit que vous souhaitez dfinir. Le nombre entier n reprsente une section donne du formulaire ou de l'tat (pour plus d'informations, voir la rubrique Section. Par exemple, la ligne de code suivante attribue le paramtre Faux la proprit Visible de la section d'en-tte de page figurant dans le formulaire Clients :
Forms![Clients].Section(3).Visible = Faux

Remarques Les proprits de certains contrles, sections, formulaires et tats ne peuvent pas tre dfinies l'aide de code Access Basic, tandis que d'autres ne peuvent tre dfinies de cette faon que dans certains modes. Pour savoir si une proprit donne peut tre dfinie l'aide de code et les modes dans lesquels l'opration est possible, voir la rubrique d'aide consacre cette proprit. (Si la rubrique ne fait tat d'aucune restriction quant aux modes dans lesquels la proprit peut tre dfinie, cela signifie que l'opration est possible dans les modes Cration, Formulaire et Feuille de calcul.) La plupart des proprits peuvent tre dfinies en mode Aperu avant impression ou pendant l'impression des tats et des formulaires. Vous devez toutefois tenir compte des exceptions suivantes. Les proprits suivantes ne peuvent tre dfinies que dans une procdure vnementielle spcifie par le paramtre de la proprit Sur ouverture, et non dans une procdure d'vnement spcifie par le paramtre de la proprit Au formatage, Sur impression ou Au reformatage : " Les proprits spcifiant les donnes source d'un tat, d'un formulaire, d'un sous-tat ou d'un sous-formulaire, telles que Source, Source contrle, Champs fils, Champs pres ou Objet source. " Les proprits dont les paramtres ont pour effet d'augmenter la largeur du formulaire (par exemple, en dplaant un contrle en dehors des limites actuelles du formulaire). " Les proprits suivantes ne peuvent pas tre dfinies l'aide d'une procdure d'vnement en mode Aperu avant impression ou pendant l'impression d'un tat ou d'un formulaire : " Proprits d'vnement telles que Sur ouverture ou Sur clic. " Cumul, Masquer doublons, Auto extensible, Auto rductible. La plupart des proprits d'tats (autres que celles mentionnes prcdemment) peuvent tre dfinies en cours de mise en forme avant impression (lorsqu'intervient l'vnement Imprimer). Toutefois, l'vnement Imprimer est principalement destin tre utilis avec les mthodes d'impression et la proprit ImprSection. La mthode la plus couramment utilise pour mettre des objets en forme et dfinir des proprits, consiste utiliser une procdure d'vnement spcifie en tant que paramtre de la proprit AuFormatage ou AuReformatage. Les proprits de la plupart des tables et des requtes peuvent tre dfinies l'aide de code Access Basic. Cependant, la ou les tables sous-jacentes de la requte doivent tre fermes au moment o vous dfinissez la proprit. Pour obtenir un exemple de dfinition d'une proprit de requte, cliquez sur Exemple : Proprit de requte. Dans le cas de certaines proprits de tables et de requtes, telles que les proprits s'appliquant aux index, vous pouvez utiliser les proprits objet d'accs aux donnes correspondantes pour les dfinir l'aide de code Access Basic. Pour obtenir une liste de ces proprits, voir la rubrique Objets et collections d'accs aux donnes. Les proprits figurant dans la feuille des proprits par dfaut ne peuvent pas tre dfinies l'aide de code Access Basic. Vous pouvez indiquer une variable lorsque vous faites rfrence une proprit. Utilisez une instruction Dim pour dclarer une variable en tant que type de donne objet contenant la proprit que vous souhaitez dfinir. Ensuite, utilisez une instruction Set pour attribuer une rfrence objet Page 93 sur 93

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

cette variable pour l'objet dont vous souhaitez dfinir la proprit. Par exemple, si vous attribuez une rfrence au formulaire Clients et la variable MonFormulaire l'aide de l'instruction Set MonFormulaire = Forms![Clients], vous pouvez affecter la valeur Faux la proprit Visible du formulaire Clients :
MonFormulaire.Visible = Faux

Vous pouvez remplacer ![nomobjet] par ("nomobjet") dans la syntaxe. Par exemple, Forms![Clients] correspond Forms("Clients"). Vous pouvez galement utiliser la syntaxe Forms!nomformulaire.Properties("nomproprit") ou la syntaxe Forms!nomformulaire.Properties(nomvariable), o nomvariable reprsente le nom de la variable laquelle la proprit a t attribue en vue de faire rfrence une proprit de formulaire.

2. Proprits
Les proprits non suivies d'un astrisque s'appliquent aux formulaires et non leurs sections. Un seul astrisque (*) indique que la proprit s'applique uniquement aux sections de formulaire, et deux astrisques (**) signifient que la proprit concerne la fois les formulaires et leurs sections. a) Affich autoris (ViewsAllowed) / Affich par dfaut (DefaultView) Affichage par dfaut (DefaultView)spcifie le mode d'ouverture d'un formulaire. Affichage autoris (ViewsAllowed)dtermine si les utilisateurs peuvent passer indiffremment du mode Feuille de donnes au mode Formulaire en choisissant, dans le menu Affichage, la commande Formulaire ou Feuille de donnes. Description Affiche un enregistrement la fois. (Paramtre par dfaut). Affiche plusieurs enregistrements (autant que la fentre active peut en contenir), chacun dans une section Dtail du formulaire diffrente. Affiche les champs du formulaire disposs en lignes et en colonnes, comme dans une feuille de calcul.

La proprit Affichage par dfaut (DefaultView) utilise les paramtres suivants : Paramtre Mode simple Mode continu Feuille donnes

La proprit Affichage autoris (ViewsAllowed) utilise les paramtres suivants : Paramtre Les deux Formulaire Feuille donnes Description (Paramtre par dfaut). Les utilisateurs peuvent passer indiffremment du mode Formulaire au mode Feuille de donnes. Les utilisateurs ne peuvent pas passer en mode Feuille de donnes. Les utilisateurs ne peuvent pas passer en mode Formulaire.

Les utilisateurs peuvent visualiser des donnes en mode Formulaire ou en mode Feuille de donnes. En mode Formulaire, un formulaire est affich en mode simple ou en mode continu. Les proprits Affichage par dfaut (DefaultView) et Affichage autoris (ViewsAllowed) dterminent le mode d'affichage des formulaires et s'il est possible de les afficher dans diffrents modes. Les conditions suivantes peuvent tre obtenues en combinant ces proprits. Affichage par dfaut (DefaultView) Formulaires simples, continus ou Feuille de donnes Affichage autoris (ViewsAllowed) Les deux Description Les utilisateurs peuvent passer indiffremment du mode Formulaire au mode Feuille de donnes. Les utilisateurs ne peuvent pas passer du mode Formulaire au mode Feuille de donnes.

Formulaires simples ou continus Formulaire

Page 94 sur 94

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

Affichage par dfaut (DefaultView)

Affichage autoris (ViewsAllowed) Feuille de donnes

Description Les utilisateurs peuvent passer au mode Feuille de donnes mais ne peuvent pas revenir au mode Formulaire. Cette combinaison est cependant dconseille. Les utilisateurs peuvent passer au mode Formulaire mais ne peuvent pas revenir au mode Feuille de donnes. Cette combinaison est cependant dconseille. Les utilisateurs ne peuvent pas passer du mode Feuille de donnes au mode Formulaire.

Feuille de donnes

Formulaire

Feuille de donnes

b) Afficher slecteur (RecordSelectors) Dtermine si un formulaire affiche des slecteurs d'enregistrements. Le paramtrage de la proprit Afficher slecteur (RecordSelectors) est le suivant : Paramtrage Oui Non Description Paramtre par dfaut. Chaque enregistrement possde un slecteur d'enregistrements. Aucun enregistrement ne possde de slecteur d'enregistrements.

Vous pouvez dfinir cette proprit dans la feuille des proprits, ou en utilisant une macro ou Access Basic. c) Aprs insertion (AfterInsert) / Avant insertion (BeforeInsert) Avant insertion survient lorsque l'utilisateur tape le premier caractre d'un nouvel enregistrement, avant la cration effective de l'enregistrement. Aprs insertionsurvient aprs l'ajout d'un nouvel enregistrement.

Vous pouvez utiliser une procdure vnementielle AfterInsert ou une macro Aprs insertion pour lancer de nouveau une requte sur une feuille de rponses dynamique chaque fois qu'un nouvel enregistrement est ajout. Les vnements Avant insertion et Aprs insertion sont semblables aux vnements Avant MAJ et Aprs MAJ. Ils se produisent dans l'ordre suivant : Avant insertion, Avant MAJ, Aprs MAJ et Aprs insertion. Le tableau suivant vous montre comment ces vnements agissent les uns sur les autres. vnement Avant insertion Avant MAJ Aprs MAJ Aprs insertion Survient lorsque L'utilisateur tape le premier caractre d'un nouvel enregistrement. L'utilisateur met jour l'enregistrement. L'enregistrement est mis jour. L'enregistrement mis jour est un nouvel enregistrement. d) Aprs MAJ (AfterUpdate) / Avant MAJ (BeforeUpdate) Avant MAJsurvient avant la mise jour des donnes modifies dans un contrle ou un enregistrement. Aprs MAJsurvient aprs la mise jour des donnes modifies dans un contrle ou un enregistrement.

Note: La modification de donnes dans un contrle ou un enregistrement l'aide d'une macro ou de Access Basic ne dclenche pas ces vnements. Remarques Les vnements Avant MAJ et Aprs MAJ se dclenchent lorsqu'un contrle ou un enregistrement est mis jour. Les donnes modifies dans chaque contrle d'un enregistrement sont mises jour au moment o le contrle cesse d'tre actif ou quand l'utilisateur appuie sur Page 95 sur 95

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

ENTREE ou TAB. Lorsque l'enregistrement n'est plus actif, ou que l'utilisateur choisit, dans le menu Fichier, la commande Sauvegarder enregistrement, la totalit de l'enregistrement est mise jour et les donnes sont enregistres dans la base de donnes. Dans le cas de formulaires, l'vnement Avant MAJ permet d'annuler la mise jour d'un enregistrement avant de passer un autre enregistrement. En ce qui concerne les contrles dpendants, la valeur de la proprit Ancienne valeur (OldValue) n'est mise jour qu'aprs l'vnement Aprs MAJ. Mme si l'utilisateur entre une nouvelle valeur dans le contrle, le paramtre de la proprit Ancienne valeur (OldValue) n'est modifi que lorsque les donnes sont enregistres. Si vous annulez une mise jour, la valeur de la proprit Ancienne valeur (OldValue) remplace la valeur figurant dans le contrle. L'vnement Avant MAJ est souvent utilis pour valider des donnes, en particulier lorsqu'il s'agit de validations complexes telles que : " Une validation portant sur plusieurs valeurs d'un formulaire. " Une validation affichant diffrents messages d'erreur en fonction des donnes entres. " Une validation que l'utilisateur peut transgresser. " Une validation qui contient des rfrences des contrles dans d'autres formulaires, ou des fonctions dfinies par l'utilisateur. Note: Pour effectuer des validations simples ou complexes, notamment celles qui exigent l'entre d'une valeur dans un champ ou la validation de plusieurs contrles dans un formulaire, vous pouvez utiliser la proprit Valide si (ValidationRule) pour les contrles et les proprits Valide si (ValidationRule) et Null interdit (Required) pour les champs et les enregistrements de tableau. e) Aprs suppression (AfterDelConfirm) / Avant suppression (BeforeDelConfirm) / Sur suppression (OnDelete) Suppressionsurvient lorsque l'utilisateur excute une action, comme appuyer sur la touche SUPPR pour supprimer un enregistrement. L'vnement a lieu avant la suppression effective de l'enregistrement. Avant suppressionsurvient aprs la suppression d'un ou de plusieurs enregistrements, avant que Microsoft Access n'affiche une bote de dialogue demandant l'utilisateur de confirmer la suppression. Aprs suppressionsurvient une fois que l'utilisateur a confirm les suppressions et que les enregistrements sont rellement supprims, ou lorsque les suppressions sont annules.

Remarques L'vnement Suppression se produit aprs la suppression d'un enregistrement. Ce dernier est alors enregistr dans une zone tampon temporaire. L'vnement Avant suppression a lieu aprs l'vnement Suppression (c'est--dire aprs la suppression de tous les enregistrements), mais avant que la bote de dialogue de confirmation ne s'affiche. L'annulation de l'vnement Avant suppression vous permet de rcuprer un enregistrement stock dans la zone tampon et d'empcher la bote de dialogue de s'afficher. L'vnement Aprs suppression se produit aprs la suppression relle de l'enregistrement ou aprs l'annulation de la suppression. Si l'vnement Avant suppression n'est pas annul, Aprs suppression survient aprs l'affichage de la bote de dialogue demandant la confirmation des suppressions. Cet vnement se produit mme si Avant suppression est annul. La procdure vnementielle AfterDelConfirm retourne des informations sur l'tat de la suppression. Si vous slectionnez et supprimez un jeux d'enregistrements, l'vnement Suppression (mais pas l'vnement Activation) est activ chaque fois qu'un enregistrement particulier est supprim. Cela permet l'utilisateur d'accder aux donnes dans chaque enregistrement avant qu'il soie rellement supprim. L'excution d'une macro ou d'une procdure vnementielle au cours de l'vnement Suppression permet d'empcher ou d'autoriser, selon certaines circonstances, la suppression Page 96 sur 96

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

d'un enregistrement. L'vnement Suppression est galement utilis pour afficher une bote de dialogue demandant l'utilisateur de confirmer la suppression d'un enregistrement. f) Auto centrer (AutoCenter) Dtermine si un formulaire sera automatiquement centr lors de son ouverture dans la fentre de l'application. Les paramtres de la proprit Auto centrer (AutoCenter) sont les suivants : Paramtre Oui Non Description Le formulaire est automatiquement centr l'ouverture. (Paramtre par dfaut). Le formulaire n'est pas automatiquement centr l'ouverture. g) Barre de menu (MenuBar) Spcifie la macro de barre de menus excuter pour afficher une barre de menus personnalise dans une base de donnes ou un formulaire. h) Barre dfilement (ScrollBars) Dtermine si des barres de dfilement apparaissent dans un formulaire ou dans une zone de texte. La proprit Barre dfilement (Scrollbars) utilise les paramtres suivants : Paramtre Aucune Horizontale Verticale Les deux Description (Paramtre par dfaut pour les zones de texte). Le formulaire ou la zone de texte ne possde pas de barre de dfilement. Le formulaire comprend une barre de dfilement horizontale. Ne s'applique pas aux zones de texte. Le formulaire comporte une barre de dfilement verticale. (Paramtre par dfaut pour les formulaires). Le formulaire comporte des barres de dfilement verticale et horizontale. Ne s'applique pas aux zones de texte. i) Bote contrle (ControlBox)

Spcifie si un formulaire comporte un menu Systme en mode Formulaire. Les paramtres de la proprit Bote contrle (ControlBox) sont les suivants : Paramtre Oui Non Description (Paramtre par dfaut). Le formulaire comporte un menu Systme en mode Formulaire. Le formulaire ne comporte pas de menu Systme en mode Formulaire. j) Bouton max (MaxButton) / Bouton min (MinButton)

Bouton Max (MaxButton)spcifie si le formulaire comporte un bouton Agrandissement en mode Formulaire. Bouton Min (MinButton)spcifie si le formulaire comporte un bouton Rduction en mode Formulaire. k) Boutons de dplacement (NavigationButtons) Dtermine si le formulaire comporte des boutons de dplacement et une zone "Enr.". l) Brouill (Dirty) Indique si l'enregistrement en cours a t modifi depuis sa dernire sauvegarde. Le paramtrage de la proprit Brouill (Dirty) est le suivant : Paramtrage Vrai Faux Description L'enregistrement en cours a t modifi. L'enregistrement en cours est inchang.

Cette proprit n'est disponible que dans une macro ou dans Access Basic.

Page 97 sur 97

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

m) ClneRecorset (RecordsetClone) Retourne un objet Jeu d'enregistrements (Recordset) du type feuille de rponses dynamique, reprsentant les enregistrements sous-jacents d'un formulaire. Vous ne pouvez utiliser cette proprit que dans des expressions et dans Access Basic. La proprit ClneRecordset d'un formulaire est un clone de la requte ou de la table sous-jacentes spcifi par le paramtre de la proprit Source (RecordSource) du formulaire. Si, par exemple, un formulaire est fond sur une requte, toute rfrence la proprit ClneRecordset est quivalente au clonage d'un objet Jeu d'enregistrements (Recordset) du type feuille de rponses dynamique, l'aide de la mme requte. Si vous appliquez alors un filtre au formulaire, l'objet Jeu d'enregistrements (Recordset) refltera le filtrage. Utilisez la proprit ClneRecordset lorsque vous souhaitez vous servir d'une mthode, telle FindFirst, qui ne peut pas tre utilise avec des formulaires. Cette proprit vous donne accs toutes les mthodes et les proprits qui sont applicables un objet Jeu d'enregistrements (Recordset) du type feuille de rponses dynamique. Utlisez la proprit Cpte enregistrement (RecordCount) pour compter le nombre d'enregistrements dans un Jeu d'enregistrements (Recordset). L'exemple suivant vous montre comment combiner les proprits Cpte enregistrement (RecordCount) et ClneRecordset pour compter les enregistrements d'un formulaire:
Formulaires![Commandes].RecordsetClone.MoveLast Msg = "Mon formulaire contient " & Formulaires![Commandes].RecordsetClone.RecordCount Msg = Msg & " enregistrements.", , "nombre d'enregistrements" MsgBox Msg

Remarques Lorsqu'un nouveau Jeu d'enregistrements (Recordset) est ouvert, son premier enregistrement est l'enregistrement en cours. Vous pouvez utiliser l'une des mthodes Find ou Move pour rendre actif n'importe quel enregistrement dans le Jeu d'enregistrements (Recordset). Pour synchroniser l'enregistrement en cours du Jeu d'enregistrements (Recordset) et celui du formulaire, attribuez la valeur de la proprit Signet (Bookmark) du formulaire une variable chane, puis attribuez cette dernire la proprit Signet (Bookmark) de Jeu d'enregistrements (Recordset). Si vous fermez le formulaire ou si vous modifiez le jeu d'enregistrements sous-jacents du formulaire, l'objet Jeu d'enregistrements (Recordset) n'est plus valide. Si, par la suite, vous vous rfrez Jeu d'enregistrements (Recordset) ou aux signets dj enregistrs du formulaire ou de Jeu d'enregistrements (Recordset), une erreur se produira. n) Colonnes figes (FrozenColumns) Indique le nombre de colonnes figes dans une feuille de donnes. Les colonnes figes sont affiches sur la gauche de la feuille de donnes et ne bougent pas lorsque vous faites dfiler horizontalement le contenu de la feuille de donnes. o) Compte (Count) Indique le nombre de contrles dans un formulaire ou un tat. p) Couleur fond (BackColor)* Spcifie la couleur de l'intrieur d'un contrle ou d'une section. q) Fen indpendante (PopUp) Dtermine si un formulaire s'ouvre en tant que formulaire indpendant (fentre qui reste toujours visible). r) Fen modale (Modal) Dtermine si un formulaire s'ouvre en tant que formulaire modal (fentre qui reste toujours active jusqu' sa fermeture explicite) restant actif jusqu' sa fermeture. s) Filtrage autoris (AllowFilters) Dtermine si des enregistrements peuvent tre filtrs. Page 98 sur 98

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

t) Formulaire (Form) Sous-formulaire/sous-tatfait rfrence au formulaire associ un contrle sous-formulaire ou l'tat associ un contrle sous-tat. u) Grille X (GridX) / Grille Y (GridY) Spcifient les units horizontale et verticale de la grille d'alignement en mode Cration de formulaire ou en mode Cration d'tat. v) Hauteur (Height) / Largeur (Width) Hauteursections de formulaire et d'tat ; contrles (tous l'exception des sauts de page). Largeurformulaires ; tats ; contrles (tous l'exception des sauts de page). w) Hwnd La valeur de cette proprit est un descripteur (valeur de type Integer) assign la fentre active par Microsoft Windows. x) Impression laser rapide (FastLaserPrinting) Remplace ou non les traits et les rectangles par des rgles lors de l'impression d'un formulaire ou d'un tat sur certaines imprimantes laser. y) Intervalle minuterie (TimerInterval) Spcifie l'intervalle entre deux vnements Minuterie (Cet vnement se produit intervalles rguliers comme, spcifi par la proprit Intervalle minuterie (TimerInterval) du formulaire.), en millisecondes. z) Lgende (Caption) Champsspcifie le texte destin des tiquettes attaches des contrles crs en faisant glisser un champ partir de la liste des champs. Les champs de tables font office d'en-tte de colonne pour le champ quand la table ou la requte est affiche en mode Feuille de donnes. Formulairesspcifie le texte qui apparat dans la barre de titre en mode Formulaire. Etatsspecifie le titre de l'tat qui apparat dans l'aperu avant impression. Boutons et tiquettesspcifie le texte qui apparat dans le contrle. aa) Menu contextuel (ShortcutMenu) Spcifie l'affichage ou non d'un menu contextuel lorsque vous cliquez le bouton droit de la souris alors que le pointeur se trouve sur un objet de formulaire. bb) Me Fait rfrence au formulaire ou l'tat lui-mme, ou au formulaire ou tat associ un sous-formulaire ou un sous-tat. cc) Mode par dfaut (DefaultEditing) / Modif autorise (AllowEditing) Modif autorise (AllowEditing)dtermine si la commande Modification autorise du menu Enregistrements est active lorsque vous ouvrez un formulaire en mode Formulaire ou en mode Feuille de donnes. Mode par dfaut (DefaultEditing)dtermine si le formulaire est ouvert en mode modification, lecture seule, ajout de donnes (ajout d'enregistrements uniquement) ou modification d'enregistrements existants (ajout de nouveaux enregistrements non autoris). Description (Paramtre par dfaut). La commande Modification autorise est active. La commande Modification autorise est dsactive.

La proprit Modif autorise (AllowEditing) utilise les paramtres suivants : Paramtre Oui Non

La proprit Mode par dfaut (DefaultEditing) utilise les paramtres suivants : Page 99 sur 99

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

Paramtre Editions permises Lecture seule Saisie de donnes Ajouts impossibles

Description (Paramtre par dfaut). Vous pouvez modifier, ajouter ou supprimer des enregistrements dans la requte ou la table du formulaire. Vous ne pouvez pas modifier, ajouter ou supprimer des enregistrements moins de choisir la commande Modification autorise. Vous pouvez ajouter de nouveaux enregistrements. Les enregistrements existants ne sont pas accessibles (voir la remarque ci-aprs). Vous pouvez modifier ou supprimer des enregistrements existants. Il est en revanche impossible d'ajouter de nouveaux enregistrements.

Vous pouvez dfinir ces proprits dans la feuille des proprits, ou en utilisant une macro ou Access Basic. Utilisez ces proprits pour crer des formulaires en vue d'y saisir des donnes ou d'en lire le contenu. Vous pouvez les combiner de manire dfinir les conditions ci-aprs. Mode par dfaut (DefaultEditing) Editions permises Modif autorise Description (AllowEditing) Oui ou Non Tous les enregistrements sont accessibles. Vous pouvez les modifier, en ajouter ou en supprimer. Lecture seule Oui Tous les enregistrements sont accessibles. Vous devez choisir la commande Modification autorise pour modifier, ajouter ou supprimer des enregistrements. Non Tous les enregistrements sont accessibles. Vous ne pouvez ni modifier, ni ajouter, ni supprimer des enregistrements. Saisie de donnes Oui Aucun enregistrement existant n'est accessible. Vous pouvez cependant ajouter de nouveaux enregistrements. Non Aucun enregistrement existant n'est accessible. Vous ne pouvez ni modifier, ni ajouter, ni supprimer des enregistrements. Cette combinaison n'est pas recommande. Ajouts impossibles Oui ou Non Tous les enregistrements existants sont accessibles et peuvent tre modifis ou supprims. Vous ne pouvez pas ajouter de nouveaux enregistrements. Note: Le paramtre Saisie de donnes ne vous empche pas totalement de visualiser des enregistrements quand vous utilisez le formulaire. Si le paramtre Oui a t attribu la proprit Filtrage autoris (AllowFilters), vous pouvez afficher tous les enregistrements en choisissant, dans le menu Enregistrements, la commande Afficher tous les enregistrements. dd) Nom (Name)** Spcifie une expression chane dfinie par l'utilisateur, qui identifie un formulaire, un tat, une section ou un contrle. ee) Note (Tag)** Enregistre toute information complmentaire ncessaire la base de donnes, concernant un formulaire, un tat, une section ou un contrle. Contrairement aux autres paramtrages de proprit, celui de Remarque (Tag) n'a aucune incidence sur les attributs d'objet. Cette proprit permet d'attribuer une chane d'identification un objet sans affecter ses autres paramtrages de proprit ni aucun autre lment. Elle est particulirement utile pour vrifier l'identit d'un formulaire, d'un tat, d'une section ou d'un contrle pass une procdure en tant que variable. ff) Open Args (OpenArgs) Contient une expression chane spcifie par l'argument openargs de l'action OuvrirFormulaire (OpenForm) qui ouvre le formulaire. Page 100 sur 100

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

gg) Painting Empche ou force les tat ou les formulaires d'tre redessins. hh) Parent* Fait rfrence au formulaire ou l'tat qui contient un contrle ou une section. ii) Permet MAJ (AllowUpdating) Dtermine les tables que vous pouvez modifier quand un formulaire est affich en mode Formulaire ou Feuille de donnes. Le paramtrage de la proprit Permet MAJ (AllowUpdating) est le suivant : Paramtrage Limite Gnrale Aucune Description (Paramtre par dfaut). Seules les tables par dfaut et les contrles associs leurs champs peuvent tre modifis. La totalit des tables et des contrles associs leurs champs peuvent tre modifis. Aucune table ou contrle associ leurs champs ne peut tre modifi. jj) Quadrillage (ShowGrid) Spcifie si des lignes de quadrillage apparaissent quand la table, la requte ou le formulaire sont affichs en mode Feuille de donnes. kk) Signet (Bookmark) Dfinit un signet qui dsigne, de manire unique, un enregistrement donn dans la requte ou la table sous-jacente du formulaire. Quand un formulaire est cr ou ouvert en mode Formulaire, chaque enregistrement possde dj un signet unique. En Access Basic, vous pouvez enregistrer le signet de l'enregistrement en cours en affectant le paramtre de la proprit Signet (Bookmark) une variable chane de caractres. A tout moment, vous pouvez revenir cet enregistrement en affectant la valeur de cette variable la proprit Signet (Bookmark) du formulaire. Vous pouvez placer un nombre illimit de signets. Pour placer un signet dans un enregistrement diffrent de l'enregistrement en cours, dplacez-vous jusqu' cet enregistrement et affectez le paramtre de la proprit Signet (Bookmark) une variable chane de caractres qui dsigne cet enregistrement. Vous pouvez utiliser les signets dans n'importe quel formulaire qui est entirement gnr partir de tables Microsoft Access. Toutefois, d'autres bases de donnes ne prennent peut-tre pas en charge les signets. Par exemple, vous ne pourrez pas utiliser des signets dans un formulaire gnr partir d'une table attache qui n'a pas d'index primaire. Si vous relancez une requte sur un formulaire, les signets placs dans les enregistrements de ce formulaire ne sont plus valides. Toutefois, si vous ne souhaitez pas que les signets soient affects, vous pouvez toujours choisir Enregistrements Actualiser. Si vous paramtrez la proprit Signet (Bookmark) pour une chane de caractres qui reprsente un enregistrement supprim, vous engendrez une erreur rattrapable. La valeur de la proprit Signet (Bookmark) est diffrente d'un numro d'enregistrement. ll) Source (RecordSource) Spcifie l'instruction SQL, la requte ou la table par dfaut sur laquelle un formulaire ou un tat est fond. mm) Style bordure (BorderStyle) Formulairesdtermine le type de bordure et ses lments (barre de titre, menu Systme, bouton Agrandissement, bouton Rduction) utiliser pour le formulaire. Il est d'usage de choisir des styles de bordure diffrents pour les formulaires standard, les formulaires indpendants et les botes de dialogue personnalises. Contrlesdtermine si la bordure d'un contrle est transparente ou visible. Page 101 sur 101

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

Pour les formulaires, le paramtrage de la proprit Style bordure (BorderStyle) est le suivant : Paramtrage Aucun Trait simple fixe Description Le formulaire ne prsente ni bordure, ni lment associ aux bordures. Le formulaire est entour d'une fine bordure et peut inclure des lments. Il n'est pas dimensionnable (la commande Taille du menu Systme n'est pas disponible). Ce paramtre est souvent employ pour les formulaires indpendants. (Pour qu'un formulaire reste au premier plan de toutes les fentres Microsoft Access, vous devez aussi attribuer sa proprit Fen indpendante (PopUp) la valeur Oui.) (Par dfaut) Le formulaire prsente la bordure par dfaut des formulaires Microsoft Access, il peut contenir des lments de bordure et il est dimensionnable. Ce paramtre est le plus souvent celui des formulaires standard de Microsoft Access. Le formulaire est entour d'une bordure paisse (double) et ne peut inclure qu'une barre de titre et un menu Systme. Il est impossible de l'agrandir, de le rduire ou de le rgler (les commandes Agrandissement, Rduction et Dimension du menu Systme ne sont pas disponibles). Choisissez ce paramtre pour les botes de dialogue personnalises. (Cependant, pour qu'un formulaire sont vritalement modal, sa proprit Fen modale doit avoir la valeur Oui. Si vous souhaitez un formulaire modal indpendant, ce que sont les botes de dialogue, les deux proprits Fen indpendante (PopUp) et Fen modale (Modal) doivent tre gales Oui.)

Dimensionnable

Trait double fixe

Remarque: Pour que les modifications apportes la proprit Style bordure (BorderStyle) d'un formulaire soient effectives, vous devez fermer celui-ci, enregistrer les changements puis l'ouvrir nouveau en mode Formulaire. Pour les contrles, le paramtrage de la proprit Style bordure (BorderStyle) est le suivant : Paramtrage Transparent Standard Description (Paramtre par dfaut pour l'tiquette, le graphique et le sous-tat) La bordure est transparente. (Paramtre par dfaut pour tous les autres contrles) La bordure est visible. nn) Sur activation (OnCurrent) Cette proprit permet de lancer une macro ou la procdure vnementielle Access Basic associe lorsqu'un enregistrement devient actif ou lorsque vous lancez une requte de nouveau pour le formulaire se produit. oo) Sur activ (OnActivate) / Sur dsactiv (OnDeactivate) Utilisez ces proprits pour lancer une macro ou la procdure vnementielle Access Basic associe lorsque l'vnement Activ ou Dsactiv se produit. Activ survient lorsqu'un formulaire ou un tat est activ et devient la fentre active. Dsactiv survient lorsqu'un formulaire est dsactiv au profit d'une fentre Table, Requte, Etat, Macro, Module ou Base de donnes.

Note: L'vnement Dsactiv ne se produit pas si le formulaire cesse d'tre actif au profit d'une bote de dialogue, d'un formulaire dont la proprit Fen indpendant (PopUp) est dfinie sur Oui ou d'une autre application. pp) Sur chargement (OnLoad) / Sur libration (OnUnload) Utilisez ces proprits pour lancer une macro ou la procdure vnementielle Access Basic associe lorsque l'vnement Chargement ou Libration se produit. Chargement survient lorsqu'un formulaire est ouvert et affiche des enregistrements. Il peut se produire au lancement d'une application, lorsque l'action OuvrirFormulaire (OpenForm) est utilise, ou quand l'utilisateur ouvre un formulaire l'aide du bouton Ouvrir de la fentre Base de donnes. L'vnement survient lorsqu'un formulaire est ferm mais avant qu'il ne soit supprim de l'cran. Quand le formulaire est recharg, Microsoft Access affiche de nouveau le formulaire et rinitialise le contenu de ses contrles. L'vnement Libration est provoqu par les actions de l'utilisateur, telles que : Page 102 sur 102

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

Choisir, la commande Fermer du menu Fichier, ou le menu Systme du formulaire. Quitter une application en choisissant le bouton Fin de tche dans la Liste des tches de Microsoft Windows. Quitter Windows alors qu'une application est ouverte. qq) Sur clic (OnClick)**

Utilisez cette proprit pour lancer une macro ou la procdure vnementielle Access Basic associe lorsque l'utilisateur place le pointeur sur un objet, appuie sur un bouton de la souris puis le relche. L'vnement Clic peut galement se produire lorsque le paramtre de la proprit Valeur (Value) d'un contrle est modifi. rr) Sur double clic (OnDblClick)** Utilisez cette proprit pour lancer une macro ou la procdure vnementielle Access Basic associe lorsque l'utilisateur clique deux fois sur un objet l'aide du bouton gauche de la souris et relche le bouton. ss) Sur erreur (OnError) Utilisez cette proprit pour lancer une macro ou la procdure vnementielle Access Basic associe lorsqu'une erreur d'excution se produit dans Microsoft Access. Cela inclut les erreurs du moteur de la base de donnes Microsoft Jet, mais pas les erreurs d'excution de Access Basic.
Sub Form_Error (DataErr As Integer, Response As Integer) Response = DATA_ERRCONTINUE Const DUPLICATEKEY = 3022 If DataErr = DUPLICATEKEY Then MsgBox "A chaque enregistrement d'employ doit correspondre un numro d'employ unique. Veuillez vrifier vos donnes." End If End Sub

tt) Sur fermeture (OnClose) / Sur ouverture (OnOpen) Cette proprit permet de lancer une macro ou la procdure vnementielle Access Basic associe lorsque l'vnement Ouverture ou Fermeture se produit. Ouverture survient pour les formulaires au moment de leur ouverture mais avant l'affichage du premier enregistrement. Cet vnement survient pour les tats avant qu'ils ne soient visualiss ou imprims. Fermeture survient lorsqu'un formulaire ou un tat est ferm ou supprim de l'cran. uu) Sur minuterie (OnTimer) Utilisez cette proprit pour lancer une macro ou la procdure vnementielle Access Basic associe lorsque l'vnement Minuterie se produit (vnement qui se produit intervalles rguliers comme, spcifi par la proprit Intervalle minuterie (TimerInterval) du formulaire). vv) Sur perte focus (OnLostFocus) / Sur rception focus (OnGotFocus) Utilisez ces proprits pour lancer une macro ou la procdure vnementielle Access Basic associe lorsque l'vnement Rception focus ou Perte focus se produit. Rception focus survient lorsqu'un formulaire ou un contrle devient actif. Perte focus survient lorsqu'un formulaire ou un contrle cesse d'tre actif. ww) Sur redimensionnement (OnResize)

Utilisez cette proprit pour lancer une macro ou la procdure vnementielle Access Basic associe lorsqu'un formulaire est ouvert ou redimensionn.

Page 103 sur 103

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

xx) Sur souris appuye (OnMouseDown)** / Sur souris relche (OnMouseUp)** Utilisez ces proprits pour lancer une macro ou la procdure vnementielle Access Basic associe lorsque l'vnement Souris appuye ou Souris relche se produit. Souris appuye survient lorsque l'utilisateur appuie sur un bouton de la souris. Souris relche survient lorsque l'utilisateur relche un bouton de la souris. yy) Sur souris dplace (OnMouseMove)** Utilisez cette proprit pour lancer une macro ou la procdure vnementielle Access Basic associe lorsque l'utilisateur dplace la souris. zz) Sur touche active (OnKeyPress) Utilisez cette proprit pour lancer une macro ou la procdure vnementielle Access Basic associe lorsque l'utilisateur appuie sur une touche ou une combinaison de touches correspondant un code ANSI, puis relche la ou les touches. aaa) Sur touche appuye (OnKeyDown) / Sur touche relche (OnKeyUp) Utilisez ces proprits pour lancer une macro ou la procdure vnementielle Access Basic associe lorsque l'vnement Touche appuye ou Touche relche se produit. Touche appuye survient lorsque l'utilisateur appuie sur une touche pendant que le formulaire ou le contrle est actif. Touche relche survient lorsque l'utilisateur relche une touche pendant que le formulaire ou le contrle est actif. bbb) Taille ajuste (AutoResize) Dtermine si une fentre Formulaire s'ouvre en tant automatiquement dimensionne de manire afficher les enregistrements complets. ccc) Verrouillage (RecordLocks)

Formulaires dtermine comment les enregistrements de la requte ou de la table sous-jacente sont verrouills lors de la mise jour des donnes dans une base de donnes multi-utilisateur. Etats dtermine si les enregistrements de la requte ou de la table sous-jacente sont verrouills pendant qu'un tat est visualis avant impression ou est imprim. Requtes dtermine si les enregistrements d'une requte (en gnral une requte action dans une base de donnes multi-utilisateur) sont verrouills pendant l'excution de la requte. Description (Paramtre par dfaut). Dans les formulaires, un enregistrement n'est pas verrouill lorsque plusieurs personnes le modifient simultanment. Si deux utilisateurs tentent d'enregistrer les modifications d'un mme enregistrement, Microsoft Access envoie un message au second utilisateur qui procde l'enregistrement. Cet utilisateur peut alors abandonner l'enregistrement, copier l'enregistrement dans le Presse-papiers ou craser l'enregistrement modifi par l'autre utilisateur. Ce paramtre n'est utilis que pour les formulaires accessibles en lecture seule ou les bases de donnes utilisateur unique. Il est galement utilis dans les bases de donnes multiutilisateurs pour permettre plusieurs utilisateurs de modifier simultanment le mme enregistrement. Dans les tats, aucun enregistrement n'est verrouill pendant que l'tat est visualis avant impression ou imprim. Dans les requtes, aucun enregistrement n'est verrouill pendant l'excution de la requte.

Le paramtrage de la proprit Verrouillage (RecordLocks) est le suivant : Paramtrage Aucun

Page 104 sur 104

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

Gnral

Enr Modifi

Tous les enregistrements de la requte ou de la table sous-jacente sont verrouills lorsque le formulaire est ouvert en mode Formulaire ou en mode Feuille de donnes, pendant la visualisation ou l'impression de l'tat, ou durant l'excution de la requte. Bien que les utilisateurs puissent lire les enregistrements, il leur est impossible d'en ajouter, d'en supprimer ou d'en modifier aussi longtemps que le formulaire n'est pas ferm, l'impression de l'tat n'est pas termine et l'excution de la requte n'est pas acheve. (Formulaires et requtes uniquement). Une page d'enregistrements est verrouille ds qu'un utilisateur commence modifier un champ de l'enregistrement et le reste jusqu' ce que l'enregistrement soit enregistr. Un enregistrement ne peut tre modifi que par une seule personne la fois. ddd) Visible**

Affiche ou masque un contrle ou une section de formulaire ou d'tat. eee) Vue en cours (CurrentView) Indique la vue utilise pour afficher un formulaire. Le paramtrage de la proprit VueEnCours (CurrentView) est le suivant : Paramtrage 0 1 2 Description Le formulaire est affich en mode Cration. Le formulaire est affich en mode Formulaire. Le formulaire est affich en mode Feuille de donnes.

D. Ouvrir un formulaire
1. Dans la fentre Base de donnes, cliquez sur l'onglet Formulaires. 2. Cliquez sur le formulaire que vous voulez ouvrir. 3. Cliquez sur le bouton Ouvrir pour ouvrir le formulaire en mode Formulaire, ou sur le bouton Cration pour ouvrir le formulaire en mode Cration. Conseil: Vous pouvez galement ouvrir un formulaire en mode Formulaire en le faisant glisser de la fentre Base de donnes vers l'arrire-plan de l'application. Une fois un formulaire ouvert, il est facile de passer d'un mode d'affichage l'autre en cliquant sur le bouton Affichage de la barre d'outils.

E. Ajouter de nouvelles donnes en mode Feuille de donnes ou en mode Formulaire


1. Ouvrez un formulaire en mode Feuille de donnes, ou en mode Formulaire. 2. Cliquez sur Nouvel enregistrement dans la barre d'outils. 3. Tapez vos donnes et appuyez sur TAB pour passer au champ suivant. 4. A la fin de l'enregistrement, appuyez sur TAB pour passer l'enregistrement suivant.

F. Personnaliser un formulaire 1. Modifier l'apparence d'un formulaire


Il est possible de modifier l'apparence de tout un formulaire ou de certaines parties de celui-ci. Pour modifier en une seule opration la police, le corps et la graisse du texte et des filets d'un formulaire, cliquez sur Format automatique dans la barre d'outils. Slectionnez ensuite un nouveau format automatique pour le formulaire.

Page 105 sur 105

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

Pour modifier l'apparence d'un seul contrle (par exemple, une zone de texte), cliquez sur celui-ci afin de le slectionner. Slectionnez ensuite la police, le corps ou une autre option dans la barre d'outils Mise en forme. Pour ajouter une image de fond au formulaire, tapez le nom du fichier image dans la zone de la proprit Image de la feuille de proprits du formulaire ou cliquez sur le bouton Gnrer , ct de la zone de proprit, pour ouvrir la bote de dialogue Insrer une image.

2. Dplacer, redimensionner et aligner les contrles


Vous pouvez dplacer, redimensionner et aligner les contrles slectionns. Pour slectionner un contrle (par exemple, une zone de texte), cliquez dessus. Pour slectionner plusieurs contrles, maintenez la touche MAJ enfonce en cliquant sur chaque contrle. Aprs avoir slectionn un contrle, vous pouvez le dplacer ou le redimensionner. Pour aligner des contrles, slectionnez-les, placez le pointeur sur Aligner dans le menu Format, et cliquez sur Gauche, Droite, Haut, Bas ou la grille.

3. Modifier l'tiquette ou la source du contrle


Vous pouvez modifier le texte ou les donnes affichs dans un contrle. Pour changer le texte d'une tiquette, cliquez sur celle-ci, slectionnez le texte et tapez le nouveau texte.

Pour changer le champ rattach une zone de texte ou un autre contrle, slectionnez d'abord le contrle. Cliquez ensuite sur Proprits dans la barre d'outils afin d'afficher la feuille des proprits. Et slectionner un nom de champ dans la liste du proprit "Source Controle".

4. Ajouter un champ ou un contrle


Vous pouvez ajouter des champs la source du formulaire.

Cliquez sur Liste des champs dans la barre d'outils afin d'afficher la liste des champs prsents dans la source. Grce la bote outils, vous pouvez aussi ajouter des contrles tels que des tiquettes ou des boutons de commande. Pour crer une tiquette, cliquez sur l'outil tiquette dans la bote outils. Cliquez ensuite sur l'endroit du formulaire o vous dsirez placer l'tiquette, tapez le texte et appuyez sur ENTRE. Pour utiliser un assistant afin de crer un contrle, vrifiez que l'outil Assistants Contrle est enfonc dans la barre d'outils et cliquez sur l'outil correspondant au contrle que vous dsirez crer.

XIII. Complments
A. Cration de la macro AutoExec
Vous pouvez crer une macro spciale qui s'excute automatiquement chaque fois que vous ouvrez une base de donnes Microsoft Access. Par exemple, il est possible que vous souhaitiez ouvrir certaines tables et formulaires chaque fois que vous ouvrez une base de donnes. Pour crer une macro qui s'excute chaque fois que vous ouvrez une base de donnes Page 106 sur 106

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

1. Crez une macro. 2. Ajoutez les actions que cette macro doit excuter. 3. Enregistrez la macro sous le nom AutoExec. Vous pouvez utiliser cette macro pour crer une zone de travail personnalise, importer des donnes provenant d'une autre base de donnes ou imprimer un tat journaliern'importe quelle tche que vous souhaitez excuter chaque fois que vous ouvrez la base de donnes. Pour empcher l'excution de la macro AutoExec, maintenez la touche MAJ enfonce lorsque vous ouvrez la base de donnes. Conseil Vous pouvez galement excuter une macro au lancement de Microsoft Access en utilisant l'option de ligne de commande /X <macro>.

B. Cration d'une barre de menu personnalise l'aide du Gnrateur de menu


Le Gnrateur de menu vous permet de crer des barres de menu personnalises que vous pourrez attacher un formulaire ou un tat. Le Gnrateur de menu automatise le processus de cration de macros pour chaque commande de menu et amliore la prsentation graphique de votre barre de menu. Pour crer une barre de menu, vous pouvez partir de rien ou utiliser comme modle l'une des barres de menu de Microsoft Access. Pour crer une barre de menu personnalise 1. Affichez un formulaire ou un tat en mode Cration, puis affichez la feuille des propritsdu formulaire ou de l'tat entiers, et cliquez sur le bouton Gnrateur ct de la proprit Barre de menu. -ouChoisissez dans le menu Fichier la commande Complments, puis Gnrateur de menu dans le sous-menu. Si vous choisissez la commande Gnrateur de menu dans le sous-menu Complments, Microsoft Access affiche la premire bote de dialogue Gnrateur de menu. Choisissez le bouton Nouveau pour afficher la deuxime bote de dialogue Gnrateur de menu. 2. Dans cette deuxime bote de dialogue Gnrateur de menu (si vous avez cliqu sur le bouton Gnrateur de la feuille des proprits, c'est la premire bote de dialogue Gnrateur de menu que vous rencontrez), slectionnez un modle pour votre barre de menu, puis choisissez OK. A partir du modle, vous pouvez ajouter, dplacer ou supprimer des commandes votre guise. Si vous ne prenez pas de modle, slectionnez <Barre de menu vide>. Conseil Si vous n'avez jamais utilis le Gnrateur de menu, vous avez intrt afficher un modle de barre de menu pour voir quoi ressemble une barre de menu dans le Gnrateur de menu. 3. Dans la troisime bote de dialogue Gnrateur de menu, crez la barre de menu. Si vous travaillez partir d'un modle, vous pouvez le modifier en slectionnant des lments dans le bas de la bote de dialogue puis en les dplaant, en les supprimant ou en modifiant leur action. Si vous travaillez sans modle, slectionnez chaque ligne dans la partie infrieure de la fentre puis crez l'lment que vous voulez afficher dans la ligne slectionne. Slectionnez par exemple la premire ligne et tapez-y le nom du premier menu. Puis slectionnez la deuxime ligne et tapez-y la premire commande de ce menu. 4. Lorsque vous avez termin votre barre de menu, choisissez OK. 5. Dans la bote de dialogue Enregistrer sous, entrez un nom pour la barre de menu, puis choisissez OK. Si vous avez ouvert le Gnrateur de menu partir de la proprit Barre de menu, Microsoft Access affiche ce nom dans la zone de proprit. Si vous avez ouvert le Gnrateur de menu partir de la commande Complments, Microsoft Access enregistre la barre de menu sous le nom que vous lui avez donn. Vous pouvez utiliser ce nom dans la proprit Barre de menu ou dans des programmes Access Basic.

Page 107 sur 107

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

Remarque Vous pouvez encore crer une barre de menu personnalise dans la fentre Macro, vous pouvez galement y modifier une barre de menu ou un menu crs l'aide du Gnrateur de menu. Vous pouvez modifier l'aide du Gnrateur de menu une barre de menu que vous avez cre dans la fentre Macro, moins que les macros ne comportent des actions inexistantes dans le Gnrateur de menu.

C. Barre d'outils personnalise


Barre d'outils que vous crez pour votre application. Par opposition, une barre d'outils par dfaut fait partie de Microsoft Access lorsque vous installez ce dernier sur votre ordinateur. Les barres d'outils personnalises n'apparaissent que dans la base de donnes o elles sont cres. Action ShowToolbarAccess Basic Syntaxe: DoCmd ShowToolbar Nom-barre-d'outils [, Affichage] Argument Nom-barre-d'outils Description Expression chane qui est le nom valide d'une barre d'outils prdfinie dans Microsoft Access ou que vous avez cre. L'une des constantes intrinsques suivantes : A_TOOLBAR_YES A_TOOLBAR_WHERE_APPROP A_TOOLBAR_NO

Affichage Remarque: Si vous laissez cet argument vierge, il prend la valeur par dfaut A_TOOLBAR_NO.

Exemple: Cet exemple affiche la barre d'outils personnalise BarreOutils dans toutes les fentres Microsoft Access actives. DoCmd ShowToolbar "BarreOutils", A_TOOLBAR_YES Prsentation d'Access Basic Le langage de programmation Access Basic vous permet d'obtenir dans vos applications un niveau de puissance et de contrle suprieur celui de Microsoft Access. Il s'utilise pour lier des objets dans une application de faon crer un systme cohrent.

D. Fonctions d'aide
L'aide de Microsoft Access est un systme d'information en ligne organis en rubriques, qui peut aussi bien vous aider crer des tables qu' comprendre la signification des messages d'erreur. Pour plus de dtails sur certaines fonctions de l'aide, slectionnez les rubriques ci-aprs. Remarque: Si vous n'tes pas habitu utiliser l'aide, appuyez sur f1 pour en connatre les principes de base.

1. Recherche rapide
Recours l'aide Pour obtenir des informations le plus rapidement possible, utilisez Rechercher pour consulter l'index automatique comportant des centaines de mots cls et de nombreuses rfrences croises. a) Pour obtenir de l'aide sur un lment ou une tche Dans le menu ? (Aide), choisissez Rechercher, ou partir de la fentre d'aide, cliquez sur le bouton Rechercher ou appuyez sur R. Suivez les instructions de la bote de dialogue Rechercher pour trouver les informations souhaites.

Que vous soyez en train d'ajouter un contrle dans un formulaire ou d'laborer une fonction Access Basic dans la fentre Module, le moyen le plus rapide d'obtenir des informations sur la tche en cours est d'utiliser l'aide contextuelle.

Page 108 sur 108

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

b) Pour obtenir de l'aide contextuelle Appuyez sur f1 pour obtenir de l'aide contextuelle sur le contrle, la proprit, la fentre, le mot rserv Access Basic (dans la fentre Module) ou toute autre fonction Microsoft Access sur laquelle se trouve le focus. ou Appuyez sur maj + f1 ou cliquez sur le bouton Aide de la barre d'outils pour afficher le pointeur en forme de point d'interrogation. Vous pouvez ensuite dplacer ce dernier l'intrieur de la fentre et cliquer sur la fonction de votre choix pour accder l'aide contextuelle. Ce pointeur est extrmement pratique pour afficher l'aide relative aux parties de la fentre sur lesquelles le focus ne peut pas se trouver (les boutons de la barre d'outils, par exemple). ou Choisissez ? (Aide) dans le menu contextuel pour obtenir de l'aide contextuelle sur certaines fonctions.

Remarque: Le bouton ?, qui, par dfaut ne figure pas dans les barres d'outils par dfaut, a la mme fonction que la touche f1. Vous pouvez l'ajouter dans une barre d'outils partir de la catgorie Ecran & Aide de la bote de dialogue Personnaliser les barres d'outils. c) Pour afficher la table des matires de l'aide Dans le menu ? (Aide), choisissez Index, ou dans la fentre d'aide, cliquez sur le bouton Index. d) Pour obtenir la dfinition d'un terme Dans la fentre d'aide, cliquez sur le bouton Glossaire ou appuyez sur G. e) Pour que la fentre d'aide soit toujours visible Normalement, lorsque vous cliquez en dehors de la fentre d'aide, elle disparat. Pour qu'elle reste affiche pendant que vous travaillez dans Microsoft Access, choisissez Toujours visible dans le menu ? (Aide) de la fentre d'aide. Faites de mme pour dsactiver cette fonction.

2. A propos du Conseiller
Le Conseiller remplace le didacticiel. Contrairement ce dernier qui vous impose un parcours prdfini, le Conseiller vous enseigne les rudiments de Microsoft Access pendant que vous travaillez dans votre propre base de donnes. Le Conseiller et Microsoft Access sont totalement interdpendants et fonctionnent simultanment, ce qui vous vite de passer constamment de l'un l'autre. Le Conseiller dtaille les procdures d'excution des tches les plus courantes dans Microsoft Access et vous aident crer des bases de donnes compltes. Vous pouvez galement faire appel lui pour des informations sur des tches spcifiques. a) Pour afficher le menu principal du Conseiller

Choisissez Le Conseiller dans le menu ? (Aide) ou cliquez sur le bouton Le Conseiller de la barre d'outils (ou cliquez sur Le Conseiller dans l'index de l'aide).

Pour accder l'un des Conseillers partir de la fentre d'aide, vous pouvez galement utiliser Rechercher ou activer la fentre indpendante Voir aussi partir de nombreuses rubriques. Remarques: Lorsque vous cliquez sur la rubrique Le Conseiller, le Conseiller s'affiche au premier plan, devant la fentre d'application d'Access et, le cas chant, la fentre d'aide. Pour afficher de nouveau cette dernire, cliquez dessus ou appuyez sur Ctrl + Echap, puis slectionnez Aide Microsoft Access dans la Liste des tches Windows. Le Conseiller n'est pas dimensionnable mais vous pouvez le dplacer ou le rduire en cliquant sur la case Rduction dans son angle suprieur droit. L'icne Le Conseiller s'affiche alors dans l'angle infrieur gauche de l'cran et il vous suffit de cliquer dessus pour restituer sa taille initiale. Page 109 sur 109

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

Cliquez sur le bouton Menu du Conseiller pour obtenir la liste des tches que vous pouvez accomplir avec son aide ou pour accder au menu principal du Conseiller. Cliquez sur le bouton Rechercher du Conseiller pour accder des fiches conseil ou des rubriques d'aide connexes. Cliquez sur le bouton Prcdent pour revenir la fiche conseil prcdente. Si vous rptez cette opration plusieurs fois, vous raffichez tous les Conseillers qui vous ont prcdemment assist dans votre travail. b) Pour fermer un Conseiller Cliquez deux fois sur la case du menu Systme.

3. Copie d'exemples de programmation


Les rubriques de la section d'aide Rfrence et Access Basic fournissent des exemples qui peuvent vous aider laborer vos propres procdures. Au lieu de retaper le code de l'exemple, vous pouvez en copier tout ou partie dans le Presse-papiers, puis coller la slection dans la fentre Module. a) Pour copier et coller des exemples de code 1. La fentre de l'exemple tant affiche, cliquez sur le bouton Copier (Microsoft Access affiche la bote de dialogue Copier.) 2. Slectionnez le texte copier. 3. Choisissez le bouton Copier de la bote de dialogue Copier. (Microsoft Access copie le texte dans le Presse-papiers). 4. Affichez la fentre Module et placez le point d'insertion l'endroit o vous voulez coller le texte. 5. Appuyez sur ctrl + v pour coller le texte. Au besoin, modifiez le code en fonction de la procdure. Remarque: Si vous cliquez dans la fentre Microsoft Access sans avoir ferm la bote de dialogue Copier, revenez cette dernire l'aide de la combinaison de touches alt + tab.

XIV. Exemple dapplication


Nom du champ Table : rubrique Rubrique Nom Table : sous rubrique Sous rubrique Rubrique Nom Table : budget Anne deffet Sous rubrique Budget Table : opration N Anne deffet Mois deffet Type de donnes Texte Texte Texte Texte Texte Numrique Texte Montaire NumroAuto Numrique Numrique Taille du champ 4 50 4 4 50 Entier 4 Montaire Entier long Entier Octet Page 110 sur 110

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

Date dopration Dsignation de lopration Sous rubrique Dpence Money23 Table : convertion Anne Mois Taux Relations :

Date/Heure Texte Texte Montaire Numrique Numrique Numrique Montaire

100 4 Montaire Octet Entier Octet Montaire

Objectifs : " Cration dun formulaire, en colonnes, de gestion24 des valeurs du budget par anne et par rubrique, les valeurs seront introduit pour chaque ligne budgtaire (sous rubrique) en $, avec affichage automatique de leurs contrevaleur en DH. " Cration dun formulaire, en fiche, de gestion des dpenses, les valeurs seront introduit soit en $ soit en DH, avec affichage automatique de leurs contrevaleur. " Cration dun tat rcapitulant toutes les dpenses pour un mois et une anne donne. " Cration dun tat donnant le total des dpenses par anne par mois et par sousrubrique. " Cration dun tat donnant par anne et par sousrubrique le total des dpenses et le reliquat du budget de dpart. " Cration dun formulaire pour ouvrir les autres formulaires et tats. " Cration dune macro Autoexec pour le lancement automatique de ce formulaire au dmarrage. " Cration dun barre doutils personnalise contenant les taches les plus courantes.

23 24

1 : dpense en DH; 2 : dpense en $ Gestion : Ajout, modification et effacement

Page 111 sur 111

Institut Agronomique et Vtrinaire Hassan II

M. LAHLOU

Page 112 sur 112

Vous aimerez peut-être aussi