FROM clause (Microsoft Access SQL)
S’applique à : Access 2013 | Access 2016
Spécifie les tables ou les requêtes qui contiennent les champs indiqués dans l’instruction SELECT.
Syntaxe
SELECT fieldlist FROM tableexpression [IN externaldatabase ]
Une instruction SELECT contenant une clause FROM est composée des arguments suivants :
Élément | Description |
---|---|
fieldlist | Nom du ou des champs à extraire avec des alias, des fonctions d’agrégation SQL, des prédicats de sélection (ALL, DISTINCT, DISTINCTROW ou TOP) ou des options d’instruction SELECT. |
expressiontable | Expression qui identifie les tables à partir desquelles les données sont extraites. Il peut s’agir du nom d’une table, du nom d’une requête enregistrée ou d’un nom composé résultant d’une opération INNER JOIN, LEFT JOIN ou RIGHT JOIN. |
basededonnéesexterne | Chemin d'accès complet d'une base de données externe contenant toutes les tables dans tableexpression. |
Remarques
La clause FROM est requise et suit l'instruction SELECT.
L'ordre des noms de tables dans expressiontable n'est pas important.
Pour de meilleures performances et pour plus de commodité, il est préférable d'utiliser une table attachée plutôt qu'une clause IN pour extraire des données d'une table externe.
L'exemple suivant montre comment vous pouvez extraire des données de la table Employees :
SELECT LastName, FirstName
FROM Employees;
Exemple
Dans cet exemple, le champ hypothétique Salary est censé exister dans la table Employees. Notez que ce champ n'existe pas dans la table Employees de la base de données Northwind.
Cet exemple crée un objet Recordset de type feuille de réponse dynamique basé sur une instruction SQL qui sélectionne les champs LastName et FirstName de tous les enregistrements de la table Employees. Il appelle la procédure EnumFields, qui imprime le contenu d’un objet Recordset dans la fenêtre Debug .
Sub SelectX1()
Dim dbs As Database, rst As Recordset
' Modify this line to include the path to Northwind
' on your computer.
Set dbs = OpenDatabase("Northwind.mdb")
' Select the last name and first name values of all
' records in the Employees table.
Set rst = dbs.OpenRecordset("SELECT LastName, " _
& "FirstName FROM Employees;")
' Populate the recordset.
rst.MoveLast
' Call EnumFields to print the contents of the
' Recordset.
EnumFields rst,12
dbs.Close
End Sub
Dans cet exemple, le nombre d'enregistrements comportant une entrée dans le champ PostalCode est calculé et le champ renvoyé est nommé Tally.
Sub SelectX2()
Dim dbs As Database, rst As Recordset
' Modify this line to include the path to Northwind
' on your computer.
Set dbs = OpenDatabase("Northwind.mdb")
' Count the number of records with a PostalCode
' value and return the total in the Tally field.
Set rst = dbs.OpenRecordset("SELECT Count " _
& "(PostalCode) AS Tally FROM Customers;")
' Populate the Recordset.
rst.MoveLast
' Call EnumFields to print the contents of
' the Recordset. Specify field width = 12.
EnumFields rst, 12
dbs.Close
End Sub
Dans cet exemple, le nombre d'employés est indiqué ainsi que les salaires maximal et moyen.
Sub SelectX3()
Dim dbs As Database, rst As Recordset
' Modify this line to include the path to Northwind
' on your computer.
Set dbs = OpenDatabase("Northwind.mdb")
' Count the number of employees, calculate the
' average salary, and return the highest salary.
Set rst = dbs.OpenRecordset("SELECT Count (*) " _
& "AS TotalEmployees, Avg(Salary) " _
& "AS AverageSalary, Max(Salary) " _
& "AS MaximumSalary FROM Employees;")
' Populate the Recordset.
rst.MoveLast
' Call EnumFields to print the contents of
' the Recordset. Pass the Recordset object and
' desired field width.
EnumFields rst, 17
dbs.Close
End Sub
§LSA La procédure Sub EnumFields bénéficie d'un objet Recordset à partir de la procédure appelante. La procédure met en forme et imprime les champs de l'objet Recordset dans la fenêtre Débogage. La variable est la largeur de champ imprimé voulue. Certains champs peuvent être tronqués.
Sub EnumFields(rst As Recordset, intFldLen As Integer)
Dim lngRecords As Long, lngFields As Long
Dim lngRecCount As Long, lngFldCount As Long
Dim strTitle As String, strTemp As String
' Set the lngRecords variable to the number of
' records in the Recordset.
lngRecords = rst.RecordCount
' Set the lngFields variable to the number of
' fields in the Recordset.
lngFields = rst.Fields.Count
Debug.Print "There are " & lngRecords _
& " records containing " & lngFields _
& " fields in the recordset."
Debug.Print
' Form a string to print the column heading.
strTitle = "Record "
For lngFldCount = 0 To lngFields - 1
strTitle = strTitle _
& Left(rst.Fields(lngFldCount).Name _
& Space(intFldLen), intFldLen)
Next lngFldCount
' Print the column heading.
Debug.Print strTitle
Debug.Print
' Loop through the Recordset; print the record
' number and field values.
rst.MoveFirst
For lngRecCount = 0 To lngRecords - 1
Debug.Print Right(Space(6) & _
Str(lngRecCount), 6) & " ";
For lngFldCount = 0 To lngFields - 1
' Check for Null values.
If IsNull(rst.Fields(lngFldCount)) Then
strTemp = "<null>"
Else
' Set strTemp to the field contents.
Select Case _
rst.Fields(lngFldCount).Type
Case 11
strTemp = ""
Case dbText, dbMemo
strTemp = _
rst.Fields(lngFldCount)
Case Else
strTemp = _
str(rst.Fields(lngFldCount))
End Select
End If
Debug.Print Left(strTemp _
& Space(intFldLen), intFldLen);
Next lngFldCount
Debug.Print
rst.MoveNext
Next lngRecCount
End Sub
Voir aussi
- Forum Access pour les développeurs
- Aide Access sur support.office.com
- Forums Access sur UtterAccess
- Centre d'aide pour les développeurs Access et la programmation VBA (FMS)
- Billets sur Access sur StackOverflow
Assistance et commentaires
Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour