• Aucun résultat trouvé

Si cela n'est pas déjà fait, faites en sorte que l'employer puisse spécifier pour un vendeur les langues maitrisées ainsi que la liste des compétences tel que:

Comment faire en sorte que dans le formulaire vendeurs, nous puissions saisir indépendamment les langues et les compétences d'un vendeur donné ?

1. Créer un formulaire en mode tabulaire de la table tblCompetencesV (avec les champs

strCompetences et tblVendeursId) et l'enregistrer sous le nom frmComptencesV

2. Créer un formulaire en mode tabulaire de la table tblLanguesV (avec les champs

strLangues et tblVendeursId) et l'enregistrer sous le nom frmLanguesV

3. Créer un formulaire en mode simple (avec le champ IdVendeurs) de la table

tblVendeurs

Ainsi (pour l'esthétique nous vous laissons faire…):

Passez maintenant le formulaire frmVendeurs en mode création et avec l'assistant de création de boutons, créez un bouton pour ouvrir le formulaire de langues frmLanguesV .

Ensuite, dans le formulaire frmLanguesV dans le champ tblVendeurId écrivez la formule: =[Forms]![frmVendeurs]![idVendeurs]

et de même pour les compétences. Ensuite, il vous suffit de masquer à l'utilisateur les champs inutiles pour lui et voilà que le système fonctionne maintenant parfaitement.

7 Requêtes (simples)

Attention! Enregistrez toujours une requête avant de l'exécuter.

MS Access dispose d'un des QBE (Query By Example) les plus souples et les plus puissants du marché. Il est aussi facilement abordable par un débutant capable de créer tous types de requêtes d'actions, d'analyses croisées ou d'union.

Il est aussi très simple de créer des requêtes imbriquées en enregistrant la première puis en l'appelant par son nom, dans la requête parent. Non seulement, cette fonctionnalité permet d'optimiser des requêtes complexes comme on peut le faire en SQL (Structured Query Language), mais elle clarifie la vue d'ensemble et permet une mise au point par étapes: tester d'abord le niveau le plus bas, puis remonter…

Sans parler des assistants qui font gagner un temps précieux: recherche de doublons

Ce QBE est tellement rapide et simple que, si j'ai l'obligation, dans un programme VB, C#, ASP, PHP ou autre de manipuler du code SQL, je n'hésite jamais à:

1. Ouvrir une base MS Access 2. Attacher les tables nécessaires

3. Créer une requête afin d'obtenir le résultat désiré

4. Afficher les données pour vérifier que les résultats correspondant aux attentes 5. Copier le code SQL dans l'application VB, C#, ASP, PHP ou même SQL Server 6. Remplacer les valeurs paramètres par des noms de variables

Différences entre filtres et requêtes:

Filtres Requêtes

Sélection des données Une table est filtrée par ligne pour une table unique

Une requête peut être créée pour plusieurs tables d'un coup Enregistrement Le filtre est enregistré dans la

table et ne peut être consulté qu'en ayant la table à l'écran.

La requête est liée à une table- requête générée

automatiquement à chaque exécution de la requête et peut être visualisée dans un

formulaire. Utilisation Pour la sélection rapide et

simple d'enregistrements en mode création.

Pour l'affichage et la saisie d'enregistrements en fonction de plusieurs critères dans des formulaires liés à la table- requête.

Les requêtes sont plutôt utilisées pour que l'utilisateur puisse modifier une donnée ou

visualiser les enregistrements d'une table à partir du mode de création ou d'un formulaire. En aucun cas, il ne s'agit (communément en tout cas) d'un outil qui doit amener à faire de la saisie.

Il existe plusieurs types de requêtes différenciées sous MS Access (votre formateur va vous dire de quoi il s'agit et comment utiliser l'aide dans le cadre de MS Office 2003 et du code SQL): 1. Requêtes de sélection 2. Requêtes d'ajout 3. Requêtes de synthèse 4. Requêtes croisées 5. Requêtes de création 6. Requêtes de suppression 7. Requêtes de mise à jour 8. Requête de correspondance 9. Requête de non-correspondance 10. Requêtes d'union (à coder en SQL)

11. Requêtes de passage (pour exécution sur SQL Server sans passer par Jet) 12. Requêtes de définition (à coder en SQL)

Dans une "requête de synthèse" (dans le cas de données numériques) on peut calculer des totaux, moyennes et autres (il y aura un exercice là-dessus).

La case à cocher dans le mode création des requêtes permet de se servir d'un champ comme critère de la requête tout en l'obligeant à ne pas s'afficher dans la table résultant de la compilation de la requête (et dans le formulaire rattaché).

Pour lancer une requête, il suffit de cliquer sur le bouton:

Dans les cellules de la ligne de "Critères" il est possible de définir des inégalités qui établiront si un champ d'un enregistrement sera affiché dans la table compilée ou non. Par exemple, si nous souhaitons afficher un enregistrement uniquement s'il satisfait à une certaine inégalité donnée par des opérations mathématiques en relation à d'autres champs du même

enregistrement. Ainsi dans la ligne de critères on écrira quelque chose du genre:

[Nom d'un premier champ]/[Nom d'un deuxième champ]*[Nom d'un troisième champ]>100

Si cette inégalité est satisfaite alors le champ correspondant à la colonne de critère où l'on a saisi cette formule sera affiché.

On peut également créer dans la table compilée, une nouvelle colonne avec un "champ calculé". Ainsi, dans la ligne Champ on écrira:

NomNewColumn:[Champ existant]/Nombre voulu

Cela aura pour effet de créer lors de la compilation de la requête, une nouvelle colonne nommée "NomNewColumn" avec les résultats du calcul saisi.

Remarques:

R1. Nous n'allons voir ici que les requêtes "simples". Les autres seront vues dans le chapitre nommé "Requête et jointures" (voir page 175).

R2. Le lecteur remarquera lors de l'utilisation des assistants d'Access qu'il est possible d'utiliser une requête dans une requête et de la mélanger avec des tables pour faire des analyses pertinentes.

Documents relatifs