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é.

Slides:



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

Introduction Pour concrétiser l’enseignement assisté par ordinateur
Vocabulaire pour la passage du modèle conceptuel des données au modèle relationnel des données. MCDMRD EntitéTable PropriétésChamps, attribut IdentifiantClé
Le publipostage La fonction de fusion permet de créer des documents identiques dans les grandes lignes que l’on personnalise automatiquement à chaque destinataires.
ACCESS Requêtes et états.
Comprendre l’ergonomie du module STSWEB
Principe de défilement du document dans un traitement de texte
Initiation aux bases de données et à la programmation événementielle
JLMVPC Saisir une commande.
Les requêtes La Requête est une méthode pour afficher les enregistrements qui répondent à des conditions spécifiques. La requête est donc un filtre.
Base de données relationnelle et requêtes SQL
Chap 4 Les bases de données et le modèle relationnel
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.
Publispostage Menu Outils / Lettres et publipostage
L’utilisation des bases de données
SQL Partie 3 : (LID : Langage d'interrogation de données)
FICHIERS : Définition : Algorithme général:
Les concepts et les méthodes des bases de données
Les devis Les devis texte.
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
Initiation aux bases de données et à la programmation événementielle
Initiation aux bases de données et à la programmation événementielle
Dans la barre des messages, cliquez sur Activer la modification,
Initiation MS Access 2010 Requêtes - Sélection (travail en autonomie)
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II PRO-1024.
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II
Initiation aux bases de données
 Objet window, la fenêtre du navigateur
Initiation MS Access 2010 Structures – Tables, schémas et Données
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II PRO-1024.
Diffusion Nationale TOULOUSE – Décembre 2008 STS Web Services libres Gérer les services libres.
POWERPOINT.
Jean Paul CHANLON IUT1 Grenoble Génie Mécanique et Productique
Access - 1.
 Formulaires HTML : traiter les entrées utilisateur
1 Initiation aux bases de données et à la programmation événementielle Responsable : Souheib BAARIR. (le sujet de votre .
Comprendre l’ergonomie du module STSWEB. La page d’accueil de STSWEB Code et Nom de l’établissement Version du module Campagne en cours Année affichée.
Comprendre le SGBDR Microsoft Access – partie 2
Comprendre l’ergonomie du module STSWEB. La page d’accueil de STSWEB Code et Nom de l’établissement Version du module Campagne en cours Année affichée.
Guide Acheteur Le site d’achat dédié au monde public
Conception des pages Web avec
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
Initiation aux bases de données et à la programmation événementielle
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.
Diffusion Nationale TOULOUSE -Mai 2006 STSWEB Rattacher Services et ARE Gestion individuelle des services et ARE.
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II PRO-1024.
Utilisation des formules de base
Gestion de l'enchaînementGestion de l'enchaînement Leçon 5 © 2014, John Wiley & Sons, Inc.Microsoft Official Academic Course, Microsoft Word Microsoft.
Utilisation des options avancées Leçon 14 © 2014, John Wiley & Sons, Inc.Microsoft Official Academic Course, Microsoft Word Microsoft Word 2013.
Formation.
Dreamweaver 2 Feuilles de Style CSS Formulaires Calques Comportements
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é.
1 Tableur Excel. 2 Introduction Un tableur est un logiciel permettant de manipuler des données numériques et d'effectuer automatiquement des calculs sur.
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 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é.
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.
Cerise Pro BTS COM Guide d’utilisation étudiants & enseignants
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 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é.
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.
Transcription de la présentation:

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é Paris 10 – Nanterre 2007/2008

2 Le formulaire est une interface destinée à des traitements conversationnels (traitements qui utilisent le clavier, la souris et l’écran) Il est possible d’en imprimer le contenu, mais le résultat n’est pas facilement contrôlable L’état (en anglais Report) est une interface destinée à des impressions Le contenu de l’état peut être affiché sur l’écran (ouverture en prévisualisation), mais le clavier et la souris sont sans effet (pas d’événement qui leur soit lié)

3 L’état est fait pour imprimer des informations issues de la base de données Il a une propriété source C’est une requête (en SQL) dont le résultat est la relation associée à l’état

4 Comme le formulaire, l’état est un objet complexe Ses éléments sont des contrôles On n’utilise que ceux qui ne nécessitent pas d’action de l’utilisateur : Étiquettes Zones de texte liées (à un champ de la source de l’état ou par une formule – Cf. cours N° 8, diapo N° 23) Sous-état

5 L’état est divisé en trois niveaux (appellation non contrôlée) Chaque niveau est divisé en sections : en-tête contenu du niveau pied Le contenu permet décrit l’impression d’enregistrements de la relation source L’en-tête et le pied décrivent l’impression d’informations communes à l’ensemble des enregistrements du contenu du niveau Les trois niveaux : état page (dans le contenu de l’état) groupe (dans le contenu de la page ; un groupe peut en contenir un autre) La section contenu du niveau le plus bas (page ou groupe qui ne contient pas d’autre groupe) s’appelle « détail » sur la grille de création

6 Affichage sur la grille de création Lors de l’ouverture, seul le niveau « page » est affiché en-tête de page détail (contenu de la page) pied de page L’affichage du niveau « état » (sections en-tête et pied) se fait par la commande Affichage de ACCESS L’option de commande est « en tête/pied de rapport » (traduction littérale de « report ») Mais les noms affichés sur la grille de construction sont bien En-tête d’état Pied d’état Remarque : appliquée aux formulaires, la même commande ACCESS permet d’afficher des sections en-têtes et pieds de page ou de formulaire L’utilisation est la même que pour un état Essentiellement pour un affichage en mode continu

7 Affichage sur la grille de création (suite) Les groupes se définissent au moyen d’une commande d’ACCESS Attention à l’icône : les groupes sont imbriqués les uns dans les autres, ils ne peuvent pas se suivre Pour une présentation séquentielle d’informations groupées, il faut utiliser des sous-états

8 Utilisation des sections A chaque niveau, la section contenu décrit l’impression de plusieurs enregistrements de la relation source (cas général) Les sections en-tête et pied de ce niveau décrivent l’impression des informations de mise en page des informations qui concernent l’ensemble des enregistrements décrits dans la section contenu Utilisation d’étiquettes de fonctions de mise en page (voir le diaporama de construction des états) Utilisation d’étiquettes de zones de texte liées de sous-états Utilisation de fonctions statistiques sur l’ensemble des enregistrements de la section contenu de sous-états ayant pour source les requêtes statistiques ad hoc

9 La section détail Sert à décrire l’impression des enregistrements de la relation source Une fois décrite la relation, on place sur la grille de construction des zones de texte liées aux champs dont on veut imprimer le contenu On ne décrit qu’un enregistrement Ce modèle sera utilisé pour tous les enregistrements, les uns après les autres

10 Premier exemple Schéma de la base de données utilisée CP : N° formation Nom formation Niveau tabFormationtabEtudiant CP : N° étudiant CE : Formation suivie Nom Prénom Construire un état imprimant les identités des étudiants (nom et prénom) et le nom de la formation suivie

11 Source de l’état : SELECT [Nom formation], Nom & " " & Prénom AS Identité FROM tabFormation, tabEtudiant WHERE [N° formation]=[Formation suivie]; Étiquette Zones de texte ayant pour sources les champs de la relation Informations de mise en page Fonction Informations fournies par ACCESS

12 Résultat obtenu En-tête Détail Pied de page Les enregistrements ne sont pas classés (pas de clause Order By) On utilise un autre outil pour trier les informations imprimées

13 Groupe Attention ! ce terme ne doit pas être confondu avec la notion d’agrégation (clause Group By) étudiée au cours N° 8 Le regroupement dans un état consiste à rassembler des enregistrements ayant des informations communes (un ou plusieurs champs) ces informations communes permettent de construire un nouveau niveau de données (groupe portant le nom de ces informations communes) décrire ces informations communes dans les sections en- tête et pied du groupe décrire les autres informations de ces enregistrements dans la section contenu du groupe pour décrire ces informations, on peut recourir à un nouveau groupe, etc. Rappel : la section contenu du dernier groupe (à l’intérieur de tous les autres) s’appelle détail

14 Classement des étudiants par formation Il faut regrouper les enregistrements qui correspondent à la même formation Fenêtre de choix des critères de regroupement Permet aussi de décrire des tris (rend la clause Order BY inutile dans la requête de description de la relation source) Sélection ou frappe des critères (dans une expression, utiliser des crochets pour les noms symboliques) Le choix de l’option « oui » génère une nouvelle section Même chose pour le Pied de groupe Déplacer le contrôle lié au champ [Nom formation] dans l’en-tête

15

16 Les sous-états Le principe est le même que pour les sous-formulaires 1.On crée un contrôle sous-état (même outil que sous-formulaire) 2.On établit un lien avec un état préalablement construit ; on utilise pour ça la propriété objet source du contrôle 3.On lie l’état et le sous-état par des couples champ père / champ fils

17 tabCommande CP : N° Commande CE : Réf Client Date commande tabLigne_commande CP :CE : Réf Commande CE : Réf adresse livraison CE : Réf Produit Qté_commandée tabClient CP : N° client Nom client Prénom client Adresse client tabProduit CP : N° produit Nom produit Description PU HT tabAdresse CP : N° adresse CE : Client concerné Adresse livraison Construction d’un état des commandes regroupées par client Reprise de l’exemple du cours N° 7 (certains noms symboliques ont été modifiés)

18 Construction d’un état des commandes regroupées par client L’état a pour source : SELECT * FROM tabClient, tabCommande WHERE réf_client=[N° client]; En fait on n’a pas besoin de tous les champs de tabCommande, seul la clef primaire est indispensable, mais la requête est plus simple à écrire ainsi… Les enregistrements seront regroupés par Client. On fait donc de la clef primaire [N° client] un critère de regroupement (avec En-tête de groupe et Pied de groupe) Dans l’En-tête de groupe on décrit l’impression des champs de tabClient Dans la section Détail, on imprime le N° de la commande, un sous-état décrivant le détail de la commande, et enfin un second sous-état décrivant l’impression du montant total de la commande Dans le pied de groupe on place un contrôle de « saut de page », qui permet de ne pas avoir les commandes de plusieurs clients sur la même page

19 On commence par créer les sous-états 1.État décrivant le détail d’une commande Source de l’état : SELECT * FROM tabLigne_commande, tabAdresse, tabProduit WHERE [N° adresse]=réf_adresse_livraison And [N° produit]=réf_produit; Regroupement sur les adresses de livraison L’en-tête et le pied de page sont vides : ils ne sont pas imprimés dans un sous-état (c’est l’état principal qui décrit ces sections) Étiquettes (les données apparaîtront en colonnes) Formule : = Qté_commandé * [PU HT]

20 On commence par créer les sous-états 2.État décrivant le montant total d’une commande Source de l’état : SELECT Réf_commande, sum(Qté_commandée*[PU HT]) AS Total_commande_HT FROM tabLigne_commande, tabProduit WHERE Réf_produit=[N° Produit] GROUP BY Réf_commande; Le résultat du calcul sur agrégation est la seule donnée imprimée par l’état

21 Ensuite on décrit l’état principal en utilisant des contrôles sous-états Champs communs à tous les enregistrements regroupés Sous-état Objet lié : État détail commande Champ père : [N° commande] Champ fils : [Réf_commande] Sous-état Objet lié : État total commande Champ père : [N° commande] Champ fils : [Réf_commande] Contrôle saut de page

22

23 Ouverture d’un état à partir d’un formulaire On utilise une procédure événementielle (par exemple liée à un bouton de commande) La commande utilisée en VBA est une méthode de l’objet DoCmd : DoCmd.OpenReport Il est possible d’utiliser les valeurs des contrôles du formulaire pour des restrictions dans la requête source de l’état Il est aussi possible d’utiliser une clause Where comme argument de la méthode OpenReport (c’est également possible pour OpenForm)

24 Propriétés de la zone de liste déroulante : Nom : Choix_commande Contenu : SELECT [N° commande], [N° commande] & " du " & [date commande] FROM tabCommande WHERE Réf_client=Choix_client.value; Colonne liée : 1 Nombre de colonnes : 2 Largeurs colonnes : 0cm; 8cm Propriétés de la zone de liste déroulante : Nom : Choix_client Contenu : SELECT [N° client], [Nom client] & " " & [Prénom client] FROM tabClient ORDER BY [Nom client], [Prénom client]; Colonne liée : 1 Nombre de colonnes : 2 Largeurs colonnes : 0cm; 8cm

25 Procédures événementielles Option Compare Database Private Sub btFermer_Click() DoCmd.Close End Sub Private Sub btImpression_Click() DoCmd.OpenReport " Liste commandes par client", acViewNormal,, _ "[N° commande] = forms![impression commande]!Choix_commande.Value" End Sub Private Sub btPrévisualisation_Click() DoCmd.OpenReport "Liste commandes par client", acViewPreview,, _ "[N° commande] = forms![impression commande]!Choix_commande.Value" End Sub Private Sub Choix_client_AfterUpdate() Choix_commande.Requery End Sub Premier argument : nom de l’état Deuxième argument : Mode d’ouverture Troisième argument : Filtre (pas au programme de ce cours) Quatrième argument : Restriction (clause Where sans le mot Where »)

26 Click