![]() |
Question d'une Base de Données |
|
Principes fondamentaux de questions |
|
Introduction aux questions |
|
Après avoir créé une table et l'avoir remplie de quelques valeurs, vous pouvez les explorer. L'one-way que vous pouvez faire ceci se compose isoler des disques basés sur des conditions spécifiques. Cette technique d'isoler des disques désigné également sous le nom filtrant. Pour filtrer des disques d'une table et montrer les résultats à l'utilisateur, vous avez de diverses solutions de rechange. Le filtrage de données est effectué en utilisant le SQL et d'autres moyens fournis par le Microsoft Access. Pour filtrer des données, vous pouvez créer une question ou écrire un rapport de SQL. |
Pour créer programmatically une question en utilisant la bibliothèque de Microsoft Access ou DAO, vous pouvez employer la méthode de CreateQueryDef () d'objet de base de données. La syntaxe de cette méthode est : CreateQueryDef(NewQueryName, SQLStatement) Le premier argument est le nom que vous donnerez à la nouvelle question. Le deuxième argument est un rapport de SQL qui indique le contenu de la question.
Au lieu de créer visuellement une question, vous pouvez écrire un rapport de SQL qui choisit les disques et assignez ce rapport à la propriété de RecordSource de la forme en code.
Une fois une question a été créée et économisé, ce devient un objet de base de données comme les autres que nous avons employés jusqu'ici. Si une question existe déjà, pour l'employer, l'utilisateur peut l'ouvrir aiment une table. Pour faire ceci, dans la section de questions de la fenêtre de base de données, l'utilisateur peut double-cliquent la question ou droit-la cliquent et cliquent ouvert. Pour ouvrir programmatically une question, vous pouvez appeler la méthode d'OpenQuery () d'objet de DoCmd. Cette méthode prend un argument de corde comme nom de la question. Voici un exemple : Private Sub cmdOpenVideoTitles_Click()
DoCmd.OpenQuery "VideoTitles"
End Sub
Après avoir employé une question, l'utilisateur peut la clôturer aiment une fenêtre régulière en cliquant son bouton de fin de système. Pour clôturer programmatically une question, vous pouvez appeler () la méthode étroite d'objet de DoCmd, passant le premier argument comme acQuery et le deuxième argument comme nom de la question. Voici un exemple : Private Sub cmdCloseVideoTitles_Click()
DoCmd.Close acQuery, "VideoTitles"
End Sub
Quand cette méthode s'appelle, elle vérifie si la question est ouverte. Si une question avec ce nom est ouverte, elle serait fermée. Si aucune question avec ce nom n'est ouverte, rien ne se produirait (Nice !).
Le but principal du filtrage de données se compose choisir des disques. Comme vous savez déjà, des disques sont stockés dans les tables mais ils peuvent être identifiés par les colonnes d'une table. Par conséquent, avant de filtrer des disques, vous devez d'abord indiquer les colonnes qui seraient impliquées dans votre filtrage. Si vous créez une question en utilisant le magicien, choisir d'abord une table (ou une question déjà créée) :
Après l'indication de la table (ou de la question) cette les prises les disques, pour choisir une colonne, dans les domaines disponibles liste, toi peuvent double-cliquent les colonnes désirées :
La technique de choisir les champs est identique appliquée en créant une table en utilisant le magicien de Tableau. Si vous créez une question dans la vue de conception, quand vous êtes présentés avec la zone de dialogue de Tableau d'exposition, pour choisir une table, vous pouvez la cliquer et cliquer le bouton d'ajouter, ou vous pouvez double-cliquez la table :
Si vous avez déjà choisi une table et voulez la changer ou vouloir ajouter une table (ou la question), vous pouvez droit-cliquez la fenêtre choisie de question et le clic ajoutent le Tableau. Après l'indication de la table, pour choisir une colonne, vous pouvez la traîner de la table et la laisser tomber dans une colonne dans la section inférieure de la fenêtre :
Au lieu d'ajouter une colonne à la fois, vous pouvez choisir plus d'une colonne en utilisant le Ctrl ou les touches MAJ. et traînant le choix à une colonne dans la section inférieure de la fenêtre. Pour inclure toutes les colonnes dans une question, traîner * champ et le laisser tomber dans la section inférieure.
Les données choisies dans le SQL se composent employer le mot-clé CHOISI. La formule primaire à suivre est : SELECT What FROM WhatObject;
Quel facteur de notre syntaxe est le nom des colonnes d'une table. Le facteur de WhatObject peut être le nom d'une table (ou d'une vue). Si vous (visuellement) créez une question, employant le magicien de question ou la vue de conception, le moteur de base de données prendrait soin de créer le rapport approprié de SQL pour toi. Après que sauver la question, pour regarder son rapport, ouvrent la question dans la vue de conception, droit-cliquent sa fenêtre, et cliquent la vue de SQL. Vous pouvez également accéder à l'option de vue de SQL du menu principal sous la vue. Pour choisir tout à partir d'une table, vous pouvez employer l'astérisque comme gamme des valeurs. Par exemple, pour choisir tous les disques, vous aviez l'habitude le rapport comme suit : SELECT * FROM Students; Cet exemple choisirait tous les disques à partir d'une table appelée Students. Par opposition à choisir tous les disques, vous pouvez choisir une colonne particulière dont les champs vous voulez regarder. Pour faire ceci, vous pouvez remplacer quel facteur dans la syntaxe avec le nom de la colonne désirée. Voici un exemple : SELECT LastName FROM Students; Ce rapport choisirait seulement la colonne qui contient les derniers noms. Pour considérer plus d'une colonne dans un rapport, vous pouvez les énumérer dans quel facteur de notre syntaxe, les séparant avec une virgule excepté la dernière colonne. La syntaxe à employer est : SELECT Column1, Column2, Column_n FROM WhatObject; Comme exemple, pour choisir les noms, genre, et le téléphone à la maison des disques d'une table a appelé Students, vous le rapport suivant : SELECT FirstName, LastName, Gender, HomePhone FROM Students Comme cité précédemment, pour créer programmatically une question, vous pouvez passer le rapport de SQL comme deuxième argument de la méthode de CreateQueryDef (). Voici un exemple qui emploie la bibliothèque de Microsoft Access : Private Sub cmdCreateQuery_Click()
Dim curDatabase As Object
Dim qryEmployees As Object
Dim strStatement As String
' Get a reference to the current database
Set curDatabase = CurrentDb
strStatement = "SELECT DateHired, FirstName, " & _
"LastName, Department FROM Employees;"
' Create a new query named EmployeesInfo
Set qryEmployees = curDatabase.CreateQueryDef("EmployeesInfo", strStatement)
End Sub
Vous pouvez employer la même approche avec DAO.
Comme mentionné précédemment, après avoir créé et sauvé une question, vous pouvez l'employer un point d'émission de données pour une forme. Au lieu de créer principalement une question, vous pouvez l'un ou l'autre type un rapport de SQL dans la propriété record de source ou utiliser son bouton de points de suspension pour créer une question. Tout est fait comme vu ci-dessus.
Une des mesures que vous pouvez prendre se compose réarranger la liste de disques dans un ordre autre que celui dans lequel ils ont été présentés. Par exemple, un utilisateur écrit la liste d'étudiants dans l'ordre qu'ils arrivent. En même temps l'utilisateur peut vouloir voir qu'une liste d'étudiants dans l'ordre alphabétique basé dessus ils durent des noms. Réarrangeant une liste de disques désigné sous le nom assortissant. Le Microsoft Access fournit les moyens d'assortir des disques sur tous les objets de base de données, y compris des tables, questions, et formes. Pour assortir les disques d'une table, d'une question, ou d'une forme, vous pouvez droit-cliquez la colonne ou la commande qui montre ses valeurs et sorte de clic montant. Ceci assortirait les disques basés sur le champ que vous avez choisi. Quand une liste est assortie dans l'ordre croissant :
Pour assortir les disques dans l'ordre d'inversion, vous pouvez droit-cliquez une colonne (table ou question) ou une commande (forme) et cliquez la descente de sorte. Après avoir assorti des disques, si vous voulez effectuer une autre opération, vous pouvez devoir remettre à zéro la liste à son arrangement original. Pour faire ceci, vous pouvez droit-cliquez l'objet et le clic enlèvent le filtre/sorte. Vous pouvez également accéder à ces trois options sur le menu principal sous des disques. Ils sont également disponibles sur le toolbar. Après avoir assorti les disques, vous pouvez fermer l'objet mais te seriez demandés si vous voulez sauver l'arrangement. Si vous cliquez oui, l'objet serait sauvé avec le nouvel arrangement et vous pouvez le regarder la fois prochaine. Si vous travaillez dans une question, pour inclure l'arrangement dans lui, ouvrir la question dans la vue de conception. Dans la section inférieure de la fenêtre, cliquer le champ croissant de la colonne désirée et choisir monter à partir de sa boîte combo. De la même manière, vous pouvez assortir le champ à l'envers l'ordre en choisissant l'option descendante. Pour assortir programmatically des disques sur une table, une question, ou une forme, etc., appellent sa méthode d'OrderBy () et lui passent le nom de la colonne sur laquelle assortir serait basé. Après avoir appelé OrderBy (), accéder à sa propriété booléenne d'OrderByOn et placer sa valeur pour rectifier. Pour enlever assortir, accéder à l'OrderByOn et placer sa valeur à faux.
Si vous créez visuellement une question en utilisant la fenêtre choisie de question, assortir les disques, après choix de la colonne sur laquelle assortir serait basé, cliquent la boîte correspondant à sa rangée de sorte, vous pouvez cliquer la flèche de sa boîte combo et choisir monter. Pour assortir les disques à l'envers l'ordre, choisir la descente à la place.
Dans le SQL, pour assortir un champ dans l'ordre croissant, vous pouvez inclure l'ORDRE PAR clause dans votre rapport. La syntaxe utilisée serait : SELECT What FROM WhatObject ORDER BY WhatField; Le champ utilisé comme base doit être identifié en tant qu'élément des colonnes choisies. Vous imaginer pour avoir créé une liste de membres de personnel faits de leurs premiers et derniers noms dans une table appelée StaffMembers. Si vous voulez commander la liste dans l'ordre alphabétique basé sur la colonne de LastName, vous emploieriez un rapport comme : SELECT FirstName, LastName FROM StaffMembers ORDER BY LastName; Si vous employez * opérateur pour inclure tous les champs, vous pouvez commander la liste basée sur les gisements de la table l'une des, comme nous avons appris pendant l'analyse de données. Imaginer que vous avez créé une question qui inclut tous les champs. Le rapport suivant énumérerait les disques de la table de StaffMembers basée sur l'ordre alphabétique de la colonne de LastName : SELECT * FROM StaffMembers ORDER BY LastName; Par défaut, des disques sont commandés dans l'ordre croissant. Néanmoins, l'ordre croissant est commandé en utilisant le mot-clé d'ASC indiqué après le champ basé. Par exemple, pour assortir les noms de bout dans l'ordre croissant d'une question qui inclut les premiers et derniers noms, le rapport ci-dessus peut également être écrit comme suit : SELECT FirstName, LastName FROM StaffMembers ORDER BY LastName ASC; Le deuxième rapport peut être écrit comme : SELECT * FROM StaffMembers ORDER BY LastName ASC; Si vous voulez assortir des disques dans l'ordre décroissant, employer le mot-clé de DESC à la place. Il produit le résultat opposé à l'effet d'ASC. Pour assortir des disques dans l'ordre alphabétique renversé, les deux rapports ci-dessus peuvent être écrits comme : SELECT FirstName, LastName FROM StaffMembers ORDER BY LastName DESC; Le deuxième rapport peut être écrit comme : SELECT * FROM StaffMembers ORDER BY LastName DESC; Si vous voulez créer programmatically une question d'un de ces rapports, se rappeler que vous pouvez employer la méthode de CreateQueryDef ().
Le filtrage de données se compose isoler les disques particuliers basés sur une condition, également appelée un critère ou les critères. Vous commencez des données filtrer en choisissant une ou plusieurs colonnes qui contiennent des données que vous êtes intéressés po. Ceci te permet d'avoir accès à toutes les valeurs de la table. Puis, parmi les colonnes choisies, au lieu de cela en utilisant tous les disques disponibles, vous indiquez une condition. Seulement les disques qui vous respectent les règles ont placé seraient produits. Pour indiquer une condition, vous combinez l'expression CHOISIE avec OÙ opérateur. La formule de base à suivre est : SELECT What FROM WhatObject WHERE Expression; Quel facteur est employé pour indiquer les colonnes dont les données seraient considérées. Le WhatObject est le nom de la table (ou de la question) cette des prises les données. Le CHOISI et OÙ des mots-clés sont exigés. L'expression est la condition qui placera la règle pour suivre. L'expression est une vraie expression. Elle peut être faite du nom d'une colonne impliquée dans un rapport conditionnel spécial.
Pour exécuter programmatically des données filtrant sur une table, une question, une forme, ou un rapport, emploient sa propriété de filtre et l'assignent OÙ condition. Pour appliquer le filtre, accéder à sa propriété de FilterOn et lui assigner une valeur de vrai. Pour enlever le filtre, assigner à la valeur fausse à sa propriété de FilterOn.
Considérer la liste suivante de registrants d'une colonie de vacances :
Imaginer que, de cette table des étudiants, vous veulent extraire seulement une liste d'étudiants masculins, vous écririez la condition comme genre = mâle. Ceci serait fait comme suit : SELECT * FROM Students WHERE Gender="Male"; En écrivant le nom d'une table, d'une question, ou d'une colonne, si elle est dans plus d'un mot, vous devez l'inclure entre crochets. Pour être sûr, même si le nom est dans un mot, vous devriez immobile l'inclure entre crochets. Basé sur ceci, le rapport ci-dessus serait écrit comme suit : SELECT * FROM [Students] WHERE [Gender]="Male"; Une autre suggestion que vous pouvez employer est de qualifier le nom de chaque colonne pour indiquer que la table ou le questionner appartient à. Faire ceci, dactylographier le nom de la table ou de la question, suivi d'une période, a suivi du nom de la colonne ou *. Voici un exemple : SELECT Students.FirstName, Students.LastName FROM Students WHERE Students.Gender="Male"; Vous pouvez également délimiter chaque nom avec les crochets comme suit : SELECT [Students].[FirstName], [Students].[LastName] FROM [Students] WHERE [Students].[Gender]="Male"; Pour exécuter des données filtrant sur une table, une question, ou une forme, après avoir montré l'objet, vous pouvez droit-cliquez la valeur sous la colonne sur laquelle vous appliquerez le filtre de condition et de clic par Selection. Dans ce cas-ci l'égalité de l'OÙ la condition serait appliquée. Basé sur ceci, ce qui précède OÙ l'état " masculin " de Gender= peut être obtenu droit-en cliquant une valeur masculine sous la colonne de genre et en cliquant le filtre par Selection :
Vis-à-vis l'état d'égalité est pas l'égalité. Par exemple, au lieu d'obtenir une liste d'étudiants masculins comme ci-dessus, pour obtenir une liste d'étudiants qui ne sont pas masculins, vous pouvez écrire la condition comme <> " mâle " comme suit : SELECT * FROM Students WHERE Gender<>"Male"; Pour appliquer visuellement pas la condition d'égalité sur une forme, une question, ou un rapport, vous pouvez cliquer la valeur qui serait exclue et le filtre de clic à l'exclusion du choix. Le filtre par Selection et le filtre à l'exclusion des options de choix sont utilisés pour appliquer l'égalité et les conditions d'inégalité en filtrant. En fait, une condition est créée en utilisant les opérateurs conditionnels que nous avons étudiés dans la leçon 7 (mais pas exactement les rapports conditionnels). Pour les employer visuellement, droit-cliquer la table, la question, ou la forme, et utiliser la boîte des textes du filtre pour l'option. Dans la boîte, dactylographier l'expression comprenant la colonne, l'opérateur, et la valeur. Voici un exemple :
Après la dactylographie de l'expression, la pression entrent et la condition serait appliquée. Après quelques exemples d'OÙ les conditions sur une table ont appelé Students : Pour obtenir une liste d'étudiants qui vivent dans MD, vous aviez l'habitude un rapport comme ce qui suit : SELECT * FROM Students WHERE State='MD' Pour obtenir une liste de filles avec leurs noms et adresses d'email, vous aviez l'habitude un rapport comme suit : SELECT LastName, FirstName, Gender, EmailAddress FROM Students WHERE Gender='Female' ORDER BY LastName Pour employer l'opérateur d'inégalité, vous pouvez écrire le rapport suivant : SELECT FirstName, LastName, Gender FROM Students WHERE Gender <> 'Female'; Pour obtenir une liste d'étudiants nés avant juin 1988, vous aviez l'habitude un rapport comme suit : SELECT FirstName, LastName, Gender, DOB FROM Students WHERE DOB < '1988-06-01'; Pour obtenir une liste d'étudiants soutenus avant 1990, vous aviez l'habitude un rapport comme suit : SELECT FirstName, LastName, DOB, EmailAddress FROM Students WHERE DOB <= '1990-01-01' Pour obtenir une liste d'étudiants féminins en niant tels qui sont le genre masculin, vous écririez le rapport suivant : SELECT LastName, FirstName, Gender, DOB FROM Students WHERE NOT (Gender = 'Male') Pour obtenir une liste d'étudiants où le disque n'inclut pas un nom de secours, vous aviez l'habitude un rapport comme suit : SELECT LastName, FirstName, Gender, EmergencyName FROM Students WHERE EmergencyName IS NULL Pour obtenir une liste des étudiants dont les disques incluent un nombre pour appeler en cas d'urgence, vous pourriez employer le rapport suivant : SELECT LastName, FirstName, EmergencyName, EmergencyPhone FROM Students WHERE EmergencyPhone IS NOT NULL Après filtrage des données sur une table, une question, ou une forme, vous devriez remettre à zéro l'objet. Pour faire ceci, vous pouvez droit-cliquez n'importe où dans l'objet et le clic enlèvent le filtre/sorte.
|
|
|
||
| Précédent | Copyright © Yevol, 2007 | Suivant |
|
|
||