记录集1.打开并过滤()返回什么值(打开记录集发生异常)
打开记录集提取数据,按照固定的要求显示提取结果
大家好今日继续讲解数据库解决方案的第46讲,内容是打开记录集提取数据,按照固定的要求显示提取结果。要求我们首先打开一个记录集,然后按我们的要求来显示结果,什么固定要求呢?就是字段的排序,及显示多少个结果。
今日的内容并不难,我要讲解的是ADO连接EXCEL工作表后完成上述的内容。为什么总要讲EXCEL呢?毕竟这个类型的文件是我们工作表接触最多的,也是我们完成数据处理接触最多的文件类型。
下面看我们的实例,截图是EXCEL的表格,其中"数据"一页是我们要提取的数据源,我们要用ADO连接这个EXCEL,然后选择其中的型号,数量,单价,供应商 四个字段,其中型号要的是升序排序,数量是降序排序,结果要显示是的是前5名。
下面看我给出的代码:
Sub mynzRecords_46() '第46讲 打开记录集提取数据,按照固定的要求显示提取结果
Dim cnADO, rsADO As Object
Dim strSQL As String
Set cnADO = CreateObject("ADODB.Connection")
Worksheets("46").Select
strPath = ThisWorkbook.FullName
Set rsADO = CreateObject("ADODB.Recordset")
cnADO.Open "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;Data Source=" & strPath
strSQL = "SELECT TOP 5 型号,数量,单价,供应商 FROM [数据$] ORDER BY 型号,数量 DESC"
Set rsADO = cnADO.Execute(strSQL)
Cells.ClearContents
For i = 0 To rsADO.Fields.Count - 1
Cells(1, i + 1) = rsADO.Fields(i).Name
Next i
Range("A2").CopyFromRecordset rsADO
rsADO.Close
cnADO.Close
Set cnADO = Nothing
Set rsADO = Nothing
End Sub
代码截图:
代码讲解:
1 strSQL = "SELECT TOP 5 型号,数量,单价,供应商 FROM [数据$] ORDER BY 型号,数量 DESC"
这段SQL语句实现了我们最初的要求,① SELECT TOP 5 是表示显示前5个记录
② 型号,数量,单价,供应商 表示的是提取的字段
③ ORDER BY 型号,数量 DESC" 是排序的结构,ORDER BY 语句用于根据指定的列对结果集进行排序。 语句默认按照升序对记录进行排序。如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。
2 For i = 0 To rsADO.Fields.Count - 1
Cells(1, i + 1) = rsADO.Fields(i).Name
Next i
Range("A2").CopyFromRecordset rsADO
上述代码仍是先提出表头,然后复制记录集的内容。
下面看我们的运行结果;
结果显示,在型号一列是升序排序,在数量一列是降序的排序,实现了我们的要求。
今日内容回向:
1 如何实现记录集的排序?
2 如何实现显示要求数量的记录集?
温馨提示:通过以上关于打开记录集提取数据,按照固定的要求显示提取结果内容介绍后,相信大家有新的了解,更希望可以对你有所帮助。