Sélectionnez des requêtes dans Access. Création de requêtes dans Microsoft Access

Sujet: Création de relations inter-tables. Création d'une requête de sélection, avec un paramètre et une requête finale.

Ouvrez la base de données créée dans l'atelier précédent Décanat de la TF .

Créer des relations inter-tables

Sélectionnez un objet dans la fenêtre de la base de données les tables . Cliquez sur le bouton " Schème données " sur la barre d'outils ou exécutez la commande " Service »  « Schème données " à l'aide du menu de commande. Une fenêtre apparaîtra à l'écran : Schème données " et fenêtre " Ajout les tables " (Fig. 18).

Riz. 18. Boîte de dialogue Schéma de données et boîte de dialogue Ajouter une table

Dans la fenêtre " Ajout les tables " sur l'onglet " les tables » répertorie toutes les tables de la base de données. Pour créer des relations entre les tables, vous devez les déplacer du " Ajout les tables "par la fenêtre" Schème données " Pour transférer un tableau, sélectionnez-le d'un clic de souris et cliquez sur le bouton « Ajouter " Après avoir transféré les tables nécessaires, fermez la fenêtre " Ajout les tables ».

Déplacez toutes les tables vers la fenêtre " Schème données " Redimensionnez les fenêtres du tableau pour que tout le texte soit visible (Fig. 19).

Pour créer une relation entre des tables Étudiants Et Notes conformément à Schéma de données vous devez déplacer le curseur de la souris sur le champ Code étudiant dans la table Étudiants et avec le bouton de la souris enfoncé, faites glisser ce champ sur le champ Code étudiant dans la table Notes , puis relâchez le bouton de la souris. La fenêtre " Changement Connexions " (Fig. 20).

Vérifiez la propriété " Sécurité intégrité données " en cliquant dessus. Cochez les cases dans les propriétés " Cascade mise à jour en rapport des champs " Et " Cascade effacement en rapport des champs " Cela vous permettra de modifier les enregistrements uniquement dans le tableau Étudiants , et dans le tableau Notes ces actions sur les enregistrements liés seront effectuées automatiquement.

Pour créer une connexion, cliquez sur le bouton " Créer ».

Riz. 19. Apparition du schéma de données de la base de données " Décanat de la TF» avant d'établir des connexions

Riz. 20. Boîte de dialogue pour spécifier les paramètres de connexion entre les champs de la table

De même selon Schéma de données des connexions sont créées entre les tables restantes (Fig. 21).

Riz. 21. Schéma de données de base de données " Décanat de la TF»

Répondre à la fermeture de la fenêtre du diagramme de données Oui à la question sur la sauvegarde de la mise en page.

Les relations créées entre les tables de base de données peuvent être modifiées.

Pour modifier les connexions, vous devez appeler la fenêtre " Schème données " Après cela, placez le curseur de la souris sur la connexion qui doit être modifiée et cliquez avec le bouton droit. Un menu contextuel apparaîtra (Fig. 22) :

Riz. 22. Menu contextuel des communications

Si vous sélectionnez la commande " Supprimer ", puis après confirmation la connexion sera supprimée. Si vous devez modifier la connexion, sélectionnez la commande " Changement connexion " Après cela, dans la fenêtre qui apparaît « Changement Connexions " (en haut) sélectionnez les champs des tables que vous souhaitez lier et cliquez sur le bouton " Créer ».

Demandes

Les requêtes sont utilisées pour sélectionner ou rechercher des données dans une ou plusieurs tables. Vous pouvez utiliser des requêtes pour afficher, analyser et modifier les données de plusieurs tables. Ils sont également utilisés comme source de données pour les formulaires et les rapports. Les requêtes vous permettent de calculer des totaux et de les afficher dans un format compact, ainsi que d'effectuer des calculs sur des groupes d'enregistrements.

Nous développerons les demandes en mode Designer .

DANS Accéder Vous pouvez créer les types de requêtes suivants :

    Demande d'échantillon . Il s’agit du type de requête le plus couramment utilisé. Ce type de requête renvoie les données d'une ou plusieurs tables et les affiche sous forme de table. Les requêtes de sélection peuvent également être utilisées pour regrouper des enregistrements et calculer des sommes, des moyennes, compter des enregistrements et rechercher d'autres types de totaux. Pour modifier les conditions de sélection, vous devez modifier la demande.

    Requête avec paramètres . Il s'agit d'une invite qui, une fois exécutée, affiche sa propre boîte de dialogue vous invitant à saisir les données ou la valeur que vous souhaitez insérer dans un champ. Ces données ou valeurs peuvent changer à chaque fois que la demande est faite.

    Demande croisée . Utilisé pour les calculs et la présentation des données dans une structure qui facilite leur analyse. Une requête transversale calcule la somme, la moyenne, le nombre de valeurs ou effectue d'autres calculs statistiques, puis regroupe les résultats dans un tableau sur deux ensembles de données, l'un définissant les en-têtes de colonnes et l'autre définissant les en-têtes de lignes.

    Changer de requête . Il s'agit d'une requête qui modifie ou déplace plusieurs enregistrements en une seule opération. Il existe quatre types de demandes de modification :

1. Pour supprimer une entrée. Cette requête supprime un groupe d'enregistrements d'une ou plusieurs tables.

2. Pour mettre à jour le dossier. Apport des modifications générales à un groupe d’enregistrements dans une ou plusieurs tables. Vous permet de modifier les données dans les tableaux.

3. Pour ajouter des enregistrements. Ajoute un groupe d'enregistrements d'une ou plusieurs tables à la fin d'une ou plusieurs tables.

4. Pour créer un tableau. Crée une nouvelle table à partir de tout ou partie des données d'une ou plusieurs tables.

    Demandes SQL . Créé à l'aide d'instructions linguistiques SQL , utilisé dans Base de données .

J'aimerais pouvoir créer une requête paramétrée dans MS Access 2003 et transmettre les valeurs de certains éléments de formulaire dans cette requête, puis obtenir l'ensemble de résultats correspondant et effectuer quelques calculs de base avec eux. Je vais vous expliquer brièvement comment remplir les paramètres de requête avec des éléments de formulaire. Si j'ai besoin d'utiliser VBA, ce n'est pas un problème.

5 réponses

Les références aux contrôles d'un formulaire peuvent être utilisées directement dans les requêtes Access, bien qu'il soit important de les définir comme paramètres (sinon les résultats dans dernières versions L'accès peut être imprévisible s'il était autrefois fiable).

Par exemple, si vous souhaitez filtrer une requête par le contrôle LastName dans MyForm, vous utiliserez ceci comme critère :

Nom = Formulaires!MonFormulaire!Nom

PARAMÈTRES [!MyForm!] Texte (255); SELECT tblCustomers.* FROM tblCustomers WHERE tblCustomers.LastName=!;

Cependant, je voudrais demander pourquoi vous avez besoin d'une requête stockée à cette fin. Que faites-vous des résultats ? Les afficher dans un formulaire ou un rapport ? Si tel est le cas, vous pouvez le faire dans la source d'enregistrement du formulaire/rapport et laisser la requête enregistrée inchangée avec les paramètres afin qu'elle puisse être utilisée dans d'autres contextes sans afficher d'invite pour remplir les paramètres.

D'un autre côté, si vous faites quelque chose dans le code, écrivez simplement le code SQL à la volée et utilisez la valeur littérale du contrôle de formulaire pour créer la clause WHERE.

Voici un extrait de code. Met à jour la table à l'aide du paramètre txtHospital :

Définir db = CurrentDb Définir qdf = db.QueryDefs("AddHospital") qdf.Parameters!txtHospital = Trim(Me.HospName) qdf.ReturnsRecords = False qdf.Execute dbFailOnError intResult = qdf.RecordsAffected

Voici un exemple SQL :

PARAMÈTRES txtHospital Text(255); INSÉRER DANS tblHospitals() VALEURS()

Il existe trois manières traditionnelles de contourner ce problème :

  1. Définissez le paramètre sur une valeur afin que l'utilisateur soit invité à saisir une valeur lors de l'exécution de la requête.
  2. Champ de lien sur le formulaire (éventuellement masqué)
  3. Créez la requête à la volée et n'utilisez pas de paramètres.

Je pense que c'est tout simplement faux pour moi que vous deviez saisir quelque chose comme [?Entrez le code ISO du pays] ou des liens vers des champs de votre formulaire comme : !! .

Cela signifie que nous ne pouvons pas réutiliser la même requête à plusieurs endroits car différents champs fournissent les données, ou que nous devons compter sur l'utilisateur pour ne pas confondre la saisie des données lors de l'exécution de la requête. Autant que je me souvienne, il peut être difficile d'utiliser la même valeur plusieurs fois avec un paramètre saisi par l'utilisateur.

En règle générale, je choisirais cette dernière option, créerais la requête à la volée et mettrais à jour l'objet de requête si nécessaire. Cependant, il s'agit d'une attaque par injection SQL courante (soit par accident, soit délibérément en connaissant mes utilisateurs) et c'est tout simplement obscène.

"Ed. Start - pour terminer l'exemple dim qryStartDate as date dim qryEndDate as date qryStartDate = #2001-01-01# qryEndDate = #2010-01-01# "Ed. Fin "QUOTEING "stallion" : Pour passer des paramètres à une requête en VBA " est vraiment assez simple : "Nous allons d'abord définir quelques variables : Dim qdf As Querydef Dim d'abord As Recordset ", puis nous allons ouvrir la requête : Set qdf = CurrentDB.QueryDefs(qryname) "Maintenant, nous allons attribuer des valeurs à la requête en utilisant l'option settings : qdf.Parameters(0) = qryStartDate qdf.Parameters(1) = qryEndDate "Maintenant, nous allons convertir le querydef en un jeu d'enregistrements et exécutez-le Set rst = qdf.OpenRecordset "Exécuter du code sur le jeu d'enregistrements" Fermez tous les objets d'abord. Fermez qdf.Close Set rst = Nothing Set qdf = Nothing

(Je n'ai pas testé cela moi-même, juste quelque chose que j'ai collecté lors de mes voyages parce que de temps en temps j'avais envie de le faire mais j'ai fini par utiliser l'un de mes bidules mentionnés précédemment)

modifier J'ai enfin eu une raison d'utiliser ça. Voici le code réel.

"... Dim qdf As DAO.QueryDef Dim prmOne As DAO.Parameter Dim prmTwo As DAO.Parameter Dim d'abord en tant que jeu d'enregistrements "... "ouvrez la requête : Set qdf = db.QueryDefs("my_two_param_query") "params appelés param_one et "param_two" lient vos DAP.Parameters à la requête Set prmOne = qdf.Parameters!param_one Set prmTwo = qdf.Parameters!param_two "définit les valeurs des paramètres prmOne = 1 prmTwo = 2 Set rst = qdf.OpenRecordset (dbOpenDynaset , _ dbSeeChanges) "... traitez le jeu d'enregistrements comme d'habitude "assurez-vous de nettoyer après vous-même Set rst = Nothing Set prmOne = Nothing Set prmTwo = Nothing Set qdf = Nothing

DoCmd.SetParameter "frontMthOffset", -3 DoCmd.SetParameter "endMthOffset", -2 DoCmd.OpenQuery "QryShowDifference_ValuesChangedBetweenSELECTEDMonths"

requête SQL Access inclut en fait SQL. Par exemple

"sélectionnez bla depuis ma table où dateoffset="

Tout fonctionne !

Prenons un exemple. la requête paramétrée ressemble à ceci :

Sélectionnez Tbl_Country.* Depuis Tbl_Country WHERE id_Country = _ [?entrez le code ISO du pays]

et vous aimeriez pouvoir obtenir cette valeur ([? entrez... pays]) à partir d'un formulaire dans lequel vous avez des contrôles et des données. Eh bien... cela pourrait être possible, mais cela nécessite une certaine normalisation du code.

Une solution serait d'attribuer une certaine logique aux contrôles du formulaire, comme fid_Country pour le contrôle, qui contiendrait la valeur id_Country. Votre requête peut alors être représentée sous forme de chaîne :

Qr = "Sélectionnez Tbl_Country.* Depuis Tbl_Country OÙ id_Country = "

Une fois que vous avez saisi toutes les données demandées dans le formulaire, cliquez sur le bouton « demander ». La logique parcourra tous les contrôles et vérifiera s'ils sont présents dans la requête, remplaçant éventuellement le paramètre par la valeur du contrôle :

Dim ctl as Control Pour chaque ctl dans Me.controls Si instr(qr,"[" & ctl.name & "]") > 0 Alors qr = replace(qr,"[" & ctl.name & "]",ctl .value) Fin si Suivant i

Dans ce cas, vous disposerez d'une requête entièrement mise à jour, dans laquelle les paramètres sont remplacés par des données réelles. En fonction du type de fid_country (chaîne, GUID, date, etc.), vous devrez peut-être ajouter des double citation ou ne pas obtenir la requête finale comme :

Qr = "Sélectionnez Tbl_Country.* Depuis Tbl_Country OÙ id_Country = ""GB"""

Il s'agit d'une requête entièrement compatible avec Access que vous pouvez utiliser pour ouvrir un jeu d'enregistrements :

Définir rsQuery = currentDb.openRecordset(qr)

Je pense que tu as fini ici.

Ce sujet est essentiel lorsque votre objectif est de développer des applications Access. Vous devez proposer aux utilisateurs manière standard leur demander des données Interface graphique non seulement pour exécuter des requêtes, mais aussi pour filtrer les formulaires continus (tout comme Excel le fait avec l'option "filtre automatique") et gérer les options de rapport. Bonne chance!

Sujet: Création de relations inter-tables. Création d'une requête de sélection, avec un paramètre et une requête finale.

Ouvrez la base de données créée dans l'atelier précédent Décanat de la TF .

Créer des relations inter-tables

Sélectionnez un objet dans la fenêtre de la base de données les tables . Cliquez sur le bouton " Schème données " sur la barre d'outils ou exécutez la commande " Service »  « Schème données " à l'aide du menu de commande. Une fenêtre apparaîtra à l'écran : Schème données " et fenêtre " Ajout les tables " (Fig. 18).

Riz. 18. Boîte de dialogue Schéma de données et boîte de dialogue Ajouter une table

Dans la fenêtre " Ajout les tables " sur l'onglet " les tables » répertorie toutes les tables de la base de données. Pour créer des relations entre les tables, vous devez les déplacer du " Ajout les tables "par la fenêtre" Schème données " Pour transférer un tableau, sélectionnez-le d'un clic de souris et cliquez sur le bouton « Ajouter " Après avoir transféré les tables nécessaires, fermez la fenêtre " Ajout les tables ».

Déplacez toutes les tables vers la fenêtre " Schème données " Redimensionnez les fenêtres du tableau pour que tout le texte soit visible (Fig. 19).

Pour créer une relation entre des tables Étudiants Et Notes conformément à Schéma de données vous devez déplacer le curseur de la souris sur le champ Code étudiant dans la table Étudiants et avec le bouton de la souris enfoncé, faites glisser ce champ sur le champ Code étudiant dans la table Notes , puis relâchez le bouton de la souris. La fenêtre " Changement Connexions " (Fig. 20).

Vérifiez la propriété " Sécurité intégrité données " en cliquant dessus. Cochez les cases dans les propriétés " Cascade mise à jour en rapport des champs " Et " Cascade effacement en rapport des champs " Cela vous permettra de modifier les enregistrements uniquement dans le tableau Étudiants , et dans le tableau Notes ces actions sur les enregistrements liés seront effectuées automatiquement.

Pour créer une connexion, cliquez sur le bouton " Créer ».

Riz. 19. Apparition du schéma de données de la base de données " Décanat de la TF» avant d'établir des connexions

Riz. 20. Boîte de dialogue pour spécifier les paramètres de connexion entre les champs de la table

De même selon Schéma de données des connexions sont créées entre les tables restantes (Fig. 21).

Riz. 21. Schéma de données de base de données " Décanat de la TF»

Répondre à la fermeture de la fenêtre du diagramme de données Oui à la question sur la sauvegarde de la mise en page.

Les relations créées entre les tables de base de données peuvent être modifiées.

Pour modifier les connexions, vous devez appeler la fenêtre " Schème données " Après cela, placez le curseur de la souris sur la connexion qui doit être modifiée et cliquez avec le bouton droit. Un menu contextuel apparaîtra (Fig. 22) :

Riz. 22. Menu contextuel des communications

Si vous sélectionnez la commande " Supprimer ", puis après confirmation la connexion sera supprimée. Si vous devez modifier la connexion, sélectionnez la commande " Changement connexion " Après cela, dans la fenêtre qui apparaît « Changement Connexions " (en haut) sélectionnez les champs des tables que vous souhaitez lier et cliquez sur le bouton " Créer ».

Demandes

Les requêtes sont utilisées pour sélectionner ou rechercher des données dans une ou plusieurs tables. Vous pouvez utiliser des requêtes pour afficher, analyser et modifier les données de plusieurs tables. Ils sont également utilisés comme source de données pour les formulaires et les rapports. Les requêtes vous permettent de calculer des totaux et de les afficher dans un format compact, ainsi que d'effectuer des calculs sur des groupes d'enregistrements.

Nous développerons les demandes en mode Designer .

DANS Accéder Vous pouvez créer les types de requêtes suivants :

    Demande d'échantillon . Il s’agit du type de requête le plus couramment utilisé. Ce type de requête renvoie les données d'une ou plusieurs tables et les affiche sous forme de table. Les requêtes de sélection peuvent également être utilisées pour regrouper des enregistrements et calculer des sommes, des moyennes, compter des enregistrements et rechercher d'autres types de totaux. Pour modifier les conditions de sélection, vous devez modifier la demande.

    Requête avec paramètres . Il s'agit d'une invite qui, une fois exécutée, affiche sa propre boîte de dialogue vous invitant à saisir les données ou la valeur que vous souhaitez insérer dans un champ. Ces données ou valeurs peuvent changer à chaque fois que la demande est faite.

    Demande croisée . Utilisé pour les calculs et la présentation des données dans une structure qui facilite leur analyse. Une requête transversale calcule la somme, la moyenne, le nombre de valeurs ou effectue d'autres calculs statistiques, puis regroupe les résultats dans un tableau sur deux ensembles de données, l'un définissant les en-têtes de colonnes et l'autre définissant les en-têtes de lignes.

    Changer de requête . Il s'agit d'une requête qui modifie ou déplace plusieurs enregistrements en une seule opération. Il existe quatre types de demandes de modification :

1. Pour supprimer une entrée. Cette requête supprime un groupe d'enregistrements d'une ou plusieurs tables.

2. Pour mettre à jour le dossier. Apport des modifications générales à un groupe d’enregistrements dans une ou plusieurs tables. Vous permet de modifier les données dans les tableaux.

3. Pour ajouter des enregistrements. Ajoute un groupe d'enregistrements d'une ou plusieurs tables à la fin d'une ou plusieurs tables.

4. Pour créer un tableau. Crée une nouvelle table à partir de tout ou partie des données d'une ou plusieurs tables.

    Demandes SQL . Créé à l'aide d'instructions linguistiques SQL , utilisé dans Base de données .

Aujourd'hui, nous allons commencer à examiner une application comme - Microsoft Access 2003 , qui peut créer ses propres bases de données ( format mdb), ainsi que de créer des applications client pour les bases de données MS existantes serveur SQL. Le sujet de l'article d'aujourd'hui sera la création de nouvelles requêtes à partir d'Access, c'est-à-dire à la fois des requêtes simples et diverses fonctions, vues et procédures. Ici, une requête fait référence à des objets de base de données.

À propos de Microsoft Access

Microsoft Accesslogiciel Société Microsoft, qui est un SGBD relationnel. Il possède d'énormes capacités lors de l'organisation d'une base de données, créant une application distincte pouvant interagir avec de nombreux autres SGBD. La solution client-serveur la plus courante, où le client est une application écrite en Access ( Langage VBA, formulaires et bien plus encore), et le serveur est un SGBD MicrosoftSQL Serveur. Cependant, Access prend également en charge l'interaction avec d'autres SGBD, par exemple MySql ou PostgreSQL. On peut parler longtemps d’Access, mais le but de l’article d’aujourd’hui est justement de créer des requêtes ( objets) depuis Accès.

Passons à la pratique et commençons par une simple base de données mdb, c'est-à-dire comment créer ces mêmes requêtes.

Création de requêtes dans Microsoft Access 2003 - Base de données MDB

Tout d’abord, ouvrez la base de données, puis cliquez sur les objets "Demandes" et appuyez sur le bouton "Créer".

Note! Cela signifie que vous disposez déjà d’une base de données.

Et une nouvelle fenêtre de sélection du type de demande s'ouvrira devant vous.

Examinons chacun de ces types de requêtes plus en détail.

Types de requêtes dans Access 2003 - MDB

Constructeur- cela crée une requête basée sur le constructeur, pour ainsi dire éditeur graphique, mais vous pouvez y passer en mode SQL et écrire le texte de la requête comme d'habitude. Immédiatement après le lancement, une fenêtre s'ouvrira pour vous permettre de sélectionner les tables nécessaires ou les requêtes existantes, puisque les requêtes existantes peuvent également être utilisées pour sélectionner les données nécessaires, c'est comme si "performance".

Si vous n'aimez pas faire cela dans un éditeur graphique, vous pouvez passer en mode SQL en cliquant sur l'élément de menu "Voir", alors "Mode SQL".

Demande simple- c'est, pourrait-on dire, le même jeu de construction, seulement un type légèrement différent et moins de possibilités.

Demande croisée– c'est ce qu'on appelle la transposition du tableau, c'est-à-dire la sortie de données situées dans des colonnes horizontales, c'est-à-dire Chaque valeur d'une colonne sera affichée horizontalement dans une colonne distincte. Tout cela est fait avec l'aide d'un assistant, il ne devrait donc y avoir aucun problème.

Entrées en double– comme son nom l’indique, il s’agit d’une recherche d’enregistrements en double.

Enregistrements sans subordonnés– il s'agit d'une recherche des enregistrements manquants dans une table particulière.

Avec les bases de données mdb, cela suffit, car elles sont rarement utilisées dans les entreprises, elles utilisent généralement le schéma suivant - elles écrivent un client séparé et toutes les données sont stockées sur le serveur à l'aide d'un SGBD dans notre cas - il s'agit de MS SQL Server, et le client est Access (.adp).

Création de requêtes dans Microsoft Access 2003 - Base de données MS SQL Server

Voyons créer de nouvelles requêtes à partir d'un client Access basé sur MS SQL Server ( Il est supposé que vous disposez déjà d'un client adp et d'une base de données basée sur MS SQL Server).

Note! Cet article n'implique pas l'apprentissage de SQL, donc au moment où vous lirez cet article, vous devriez déjà comprendre les bases de SQL et le concept des objets de base dans la base de données tels que : vue, fonction, procédure. Si vous êtes complètement nouveau dans ce domaine, il est bien sûr recommandé d'abord de maîtriser SQL, car la plupart des termes ci-dessous ne seront pas clairs pour vous. Articles recommandés :

  • Que sont les vues VIEWS dans les bases de données ? Et pourquoi sont-ils nécessaires ?

Le début est le même, ouvre le projet, puis clique sur les objets "Demandes" et appuyez sur le bouton "Créer".

Et maintenant plus en détail.

Types de requêtes dans Access 2003 - Base de données MS SQL Server

Constructeur de fonctions intégré- Ceci, pourrait-on dire, est une vue normale, seuls des paramètres peuvent y être transmis, puis certaines requêtes sont exécutées sur le serveur et une table est renvoyée. C'est une sorte de fonction qui renvoie des données sous forme de tableau. Il est abordé comme suit ( si nous parlons de SQL):

SELECT * FROM my_test_tabl_func(par1, par2 ……)

Après avoir cliqué sur "D'ACCORD" Pour créer cette fonction, vous verrez la fenêtre déjà familière pour ajouter des tables et des vues existantes. Mais je ferme généralement cette fenêtre et j'écris la demande manuellement dans un champ spécial. Pour que ce champ s'affiche, cliquez sur ce qui suit sur le panneau :

Ensuite, si vous souhaitez ajouter des paramètres entrants, vous pouvez simplement mettre le signe @ et le nom de la variable dans la condition, par exemple, comme ceci :

SELECT * FROM table OÙ kod = @par

Après sur le panneau dans les propriétés de la fonction

sur l'onglet "paramètres de fonction" les paramètres que vous avez spécifiés apparaîtront et ils doivent être transmis dans l'ordre dans lequel ils sont indiqués ici.

Constructeur de vue- c'est la création d'une idée ordinaire parmi les gens ordinaires "Vyukha".

Constructeur de procédures stockées– créer une procédure à l'aide d'un constructeur, le principe est le même que dans les fonctions ci-dessus. Permettez-moi de vous rappeler que la procédure est un ensemble instructions SQL, à la fois pour l'échantillonnage et la modification des données.

Saisie d'une procédure stockée– il s’agit de la création d’une procédure à l’aide d’un éditeur de texte, c’est à dire création d'une procédure purement manuellement. Au final, c'est la même chose que d'utiliser le constructeur. Lors de la création d'objets dans éditeur de texte Le modèle de création est déjà créé automatiquement par accès.

Saisir une fonction scalaire crée une fonction qui renvoie une valeur. Créé à l'aide d'un éditeur de texte.

Saisir une fonction de table crée une fonction qui renverra un ensemble d'enregistrements. Cela ressemble à une fonction intégrée.

Afin de les distinguer dans le client d'accès, ils disposent d'icônes différentes, les mêmes que celles que vous voyez lors de la création de tel ou tel objet.

Lorsque vous créez tous ces objets, ils sont enregistrés sur le serveur et vous pouvez les utiliser non seulement depuis votre projet adp, mais également depuis d'autres clients.

Bien entendu, vous pouvez créer tous ces objets sur le serveur en utilisant par exemple Enterprise Manager ( obsolète, maintenant SQL Server Studio de gestion ), mais nous envisageons aujourd'hui la possibilité de créer ces objets à partir du client d'accès.

Pour l'essentiel, je pense que cela suffit, si on en parle plus en détail, cela ne rentrera pas dans un seul article, mais il me semble que cela suffit pour créer certaines demandes. Mais si vous avez des questions sur la création d'une fonction ou d'une procédure particulière, posez-les dans les commentaires, j'essaierai de vous aider.

But du travail : Étudier les techniques de construction et d'utilisation de requêtes pour sélectionner des données.

Avant l'exécution travail de laboratoire Vous devez étudier les sections suivantes :

Types de demandes ;

Création de requêtes en mode conception ;

Règles d'enregistrement des conditions de sélection des données ;

Utilisation des fonctions intégrées ;

Création de champs calculés ;

Utiliser des formulaires de saisie/sortie de données ;

Création de requêtes croisées et actives.

Tâche 1 : Créer une requête simple.

1. Ouvrez la base de données Institut.

2. Cliquez dans la fenêtre Base de données sur l'objet Requêtes.

3. Dans la fenêtre Requêtes, cliquez sur le bouton Créer.

4. Dans la fenêtre Nouvelle requête, sélectionnez Conception et cliquez sur OK.

5. Dans la fenêtre Ajouter une table, ajoutez les quatre tables et fermez la fenêtre.

6. Ajustez la taille et l'emplacement des fenêtres du tableau dans le diagramme de données.

7. Faites glisser les noms de champs correspondants (nom de la faculté, groupe N, nom de la spécialité, carnet de notes N, nom complet) des fenêtres du tableau vers le formulaire de demande situé sous le schéma de données, en respectant leur ordre spécifié. Utilisez une colonne de formulaire pour chaque champ qui doit être inclus dans la sélection.

8. Affichez la sélection en exécutant la commande Mode VUE/Table ou en cliquant sur le bouton Afficher de la barre d'outils.

9. Revenez en mode Concepteur de requêtes si la sélection contient des erreurs et corrigez la requête.

10. Fermez la demande. Une boîte de dialogue apparaîtra vous demandant de confirmer si vous souhaitez l'enregistrer. Nommez la requête Select1.

Tâche 2. Créez une requête simple pour récupérer des informations de la base de données, incluant les mêmes champs que la requête précédente, mais contenant des informations uniquement sur les étudiants en commerce. Une telle demande s'appelle demande conditionnelle.

1. Dans la fenêtre Base de données, copiez la requête Select1 en faisant glisser l'icône de requête tout en appuyant sur la touche Ctrl.

2. Renommez la requête en Sélectionner par commercial. Pour ce faire, faites un clic droit sur le nom de la demande et sélectionnez menu contextuel Renommer l'élément.

3. Ouvrez la requête en mode Création. Ajoutez le champ Commercial à votre demande.

4. Saisissez la valeur Oui dans le champ Condition de sélection du champ Commercial.

5. Désactivez l'affichage lorsque vous êtes invité à saisir la valeur du champ Commercial. Pour ce faire, décochez la case d'affichage de ce champ.

6. Parcourez la sélection en cliquant sur le bouton Exécuter de la barre d'outils.

7. Fermez la demande en enregistrant la présentation de la demande.

Tâche 3. Créez une requête pour trouver le nom de famille et le numéro d'enregistrement du plus jeune élève de l'un des groupes.


1. Dans la fenêtre Base de données, cliquez sur le bouton Créer et sélectionnez l'option Conception.

2. Dans la fenêtre Ajouter une table, sélectionnez la table Étudiant. Insérez tous les champs de ce tableau dans le formulaire de demande. Pour ce faire, sélectionnez d'abord tous les champs du diagramme de données à l'aide de la touche Maj, puis faites-les glisser vers la première ligne du formulaire de description de la demande.

3. Saisissez une expression de formule dans le champ Condition de sélection pour le champ Date de naissance conformément à la tâche. Utilisez l’outil Access Expression Builder. Pour cela, placez le curseur dans la cellule correspondante du tableau de description de la demande et cliquez sur le bouton Construire de la barre d'outils.

4. Dans la fenêtre Expression Builder, saisissez le nom de la fonction DMax. Pour ce faire, développez la liste Fonctions dans le volet gauche du générateur et sélectionnez Fonctions intégrées. Ensuite, dans la sous-fenêtre du milieu, sélectionnez la catégorie de fonction Par sous-ensemble, et dans la sous-fenêtre de droite, sélectionnez la fonction DMax(). La fonction correspondante apparaîtra dans la fenêtre principale du constructeur avec ses arguments indiqués.

5. Supprimez le premier argument de la fonction et insérez à sa place le nom du champ Date de naissance, soit par saisie directe au clavier, soit en cliquant sur la liste Tables dans le volet de gauche, puis en sélectionnant la table Etudiant et le champ dedans. Dans ce dernier cas, vous devez supprimer la partie inutilisée de la ligne Expression. Ensuite, saisissez les valeurs des arguments restants de la fonction, afin que la fonction prenne la forme finale suivante : DMax("[Date of Birth]";"Student";"=851")

6. Pour écrire la fonction dans la cellule du tableau de description de la demande, cliquez sur le bouton OK. Fermez la demande en enregistrant la mise en page et en la renommant Youngest Student Sample. Visualisez le résultat d'une requête en double-cliquant sur son nom dans la fenêtre de la base de données.

7. Démontrez le résultat de votre travail à l'enseignant.

Tâche 4. Créez une requête pour compter le nombre d'étudiants en commerce dans chaque groupe.

1. Créer nouvelle requête en utilisant des tableaux Faculté, Groupe, Étudiant.

3. Définissez la condition de sélection pour la 3ème colonne sur Oui.

4. Définissez les 1ère et 2ème colonnes du formulaire pour trier par ordre croissant.

5. Désactivez l'affichage des données de la 3ème colonne.

6. Entrez le champ Commercial dans la 4ème colonne et remplacez le nom de la colonne par Numéro de commercial. Pour ce faire, la cellule avec le nom du champ doit contenir : Numéro de commercial : Commercial (les nouveaux et anciens noms de colonnes sont séparés par deux points)

7. En cliquant sur le bouton de la barre d'outils Opérations de groupe, ajoutez la ligne Opération de groupe au formulaire et sélectionnez l'opération Comptage dans la liste de la 4ème colonne.

8. Affichez la sélection totalisée en cliquant sur le bouton Exécuter de la barre d'outils ou en exécutant la commande QUERY/Exécuter.

9. Revenez au mode Conception de requête en cliquant sur le bouton Vue du tableau de bord.

10. Enregistrez la demande en lui donnant le nom Comptage commercial par groupes.

Tâche 5. Créez une requête qui vous permet de voir un échantillon qui reflète le nombre d'étudiants commerciaux pour chaque faculté et chaque groupe. Les en-têtes de colonnes doivent correspondre aux noms des facultés, les en-têtes de lignes doivent correspondre aux numéros de groupe. L'échantillon doit également contenir une colonne récapitulative indiquant le nombre total d'étudiants en commerce dans chaque département. Ce type d'échantillonnage peut être implémenté avec une requête croisée. Pour appliquer une telle requête, il est souhaitable d'avoir dans la base de données des informations sur 5 à 6 groupes d'étudiants étudiant dans 3 facultés.

1. À l'aide du concepteur, créez une nouvelle requête à l'aide des tables Faculté, Groupe, Étudiant.

2. Saisissez le champ Nom de la faculté dans la 1ère colonne du formulaire de demande, le champ Groupe N dans la 2ème colonne et le champ Commercial dans la 3ème colonne.

3. Exécutez la commande QUERY/Cross ou cliquez sur le bouton de la barre d'outils Type de requête et sélectionnez Cross dans la liste.

4. Sélectionnez les valeurs dans la ligne du formulaire Tableau croisé en développant la liste dans les cellules : pour la 1ère colonne En-têtes de ligne, pour la 2ème colonne – En-têtes de colonnes, pour la 3ème colonne – Valeur.

5. Sélectionnez la fonction Count pour l'opération de groupe dans la 3ème colonne.

6. Affichez l'échantillon croisé en cliquant sur le bouton Exécuter.

7. Pour créer une colonne récapitulative, revenez en mode conception et insérez un autre champ Commercial dans le formulaire de demande. Entrez le nom de la colonne Total avant le nom de ce champ : Dans la ligne Opération de groupe, sélectionnez Nombre et dans la ligne Tableau croisé, sélectionnez En-têtes de ligne.

8. En mode tableau, réduisez la largeur des colonnes du tableau de sélection. Pour ce faire, sélectionnez les colonnes contenant les données en groupes et exécutez la commande FORMAT/Largeur de colonne/Ajuster à la largeur des données.

9. Visualisez la sélection éditée et enregistrez la demande en lui donnant le nom Numéro de commercial par groupes et facultés.

10. Une vue approximative d'un échantillon en coupe transversale est présentée à la figure 1.

Fig. 1. - Echantillonnage croisé du nombre d'étudiants commerciaux par groupes et facultés.

Tâche 6.Écrivez une requête pour répertorier les listes de groupes, avec le numéro de groupe demandé dans le cadre de la requête. Une telle demande s'appelle requête avec paramètre. Le paramètre est le numéro de groupe. La valeur du paramètre est saisie dans la boîte de dialogue. Pour créer une demande, vous devez saisir le texte de la condition de sélection entre crochets dans la cellule contenant la condition.

1. À l'aide du concepteur, créez une nouvelle requête à l'aide d'une table Student.

2. Remplissez tous les champs du tableau en 1ère ligne du formulaire de demande.

3. Saisissez le texte dans la cellule de la ligne Condition de sélection du champ Groupe N : [Saisir le numéro du groupe]

4. Exécutez la requête et saisissez le numéro d'un des groupes dans la boîte de dialogue qui apparaît. Parcourez la sélection. Enregistrez la demande et nommez-la Requête avec paramètre.

5. Démontrez le résultat de votre travail à l'enseignant.




Haut