使用Command对象执行SQL语句来获取满足指定条件的记录数的方法

时间:2019-11-20
阅读:

在VBA中,Command对象定义了对数据源执行的指令,在该指令被执行后将会获取满足指定条件的记录集。通过该对象可以完成各种复杂操作,这包括数据的查询、删除、添加以及更新等。该对象不仅可以执行SQL语句,结合Parameter对象还可以完成参数查询。本文介绍使用Command对象执行SQL语句来获取满足指定条件的记录数的方法。

1、启动Excel并打开工作簿文件,切换到Visual Basic编辑器,在工程资源管理器中新建一个模块,在模块的“代码”窗口输入如下代码:

Sub RecordCount()

Dim conn As New ADODB.Connection

Dim rs As ADODB.Recordset

Dim cmd As New ADODB.Command '定义Command对象

conn.Provider="Microsoft.ACE.OLEDB.12.0" '设置提供者名称

conn.ConnectionString="data source="&_ThisWorkbook.Path&"罗斯文2007.accdb" '设置连接字符串

conn.Mode=adModeReadWrite '设置读写模式

conn.Open '打开数据库连接

With cmd '设置Command对象

.ActiveConnection=conn '设置Command对象的当前链接

.CommandText="Select Count(*)from订单where[员工ID]=1" 'Command对象的指令

Set rs=cmd.Execute '执行指令

End With

'Set rs=conn.Execute("Select Count(*)from订单")'使用Connection的Execute方法

Debug.Print"员工“张颖”的订单数为:"&rs.Fields(0) '输出订单数

End Sub

2、按F5键运行该过程,在“立即窗口”中将显示数据记录数,如图1所示。

图1 “立即窗口”中显示运行结果

提示

在进行无参数查询时,使用Connection对象的Execute方法要比Command对象简便得多。示例中使用了SQL语句,该语句中包含一个聚合函数Count,该函数可以计算记录集中记录的数量。Command对象被执行后,将获取一个记录集。示例中的记录集仅包含一个记录,其值即为12。读者需要注意的是,字段的索引号是从0开始的,而不是1。

返回顶部
顶部