,可以使用SQL语句结合ADO对象来实现。以下是一个示例代码:
Sub RunQuery()
Dim conn As Object
Dim rs As Object
Dim strSQL As String
' 创建连接对象
Set conn = CreateObject("ADODB.Connection")
' 设置连接字符串,这里使用Excel的本地数据源
conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0;HDR=YES;"""
' 打开连接
conn.Open
' 创建记录集对象
Set rs = CreateObject("ADODB.Recordset")
' 构建查询语句
strSQL = "SELECT * FROM [Sheet1$] WHERE Name = 'John' AND DateOfBirth >= #01/01/1990#"
' 执行查询
rs.Open strSQL, conn
' 处理查询结果
If Not rs.EOF Then
Do Until rs.EOF
' 处理每一行数据
Debug.Print rs.Fields("Name").Value, rs.Fields("DateOfBirth").Value
rs.MoveNext
Loop
Else
Debug.Print "No records found."
End If
' 关闭记录集和连接
rs.Close
conn.Close
' 释放对象
Set rs = Nothing
Set conn = Nothing
End Sub
在上述代码中,我们使用了ADO对象来连接Excel数据源,并执行了一个带字符串和日期的查询语句。具体步骤如下:
CreateObject("ADODB.Connection")
创建一个连接对象。conn.ConnectionString
属性设置连接字符串,这里使用Excel的本地数据源。conn.Open
方法打开连接。CreateObject("ADODB.Recordset")
创建一个记录集对象。#
符号括起来。rs.Open
方法执行查询,并将结果存储在记录集对象中。rs.EOF
属性判断是否有查询结果,如果有,则使用rs.Fields
属性获取每一列的值。rs.Close
和conn.Close
方法关闭记录集和连接。Set rs = Nothing
和Set conn = Nothing
释放对象。这样,我们就可以在Excel VBA中编写带字符串和日期的查询语句,并通过ADO对象执行查询操作。请注意,上述示例代码中的查询语句和数据源是针对Excel文件的,如果你使用的是其他数据库,需要相应地修改连接字符串和查询语句。
领取专属 10元无门槛券
手把手带您无忧上云