Comprendre le SGBDR Microsoft Accessdcanl.free.fr/Etudes/COURS_IUT_IQ1/BDD/Microsoft Access... ·...

Preview:

Citation preview

© Richard CHBEIREmail : richard.chbeir@u-bourgogne.fr

Comprendre le SGBDR Comprendre le SGBDR Microsoft AccessMicrosoft Access

Bibliographie :• « Programmation Access pour Windows 95 », Edition Micro Application ISBN : 2-7429-0635-5 • « Au quotidien Microsoft Access 97 » Edition Microsoft Press, ISBN: 2-84082-159-1

2© richard.chbeir@iut-dijon.u-bourgogne.fr

Plan de la prPlan de la préésentationsentation1. Introduction2. Création d’une BD Access3. Tables4. Requêtes5. Formulaires6. Etats7. Macros8. Pages Web9. Modules10. Administration Access

3© richard.chbeir@iut-dijon.u-bourgogne.fr

1.1. IntroductionIntroduction

4© richard.chbeir@iut-dijon.u-bourgogne.fr

1.1. Introduction Introduction

DDééfinitionfinition

SGBD RelationnelPas cher Facile à utiliserAdapté au PME/PMI

CompatibilitéWindows

Versions1, 2, 95, 97, 2000, et XP (2002), 2003

5© richard.chbeir@iut-dijon.u-bourgogne.fr

1.1. Introduction Introduction

InstallationInstallation

Matériels requisPC

Logiciels requisWindows 3.1, 9x, NT, 200x, XPMicrosoft Office

ProfessionnelPremiumSéparé

6© richard.chbeir@iut-dijon.u-bourgogne.fr

Objets de la BD AccessObjets de la BD AccessTableRequête (Query)Formulaire (Form)Etat (Report)MacroModulePages WEB (uniquement version 2000 et XP)

Manipulables comme des objets WindowsManipulables comme des objets Windows(Copier, Coller, Supprimer, Renommer, etc.)(Copier, Coller, Supprimer, Renommer, etc.)

1.1. IntroductionIntroduction

7© richard.chbeir@iut-dijon.u-bourgogne.fr

1.1. IntroductionIntroduction

Architecture dArchitecture d’’AccessAccess

Tables

Requêtes(Queries)

Etats(Reports)

Formulaires(Forms)

Macros

Modules

ExécutionFonctions

Appel

Déclenchement

Ouverture/filtre

Appel

A

Ouverture/filtre

Exécution Fonctions

AppelAppel

Définition de formulaire, table, etc.

A

Impression/Affichage/filtre

A Exécution des requêtes sur des tables ouvertesFlux de données

8© richard.chbeir@iut-dijon.u-bourgogne.fr

2.2. CrCrééation dation d’’une base une base AccessAccess

9© richard.chbeir@iut-dijon.u-bourgogne.fr

2.2. CrCrééation dation d’’une BD Accessune BD Access

MMééthodesthodes

VideBasée sur des modèles prédéfinis

11© richard.chbeir@iut-dijon.u-bourgogne.fr

3.3. TablesTables

CrCrééation des tablesation des tablesIl y a 2 types de méthodes

1. ManuellesAssistantMode CréationMode Feuille de données

2. AutomatiquesScriptsDonnées Externes

12© richard.chbeir@iut-dijon.u-bourgogne.fr

3.3. TablesTables

MMééthodes manuellesthodes manuelles1.1. AssistantAssistant

13© richard.chbeir@iut-dijon.u-bourgogne.fr

3.3. TablesTables

MMééthodes manuellesthodes manuelles2. Mode Création

Type de données» Texte» Mémo» Numérique» Date/heure» Monétaire» NuméroAuto» Oui/Non» Objet OLE» Lien hypertexte» Liste de choix

Propriétés– Taille, Format, Masque de saisie, Valeur par défaut, etc.

Clé et index

14© richard.chbeir@iut-dijon.u-bourgogne.fr

3.3. TablesTables

MMééthodes automatiquesthodes automatiques

1. Script VBA partir des logiciels Atelier de Génie Logiciel (AGL)

WinDesign, AMC Designer (PowerDesigner), etc.Passage par les modules

Insertion du scriptExécution

15© richard.chbeir@iut-dijon.u-bourgogne.fr

3.3. TablesTables

MMééthodes automatiquesthodes automatiques2. Données externes

Importer (duplication)Oracle, DB2, Sybase, Foxpro, etc.

Attacher/Lier avec (pointeur)Oracle, DB2, Sybase, Foxpro, etc.Avantages– Client/serveur (Access comme un client)– Développement rapide– Partage simple

16© richard.chbeir@iut-dijon.u-bourgogne.frAccess Comme Client

Access en ClientAccess en Client

RéseauOu en local

Tables Access SybaseOracle

Attacher ODBC

Table A Table STable O

Attacher ODBCAttacher .mdb

3.3. TablesTables

17© richard.chbeir@iut-dijon.u-bourgogne.fr

Mode de visualisationMode de visualisationMode de crMode de crééationation

Il sert Il sert àà crcrééer ou er ou àà modifier la modifier la structure dstructure d’’une tableune table

Mode Feuille de donnMode Feuille de donnééesesIl permet de saisir les donnIl permet de saisir les donnéées, faire es, faire

des tris, appliquer des filtres, etc.des tris, appliquer des filtres, etc.

3.3. TablesTables

18© richard.chbeir@iut-dijon.u-bourgogne.fr

4.4. RequêtesRequêtes

19© richard.chbeir@iut-dijon.u-bourgogne.fr

4.4. RequêtesRequêtes

Types de requêteTypes de requêteRequêtes de sélectionRequêtes paramétrées Requêtes action (Création, Ajout, Mise à jour, Suppression, etc.)

20© richard.chbeir@iut-dijon.u-bourgogne.fr

4.4. RequêtesRequêtes

Mode de visualisationMode de visualisation

Mode de créationIl sert à créer une nouvelle requête ou à en modifier une existante

Mode SQLIl permet de saisir du code SQL, et/ou de modifier le code SQL généré par Access

Mode Feuille de donnéesIl sert à afficher plusieurs lignes à la fois

21© richard.chbeir@iut-dijon.u-bourgogne.fr

4.4. RequêtesRequêtes

CrCrééation dation d’’une requêteune requêteChoisir l’onglet RequêteCliquer sur NouveauChoisir Mode Création/AssistantSélectionner les tables (ou de requêtes) utiles pour la création de la nouvelle requête Etablir les liens entre ces tables et ces requêtes (quand ils n’existent pas)Ecrire les critères et/ou les opérations d'interrogationChoisir le type de la requêteEnfin, lancer de la requête (!).

22© richard.chbeir@iut-dijon.u-bourgogne.fr

4.4. RequêtesRequêtes

ExempleExempleVoici le schéma d’une BD

23© richard.chbeir@iut-dijon.u-bourgogne.fr

Trouver Nom, adresse, ville et téléphone de tous les clients qui habitent Londres

En SQL:SELECT Nom, Adresse, Ville, Téléphone

FROM Clients

WHERE Ville = "London“

Requête Requête de sde séélectionlection

!

1

5

4

3

2

•• En QBEEn QBE

4.4. RequêtesRequêtes

24© richard.chbeir@iut-dijon.u-bourgogne.fr

Requête paramRequête paraméétrtrééeeTrouver Nom, adresse, ville, téléphone et fax d’un

client donnéEn SQL:SELECT Nom, Adresse, Ville, Téléphone, Fax

FROM Clients

WHERE Nom =[Donnez le nom]

•• En QBEEn QBE

4.4. RequêtesRequêtes

25© richard.chbeir@iut-dijon.u-bourgogne.fr

4.4. RequêtesRequêtes

Requête avec opRequête avec opéérationrationTrouver la quantité du produit numéro 1 vendu par

chaque employéEn SQL:SELECT Commandes.[N° employé], Sum([Détails commandes].Quantité)

FROM Commandes, [Détails commandes]

WHERE (((Commandes.[N° commande])=[Détails commandes].[N° commande]))

GROUP BY Commandes.[N° employé], [Détails commandes].[Réf produit]

HAVING ((([Détails commandes].[Réf produit])=1));

•• En QBEEn QBE

26© richard.chbeir@iut-dijon.u-bourgogne.fr

4.4. RequêtesRequêtes

TrTrèès importants importantQuels sont les caractères génériques

acceptés dans les critères d’interrogation ?

? Tout caractère unique* Aucun ou plusieurs caractères quelconques# Tout chiffre unique (de 0 à 9)Comme (LIKE en SQL) permet de faire une comparaison approximative

Exemple: Comme ## PetitJean dans adresse:toutes les personnes qui habitent la rue PetitJean et dont le numéro est compris entre 00 et 99

27© richard.chbeir@iut-dijon.u-bourgogne.fr

4.4. RequêtesRequêtes

Conseil pour les requêtes Conseil pour les requêtes dd’’actionaction

Avant de créer une requête d’action, Ecrivez d ’abord la même requête de sélection, Testez-laPuis convertissez-la en une requête action

28© richard.chbeir@iut-dijon.u-bourgogne.fr

5.5. FormulairesFormulaires

29© richard.chbeir@iut-dijon.u-bourgogne.fr

5.5. FormulairesFormulaires

DDééfinitionfinitionPermet de saisir, modifier, et visualiser des données

Les données d'un formulaire peuvent être:Dépendantes d'une table ou d'une requête.

Indépendantes (texte, logo, calcul, ...).

30© richard.chbeir@iut-dijon.u-bourgogne.fr

Types de FormulairesTypes de FormulairesFormulaires en colonne simpleFormulaires en colonne simple Formulaires TabulairesFormulaires Tabulaires

5.5. FormulairesFormulaires

31© richard.chbeir@iut-dijon.u-bourgogne.fr

CrCrééationationMode de création

Il sert à créer un nouveau formulaire ou à en modifier un existant

Mode Formulaire (ou colonne simple)Mode Formulaire (ou colonne simple)Il est utilisIl est utiliséé pour crpour crééer, saisir et afficher des donner, saisir et afficher des donnéées. La es. La

visualisation des donnvisualisation des donnéées est faite fiche par fiche.es est faite fiche par fiche.

Mode TabulaireMode TabulaireIl sert Il sert àà afficher plusieurs lignes afficher plusieurs lignes àà la foisla fois

Mode feuille de donnMode feuille de donnééesesIl ressemble beaucoup et Il ressemble beaucoup et éétrangement au mode tabulairetrangement au mode tabulaire

5.5. FormulairesFormulaires

32© richard.chbeir@iut-dijon.u-bourgogne.fr

5.5. FormulairesFormulaires

Formulaire en mode crFormulaire en mode crééationation

Barre à outils

Formulairevierge

Différents modes

33© richard.chbeir@iut-dijon.u-bourgogne.fr

5.5. FormulairesFormulaires

Structure dStructure d ’’un formulaireun formulaireUn formulaire est décomposé en plusieurs parties:

En-tête de formulaire (utilisé pour la présentation à l ’écran). Ex: titre du formulaire, noms de colonnes.En-tête de page : idem que l’en-tête de formulaire. Utilisé au niveau impression uniquementDétail: contient les enregistrements (données).Pied de formulaire : idem que l’en-tête.Pied de page (utile si vous voulez imprimer un formulaire). Ex: numéro de pages

Par défaut, seule la partie détail apparaît

Mais comment les afficher ?

34© richard.chbeir@iut-dijon.u-bourgogne.fr

La boLa boîîte te àà outilsoutils

Étiquette Zone de texteGroupe d'options Bouton basculebouton d'option Case a cocherliste modifiable Zone de listeBouton GraphiqueObjet indép. Objet dépendant saut de page Contrôle d’OngletsSous formulaire traitRectangle Autres

5.5. FormulairesFormulaires

35© richard.chbeir@iut-dijon.u-bourgogne.fr

5.5. FormulairesFormulaires

Les contrôlesLes contrôles

Tout le contenu d'un formulaire est affiché àl’aide d’éléments appelés contrôles :

Contrôle dépendant :

Associé à un champs provenant d’une table ou d’une requête

Contrôle indépendantPour afficher des rectangles, des traits et des images

Contrôle calculé :

Pour afficher des valeurs provenant d'une expression Par exemple : [Prix unitaire] * 0,75

36© richard.chbeir@iut-dijon.u-bourgogne.fr

5.5. FormulairesFormulaires

Les contrôlesLes contrôlesChaque contrôle a ses propres propriétés (Format, Données, événements, etc.)

Les événements dépendent de chaque type de contrôle

37© richard.chbeir@iut-dijon.u-bourgogne.fr

Comment crComment crééer un contrôle er un contrôle ddéépendant ?pendant ?

1- Je click

2- Je glisse-déplace

5.5. FormulairesFormulaires

38© richard.chbeir@iut-dijon.u-bourgogne.fr

Et les autres contrôles ? Et les autres contrôles ? Exemple d'un contrôle dépendant : la propriétéSource contrôle contient le nom d'un champ de la source du formulaire. Exemple d'un contrôle indépendant : la propriété Source contrôle est vide.

L'intérêt des contrôles indépendants, réside dans la possibilité de créer des champs calculés.

5.5. FormulairesFormulaires

39© richard.chbeir@iut-dijon.u-bourgogne.fr

5.5. FormulairesFormulaires

La notion de champ calculLa notion de champ calculéé

Un champ calculé est une expression constituée de toute combinaison valide d'opérateurs, de fonctions et de références à d'autres contrôles. Pour afficher la date dans un contrôle, il suffit de taper dans Source contrôle l'expression =Date().

40© richard.chbeir@iut-dijon.u-bourgogne.fr

5.5. FormulairesFormulaires

Verrouiller les champs Verrouiller les champs calculcalculééss

41© richard.chbeir@iut-dijon.u-bourgogne.fr

5.5. FormulairesFormulaires

DDéésignation signation

Pour réutiliser la valeur saisie dans un champ, il faut juste noter le nom du champ (ou contrôle) concerné placé entre crochets.Exemple: afficher la valeur saisie dans le champ Port (du même formulaire) augmenté de 10 =[port] + 10.

42© richard.chbeir@iut-dijon.u-bourgogne.fr

5.5. FormulairesFormulaires

DDéésignationsignationPour récupérer la valeur:

d'un contrôle dans un autre formulaire : Formulaires![NomFormulaire]![NomContrôle]

43© richard.chbeir@iut-dijon.u-bourgogne.fr

5.5. FormulairesFormulaires

Le gLe géénnéérateur d'expression rateur d'expression Access est pourvu d'un ensemble de fonctions prédéfinies très riche. Pour les découvrir, il suffit de faire appel au Générateur d'expression en cliquant sur

Cet outil est accessible aux différents endroits autorisant l'entrée d'une expression (Requête, formulaire, et état)

44© richard.chbeir@iut-dijon.u-bourgogne.fr

5.5. FormulairesFormulaires

Comment afficher lComment afficher l’’heure ?heure ?

45© richard.chbeir@iut-dijon.u-bourgogne.fr

5.5. FormulairesFormulaires

A quoi servent les boutons ?A quoi servent les boutons ?

Ils sont utilisés pour différents types opérationsOuvrir formulaire, fermer formulaire, …Navigation dans les enregistrement (suivant, précédent, …)Lancer Word, Quitter l’applicationImpressionCalculs

Ils peuvent être générés automatiquement (il suffit de suivre les instructions qui apparaissent

Démonstration

46© richard.chbeir@iut-dijon.u-bourgogne.fr

5.5. FormulairesFormulaires

Et les listes dEt les listes dééroulantes ?roulantes ?Permettent de sélectionner une valeur dans une liste prédéfinie. Les valeurs peuvent être extraites à partir d'une table ou d'une requête.Deux types de listes

une zone de liste qui comprend une série de valeurs parmi lesquelles vous pouvez faire votre choix. Cette liste reste toujours affichée dans le formulaire.une zone de liste modifiable : c'est la combinaison d'une zone de texte et d'une zone de liste. Vous pouvez soit

choisir une valeur dans la liste, tapez une nouvelle valeur.

47© richard.chbeir@iut-dijon.u-bourgogne.fr

5.5. FormulairesFormulaires

Pourquoi un sousPourquoi un sous--formulaire ?formulaire ?

Un sous-formulaire est tout simplement un formulaire inclus dans un autre formulaire.Un sous-formulaire peut servir à afficher

Des relations un-unDes relations un-plusieurs

Exemples:Affichage des commandes par Client (Utilisation d’un seul sous-formulaire)Affichage pour chaque client de la liste des commandes obtenus et des détails de chaque commande (Utilisation de deux sous-formulaires)

48© richard.chbeir@iut-dijon.u-bourgogne.fr

5.5. FormulairesFormulaires

Conseils pratiquesConseils pratiques

Utiliser Access pour générer un menu principal (outils/Utilitaire de base de données/Gestionnaire de menu Général)Utiliser des formulaires :

D’orientationDe maintenance de la BD

49© richard.chbeir@iut-dijon.u-bourgogne.fr

6.6. EtatsEtats

50© richard.chbeir@iut-dijon.u-bourgogne.fr

6.6. EtatsEtats

DDééfinitionfinition

Permet de visualiser et d’imprimer des donnéesProvenant d'une table ou d'une requête,

indépendantes (texte, graphiques, et statistiques, ..)

51© richard.chbeir@iut-dijon.u-bourgogne.fr

6.6. EtatsEtats

Comment crComment crééer un er un éétat ?tat ?

Démonstration

52© richard.chbeir@iut-dijon.u-bourgogne.fr

7.7. MacrosMacros

53© richard.chbeir@iut-dijon.u-bourgogne.fr

7.7. MacrosMacros

DDééfinitionfinitionC’est un ensemble d’actions successives. Ces actions correspondent à des tâches prédéfinies dans AccessPlusieurs types :

Ouvrir un formulaire, Exécuter une requête, Imprimer un état, etc.Afficher des messages (d’alerte, d’erreur, etc.)Changer le pointeur de la sourisPersonnaliser le menu des formulairesQuitter une application, lancer Internet, etc.Etc.

54© richard.chbeir@iut-dijon.u-bourgogne.fr

7.7. MacrosMacros

Comment crComment crééer une macro ?er une macro ?

Démonstration (encore une)

55© richard.chbeir@iut-dijon.u-bourgogne.fr

7.7. MacrosMacros

Macros importantesMacros importantesCertaines macros ont une certaine importance

AutoExec : Elle est exécutée lors du lancement de la baseAutoKeys : Elle permet de donner à certaines touches du clavier certaines actions spécifiques

56© richard.chbeir@iut-dijon.u-bourgogne.fr

7.7. MacrosMacros

Exemple Macro 1Exemple Macro 1

Autokeys:1- Saisir dans nom de macros

^A or ^4 CTRL+ un caractère{F1} la touche F1^{F1} CTRL+F1+{F1} SHIFT+F1%+{ F1} ALT+SHIFT+F1

22-- Les actions correspondantesLes actions correspondantes

57© richard.chbeir@iut-dijon.u-bourgogne.fr

7.7. MacrosMacros

Exemple Macro 2Exemple Macro 2

AutoExec

58© richard.chbeir@iut-dijon.u-bourgogne.fr

7.7. MacrosMacros

Comment ?Comment ?

Insérer une macro dans un événement

59© richard.chbeir@iut-dijon.u-bourgogne.fr

7.7. MacrosMacros

Comment ? Comment ?

Accéder à une commande dans une macro

60© richard.chbeir@iut-dijon.u-bourgogne.fr

Exemple Macro 3Exemple Macro 3Pour créer une barre de menus

1. Créer chaque menu dans une macro séparée

2.2. DDééfinir le contenu menu dans une autre macrofinir le contenu menu dans une autre macro

7.7. MacrosMacros

61© richard.chbeir@iut-dijon.u-bourgogne.fr

Exemple Macro 3Exemple Macro 33. Préciser le menu du formulaire4.4. Tester le rTester le réésultatsultat

7.7. MacrosMacros

62© richard.chbeir@iut-dijon.u-bourgogne.fr

ImportantImportant

Toute macro peut être convertie en VBVBA

Mais comment ?

63© richard.chbeir@iut-dijon.u-bourgogne.fr

8.8. Pages WebPages Web

64© richard.chbeir@iut-dijon.u-bourgogne.fr

8.8. Pages WebPages Web

CrCrééationation

65© richard.chbeir@iut-dijon.u-bourgogne.fr

RemarqueRemarque

Access permet de créer les pagesMais ne les gère pasIl faut juste un lien vers la page

Si on déplace la BDD, Access est incapable de l’interdire

DDéémonstrationmonstration

66© richard.chbeir@iut-dijon.u-bourgogne.fr

9.9. ModulesModules

67© richard.chbeir@iut-dijon.u-bourgogne.fr

Visual Basic pour Application (VBA)

Visual Basic pour Application Visual Basic pour Application (VBA)(VBA)

9.9. ModulesModules

68© richard.chbeir@iut-dijon.u-bourgogne.fr

9.9. ModulesModules

Quand utiliser les modules ?Quand utiliser les modules ?

Répondre à un besoin complexeGérer les erreursGérer des évènements paramétrésInteragir avec une autre application ou avec DDE (Dynamic Data Exchange)Appeler des API de WindowsManipuler les jeux d’enregistrementsDésirer des meilleurs performances (Maintenance)Etre pro quoi ;)

69© richard.chbeir@iut-dijon.u-bourgogne.fr

10.10. Administration AccessAdministration AccessDBADBA

70© richard.chbeir@iut-dijon.u-bourgogne.fr

10.10. Administration AccessAdministration Access

DDééfinitionfinitionDéfinition du schémaAnalyse

De performance, table, etc.ConversionCompressionRéparationCryptageMigration Sécurité

Autorisation, groupe d’utilisateur, mots de passe, etc.Réplication

71© richard.chbeir@iut-dijon.u-bourgogne.fr

10.10. Administration AccessAdministration Access

SchSchééma de la basema de la base

72© richard.chbeir@iut-dijon.u-bourgogne.fr

Utilisation distribuUtilisation distribuéée de d’’une une DBDB

10.10. Administration AccessAdministration Access

Access a été conçu pour fonctionner en mode multi-utilisateurs (accès simultané à la même base par plusieurs personnes). Pour cela, une méthode simple consiste à"fractionnée" la base (base.mdb) dans une nouvelle base partagée (base_fractionnée.MDB) .

73© richard.chbeir@iut-dijon.u-bourgogne.fr

Comment fractionner une Comment fractionner une base (1)base (1)

10.10. Administration AccessAdministration Access

Access 2000-XP: menu principal Outils/Utilitaires de base de donnéesAccess 95-97 : menu principalOutils/Compléments

74© richard.chbeir@iut-dijon.u-bourgogne.fr

Comment fractionner une Comment fractionner une base (2)base (2)

10.10. Administration AccessAdministration Access

Enregistrer sous : le nom de la base MDB partagée (ex: base_fractionnée.MDB)Ce fichier doit être placé dans un dossier partagé sur le réseau. Ce fichier contient uniquement les tables.

75© richard.chbeir@iut-dijon.u-bourgogne.fr

10.10. Administration AccessAdministration Access

RRéésultatsultatLa base initiale base.mdb contient maintenant des tables attachées (ou liées) uniquement.

Naturellement, Access devra être installé sur chaque poste à partir duquel l'application pourra être lancée.

76© richard.chbeir@iut-dijon.u-bourgogne.fr

10.10. Administration AccessAdministration Access

La mise La mise àà jour des attaches jour des attaches

Access 2000-XP: menu Outils/Utilitaires de base de données/ Gestionnaire de tables liéesAccess 95-97: menu Outils/Compléments/Mise à jour des liens.

77© richard.chbeir@iut-dijon.u-bourgogne.fr

10.10. Administration AccessAdministration Access

La gestion des conflits d'accLa gestion des conflits d'accèèss

Si deux utilisateurs modifient le même enregistrements de la même table un conflit sera signalé. En fait, le premier utilisateur U1 qui sauvegardera ses modifications pourra poursuivre sans être importuné par son collègue. Par contre, lorsque le deuxième U2 tentera d'en faire de même, il sera averti par l'affichage du message suivant, qu'un changement a eu lieu sur l'enregistrement qu'il tente de modifier.

78© richard.chbeir@iut-dijon.u-bourgogne.fr

A vous maintenantA vous maintenant……

79© richard.chbeir@iut-dijon.u-bourgogne.fr

A rendreA rendre

1. Est-ce qu’Access est capable d’interagir avec Excel? Si oui, Comment ?

2. Quels sont les intérêts de compacter une base Access ?

3. Comment faire une réplication sous Access ?

4. A quoi sert le menu Outils/démarrage ?

Recommended