1、说明predicate下列谓词之一:ALL、DISTINCT、DISTINCTROW 或 TOP。可以使用谓词来限定返回记录的数量。如果没有指定谓词,则默认值为 ALL。*指定选择指定表中的所有字段。table表的名称,该表包含从中选择记录的字段。field1、field2字段名,这些字段包含了要检索的数据。如果包括多个字段,将按它们的排列顺序对其进行检索。alias1 和 alias2用作列标题的名称,不是 table 中的原始列名。tableexpression表名称,其中包含要检索的数据。externaldatabase如果 tableexpression 中的表不在当前数据库中,则使用
2、该参数指定该数据库名。若要执行此项操作,Microsoft Jet 数据库引擎会搜索指定的表,并提取选定的列,再选择符合条件的行,然后按指定的顺序对得到的行进行排序或分组。SELECT 语句不会更改数据库中的数据。SELECT 通常是 SQL 语句中的第一个词。大多数 SQL 语句都是 SELECT 或 SELECT.INTO 语句。SELECT 语句最简化的语法为:SELECT fields FROM table可以通过星号 (*) 来选择表中所有的字段。以下的示例选择在 Employees 表中的所有字段:SELECT * FROM Employees;如果一个字段名包括于 FROM 子句
3、的多个表中,请在该字段前面加上表名和 .(圆点)号。在下面的示例中,Department 字段同时存在于 Employees 表和 Supervisors 表中。SQL 语句从 Employees 表中选择出部门并从 Supervisors 表中选择出主管名:SELECT Employees.Department, Supervisors.SupvNameFROM Employees INNER JOIN SupervisorsWHERE Employees.Department = Supervisors.Department;创建 Recordset 对象时,Microsoft Jet 数
4、据库引擎将使用表的字段名作为 Recordset 对象中的 Field 对象名。如果需要其他字段名或者名称不适合用来生成该字段的表达式,请使用 AS 保留字。以下示例使用标题 Birth 来命名生成的 Recordset 对象中的返回 Field 对象:SELECT BirthDateAS Birth FROM Employees;只要使用的聚合函数或查询返回的是不明确的或重复的 Field 对象名称,就必须使用 AS 子句为该 Field 对象另外提供一个替代名称。以下示例使用标题 HeadCount 来命名生成的 Recordset 对象中的返回 Field 对象:SELECT COUNT
5、(EmployeeID)AS HeadCount FROM Employees;可以在 SELECT 语句中使用其他子句进一步约束和组织所返回的数据。有关详细信息,请参阅相应子句的帮助主题。示例下面的一些示例假定 Employees 表中存在一个假想的 Salary 字段。请注意,该字段实际并不存在于罗斯文数据库的 Employees 表中。 本例基于 SQL 语句创建一个动态集类型的 Recordset,该语句选择 Employees 表中所有记录的 LastName 和 FirstName 字段。它调用 EnumFields 过程,该过程将 Recordset 对象的容显示到调试窗口。Su
6、b 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 FR
7、OM Employees; Populate the recordset. rst.MoveLast Call EnumFields to print the contents of the Recordset. EnumFields rst,12 dbs.CloseEnd Sub以下示例计算 PostalCode 字段中有条目的记录数,并将返回的字段命名为 Tally。Sub SelectX2() Count the number of records with a PostalCode value and return the total in the Tally field.SELECT
8、 Count (PostalCode) AS Tally FROM Customers; Populate the Recordset. Call EnumFields to print the contents of the Recordset. Specify field width = 12. EnumFields rst, 12以下示例显示雇员数以及平均薪水和最高薪水。Sub SelectX3() Count the number of employees, calculate the average salary, and return the highest salary.SELE
9、CT Count (*) AS TotalEmployees, Avg(Salary) AS AverageSalary, Max(Salary) AS MaximumSalary FROM Employees; Call EnumFields to print the contents of the Recordset. Pass the Recordset object and desired field width. EnumFields rst, 17调用过程向 Sub 过程 EnumFields 传递了一个 Recordset 对象。然后该过程设置 Recordset 的字段的格式并
10、将这些字段显示到调试窗口。intFldLen变量是需要的显示字段宽度。有些字段可能会被截断。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.
11、 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 lngF
12、ldCount = 0 To lngFields - 1 strTitle = strTitle _ Left(rst.Fields(lngFldCount).Name _ Space(intFldLen), intFldLen) Next lngFldCount Print the column heading. Debug.Print strTitle 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) &; Check for Null values. If IsNull(rst.F
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1