1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 10 Support de cours rédigé par Bernard COFFIN Université.

Slides:



Advertisements
Présentations similaires
VBA et les actions sur les tables
Advertisements

Initiation aux bases de données et à la programmation événementielle
Cours n°3 Les formulaires
Rappel sur les bases de données et le vocabulaire
Par Fabrice Pasquier Cours IV
1 Initiation aux bases de données et à la programmation événementielle Cours N°9 : Gestion de la cohérence avec des sous-formulaires. Support de cours.
Initiation aux bases de données et à la programmation événementielle
Initiation aux bases de données et à la programmation événementielle
Initiation aux bases de données et à la programmation événementielle
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Transac SQL Intégrité des données.
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
Introduction à Microsoft Access Rachid Kadouche 420-EDB-03 Hiver EDB-03 Rachid Kadouche.
Module 7 : Utilisation de requêtes élaborées
1 Initiation aux bases de données et à la programmation événementielle Responsable : Souheib BAARIR. (le sujet de votre .
Les vues Une vue: c’est une relation virtuelle. Définie par:
Comprendre le SGBDR Microsoft Access – partie 2
Initiation aux bases de données et à la programmation événementielle Cours N°2 : langage d’interrogation de données. (Les requêtes statistiques et autres).
Initiation aux bases de données et à la programmation événementielle
1 Initiation aux bases de données et à la programmation événementielle Cours N°8 : Gestion de la cohérence avec des zones de liste déroulantes. Souheib.
Le Langage de Manipulation de Données LMD Module 6.
SQL Partie 2. SQL est un langage de manipulation de données SQL est un langage de manipulation de données (LMD), cela signifie qu'il permet de sélectionner,
: le tutoriel d’autoformation à la recherche documentaire en Santé Je gère ma bibliographie  Je rédige ma bibliographie : le tutoriel.
Initiation à la navigation sur Internet et à l’utilisation de la Plate-forme l’enseignement à distance Moodle » Issa saley.
Leçon 3: Utiliser les options et enregistrer l’affichage.
Cours de Mme Dominique Meganck - ICC - IFC MICROSOFT ACCESS Un système de gestion de bases de données...
PPE PROJET GBS. But de ce PPE  Le but de ce PPE était de créer un site internet dynamique pour la société GSB, pour cela nous avons du :  Reprendre.
1) Qu’est-ce que BCDI? BCDI est un logiciel informatique de recherche documentaire : C’est le catalogue informatique du CDI. Au collège on travaille principalement.
Développement d’application avec base de données Semaine 3 : Modifications avec Entité Framework Automne 2015.
Bases de données : modèlisation et SGBD Séance 3.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 5 Support de cours rédigé par Bernard COFFIN Université.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 12 Support de cours rédigé par Bernard COFFIN Université.
1 Les bases de données Séance 7 Les fonctions avancées : Opérateurs ensemblistes, Sous-requêtes et transactions.
Introduction à la programmation
Tutoriel n°4 : Administration Technique Formation : profil Administrateur.
Règlement d’examen 2 EPREUVES CoefficientFormedurée E1 : Epreuve scientifique et technique (coef. 2) E11/Economie-droit E12/Mathématiques 1111 CCF 30.
Le réseau web enit.org … Depuis 2003, l’Anienit - Association Nationale des Ingénieurs ENIT – à mis sur pied et finance un serveur web indépendant de l’école.
Chapitre 4 Gestion des disques Module S41. Plan du cours 1. Utilisation de l'outil Gestion des disques 2. Utilisation des disques de base 3. Utilisation.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 11 Support de cours rédigé par Bernard COFFIN Université.
Chapitre 6 Gestion et analyse du système DNS Module S43 1.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 1 Support de cours rédigé par Bernard COFFIN Université.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 6 Support de cours rédigé par Bernard COFFIN Université.
FACTORY systemes Module 5 Page 5-1 Les outils clients Wonderware FORMATION InSQL 7.0.
Initiation aux bases de données et à la programmation événementielle Outil de création des tables Support de TD rédigé par Bernard COFFIN Université Paris.
La création des données d’exemplaire pour un exemplarisateur Sudoc.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 4 Support de cours rédigé par Bernard COFFIN Université.
1 Les bases de données Séance 5 -- Le Langage de Définition de Données ou la manœuvre de la structure de la base -- Le Langage de Manœuvre de Données.
Du panier à la commande client Créer un panier Identification Validation de la commande Paiement Formulaire de création de compte Etats de la commande.
Introduction à la Programmation Orientée Objet H.GATI.
La création des données d’exemplaire pour un responsable de Centre Régional.
Formation à l’utilisation de K-Sup V5 février 2009 CRISI - COM.
CEGID Utilisateurs - autorisations et droits d’accès
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 9 Support de cours rédigé par Bernard COFFIN Université.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 8 Support de cours rédigé par Bernard COFFIN Université.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 7 Support de cours rédigé par Bernard COFFIN Université.
Master sciences et techniques de géomatique environnementale
Informatique 1A Langage C 6 ème séance 1. Objectifs de la séance 6  Allocation dynamique de mémoire  Application à la création de tableaux 2.
L'objectif permettre aux utilisateurs d'acquérir ou d'actualiser des compétences directement utilisables dans leur travail. KARA CHEIKH Cite.
INTERFACE DE CONNEXION : R/ R/ Pour utiliser Colodus, identifiant et mot de passe sont obligatoires Votre.
FORMATIONENT/SVT Saint Orens Vendredi 15 novembre 2013.
Les fonctions et les regroupements B.T.S. S.I.O – SI3 – 1.
INSCRIPTIONS SPORTIVES
1 Initiation aux bases de données et à la programmation événementielle Construction d’un état Support de TD rédigé par Bernard COFFIN Université Paris.
Développement d’application avec base de données Semaine 2: Requête avec l’Entity Data Model Automne 2015.
Persistance en bases de données O.Legrand G. Seront.
SQL : 4 fonctions d'exploitation de SGBD SQL (Structured Query Language, traduisez Langage de requêtes structuré) est un langage informatique ayant pour.
Initiation aux bases de données et à la programmation événementielle
Initiation aux bases de données et à la programmation événementielle
Créer une fiche élève La plupart des fiches élève ne doivent pas être créées : elles proviennent de la base de l’année précédente (élèves provenant du.
Transcription de la présentation:

1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 10 Support de cours rédigé par Bernard COFFIN Université Paris 10 – Nanterre 2007/2008

2 tabClasse CP : N° Classe Niveau Indice Schéma de la dernière base de données du cours N°9 tabNote CP :CE : Réf Elève CE : Réf Epreuve Note tabEpreuve CP : N° Epreuve CE : Réf Classe Nom épreuve Date épreuve tabElève CP : N° Elève CE : Réf Classe Nom élève Prénom élève

3 Ergonomie des traitements Lors du cours N°9, nous avons vu comment ajouter des enregistrements dans une table (tabNote) représentant une association de n à n entre les enregistrements de deux tables (tabElève et tabEpreuve) L’ergonomie proposée était : 1.Sélection de la classe 2.Sélection de l’épreuve et de l’élève 3.Enregistrement ou modification de la note Une zone de liste déroulante Deux zones de listes déroulantes avec restrictions / la valeur de la première zone de liste déroulante Sous-formulaire dont la source est construite sur tabNote ; programmation événementielle pour assurer la cohérence de l’application

4 Cette ergonomie est bien adaptée à la saisie des notes au coup par coup Elle n’est pas très bonne s’il s’agit de saisir toutes les notes d’une épreuve les unes après les autres L’utilisation de la souris ou du clavier pour sélectionner l’enregistrement cherché dans un formulaire continu serait plus agréable Cela suppose que les enregistrements de la table tabNote aient été créés avant la saisie (avec une valeur de la note non renseignée) Comment et quand créer ces enregistrements (pour tous les élèves concernés) ? C’est au moment de la création (insertion de l’enregistrement dans la table) de la description d’une épreuve qu’on peut créer les enregistrements des notes Pour créer un ensemble d’enregistrements directement (sans passer par l’intermédiaire d’une interface et de contrôles liés) on utilise une requête insertion

5 Rappel du cours N° 4 Il existe plusieurs variétés de requêtes : sélection ajout suppression mise à jour création ACCESS parle de « types » de requêtes La requête « ajout » (ou insertion) permet de créer de nouveaux enregistrements dans une table, en spécifiant la valeur de un ou plusieurs de leurs champs ; les champs dont on ne précise pas la valeur se voient attribuer leur valeur par défaut Définition générale de la requête : Commande permettant la manipulation d'informations à l'intérieur d'une base de données

6 Pour exécuter une requête qui n’est pas liée à un objet (formulaire ou zone de liste), on utilise la méthode RunSQL de l’objet DoCmd Cette méthode a besoin d’un argument : la description de la requête en SQL On la lui communique à l’aide d’une chaîne de caractères (String) On peut utiliser indifféremment une constante, une variable, une expression En utilisant une variable Dim texte_requête As String texte_requête = " ici la requête en SQL " DoCmd.RunSQL texte_requête En utilisant une constante DoCmd.RunSQL " ici la requête en SQL "

7 Syntaxe de la requête Ajout (ou Insertion) INSERT INTO le nom de la table concernée (liste des champs concernés) SELECT liste des valeurs à enregistrer FROM relations d’origine WHERE clause de restriction ; Les autres champs se voient attribuer leur valeur par défaut Ces trois clauses décrivent une requête Sélection normale qui décrit comment obtenir l’ensemble des enregistrements à insérer

8 Formulaire pour créer une épreuve et enregistrer les notes des élèves concernés Formulaire lié dont la source est : SELECT * FROM tabEpreuve; Deux zones de texte liées pour la saisie de la date et du nom de l’épreuve

9 Un sous-formulaire pour saisir les notes Nom : sfNote Objet source : Saisie_toutes_les_notes Source de Saisie_toutes_les_notes : SELECT [Réf épreuve], Note, [Nom élève] & " " & [Prénom élève] AS Identité FROM tabNote INNER JOIN tabElève ON tabNote.[Réf élève]=tabElève.[N° élève] ORDER BY [Nom élève], [Prénom élève]; Champs père et fils : [N° épreuve] / [Réf épreuve]

10 Programmation événementielle Il faut créer les enregistrements de la table tabNote après insertion dans la table du nouvel enregistrement de tabEpreuve Private Sub Form_AfterInsert() Dim texte_requête As String texte_requête = "Insert Into tabNote ([Réf élève], [Réf épreuve]) " _ End Sub La procédure appartient au module du formulaire principal ; l’événement est AfterInsert Utilisation d’une variable pour calculer le texte de la requête (ce n’était pas obligatoire) Champs de tabNote dont on va donner la valeur Table dans laquelle on va insérer des enregistrements

11 Programmation événementielle Il faut créer les enregistrements de la table tabNote après insertion dans la table du nouvel enregistrement de tabEpreuve Private Sub Form_AfterInsert() Dim texte_requête As String texte_requête = "Insert Into tabNote ([Réf élève], [Réf épreuve]) " _ & "Select [N° élève], forms!Saisie_d_une_épreuve![N° épreuve] as Auxiliaire " _ & "From tabElève " End Sub Première valeur (attribuée au premier champ) Relation d’où proviennent les valeurs à insérer

12 Programmation événementielle Il faut créer les enregistrements de la table tabNote après insertion dans la table du nouvel enregistrement de tabEpreuve Private Sub Form_AfterInsert() Dim texte_requête As String texte_requête = "Insert Into tabNote ([Réf élève], [Réf épreuve]) " _ & "Select [N° élève], forms!Saisie_d_une_épreuve![N° épreuve] as Auxiliaire " _ & "From tabElève " _ End Sub Deuxième valeur (attribuée au deuxième champ) Le nom symbolique est obligatoire parce que la valeur n’est pas un champ de la relation tabElève

13 Programmation événementielle Il faut créer les enregistrements de la table tabNote après insertion dans la table du nouvel enregistrement de tabEpreuve Private Sub Form_AfterInsert() Dim texte_requête As String texte_requête = "Insert Into tabNote ([Réf élève], [Réf épreuve]) " _ & "Select [N° élève], forms!Saisie_d_une_épreuve![N° épreuve] as Auxiliaire " _ & "From tabElève " _ & "Where tabElève.[Réf Classe]=forms!Saisie_d_une_épreuve![Réf classe];" DoCmd.RunSQL texte_requête sfNote.Requery End Sub Restriction aux champs de tabElève qui correspondent à la valeur sélectionnée dans le formulaire Exécution de la requête Mise à jour de l’affichage du sous-formulaire

14 Programmation événementielle Qu’est-ce qui provoque l’insertion de l’enregistrement décrit par le formulaire dans la table tabEpreuve ? L’insertion n’a lieu qu’au moment de la fermeture du formulaire, lors d’un changement de l’enregistrement actif ou en utilisant une méthode pour provoquer la mise à jour de l’enregistrement On ne peut pas fermer le formulaire (il faut saisir les notes)

15 Programmation événementielle (1ère solution) Utilisation d’un bouton de commande Nom : btValider Légende : Valider la création Procédure événementielle pour changer l’enregistrement actif et revenir au dernier enregistrement créé : Private Sub btValider_Click() DoCmd.GoToRecord,, acNewRec ' provoque l'insertion de la nouvelle épreuve dans la table DoCmd.GoToRecord,, acLast ' retour au dernier enregistrement créé sfNote.SetFocus End Sub

16 Programmation événementielle (2ème solution) Utilisation d’un bouton de commande Nom : btValider Légende : Valider la création Procédure événementielle pour commander la mise à jour de l’enregistrement : Private Sub btValider_Click() DoCmd.RunCommand acCmdSaveRecord sfNote.SetFocus End Sub

17 Requête suppression Permet de supprimer des enregistrements d’une table Ne doit être utilisée que si cela ne détruit pas la cohérence de la base de données ! Syntaxe DELETE le nom d’au moins un champ de l’enregistrement à supprimer FROM le nom de la table concernée WHERE clause de restriction ; Si on ne précise pas de restriction, la requête détruit tous les enregistrements de la table, mais pas la table elle-même

18 Exemple d’utilisation sur le formulaire Saisie_d_une_épreuve On souhaite autoriser la suppression d’un enregistrement (celui qui vient d’être créé en principe) de la table tabEpreuve – par exemple parce que l’utilisateur s’est trompé lors de la sélection de la classe Il faut alors supprimer aussi les enregistrements de tabNote qui concernent cette épreuve On utilise un bouton commande pour déclencher les deux requêtes nécessaires Propriétés du bouton : Nom : btSupprimer Légende : Supprimer l’épreuve

19 Procédure événementielle Private Sub btSupprimer_Click() DoCmd.RunSQL "Delete * From tabNote " _ " Where [Réf épreuve] =forms!Saisie_d_une_épreuve![N° épreuve]" DoCmd.RunSQL "Delete * From tabEpreuve " _ " Where [N° épreuve] =forms!Saisie_d_une_épreuve![N° épreuve] " Forms!saisie_d_une_épreuve.Requery ‘pour mettre à jour l’affichage End Sub