VBA进阶-在VBA中使用SQL语句筛选日期

示例代码

Sub MultipleSelect_Group1()
    Dim cnn As New ADODB.Connection
    Dim rst As ADODB.Recordset
    Dim mypath As String
    Dim SQL As String
    Dim i As Integer
    'Dim d As Date   '两种方式,一种是设置日期类型
    Dim d As String  '一种是设置文本类型
    mypath = ThisWorkbook.FullName
    cnn.Open "Provider=Microsoft.Ace.OLEDB.12.0;Extended Properties=Excel 12.0;Data Source=" & mypath
    'd = VBA.DateSerial(2018, 9, 26)    '日期类型要用DateSerial方法生成日期格式的变量用作筛选条件
    d = Format("2018/9/26", "yyyy/m/d") '文本类型要用Format函数将变量变为变体型,设置好格式后变为时间变量
    SQL = "SELECT 逾期日期 FROM [sheet1$] WHERE 逾期日期 >=#" & d & "#" '用&符号拼接变量Format(
    'SQL = "SELECT 逾期日期 FROM [sheet1$] WHERE Format(逾期日期,'yyyy/m/dd') >= '2018/9/26'"
    '直接将excel中的日期字段变换格式
    Set rst = cnn.Execute(SQL)
    Worksheets(2).Select
    Cells.ClearContents
    For i = 0 To rst.Fields.Count - 1
        Cells(1, i + 1) = rst.Fields(i).Name
    Next
    Range("A2").CopyFromRecordset rst
    rst.Close
    cnn.Close
    Set cnn = Nothing
    Set rst = Nothing
End Sub

方法介绍

1.设置日期型变量,用VBA.DateSerial方法生成变量
2.用Format将文本变量设置为变体型变量,后转化为日期型变量
3.直接将记录中的日期字段设置为文本类型变量

友情提示

1.在excel中的日期必须为格式不限。
2.Format函数用法很多,不限于此。

  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VBA(Visual Basic for Applications)可以使用SQL语句与数据库进行交互。下面是一个示例,展示如何在VBA使用SQL语句: ```vba Sub QueryData() Dim conn As Object Dim rs As Object Dim strSQL As String ' 创建连接对象 Set conn = CreateObject("ADODB.Connection") ' 设置连接字符串,这里假设使用的是Microsoft Access数据库 conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\path\to\your\database.accdb;" ' 打开数据库连接 conn.Open ' 创建记录集对象 Set rs = CreateObject("ADODB.Recordset") ' 构建SQL查询语句 strSQL = "SELECT * FROM TableName WHERE Condition;" ' 执行查询 rs.Open strSQL, conn ' 遍历结果集并处理数据 Do Until rs.EOF ' 处理每一行数据 ' 例如,输出第一个字段的值到调试窗口 Debug.Print rs.Fields(0).Value ' 移动到下一条记录 rs.MoveNext Loop ' 关闭记录集和连接对象 rs.Close conn.Close ' 释放对象 Set rs = Nothing Set conn = Nothing End Sub ``` 在上述示例,首先创建了一个连接对象 `conn`,并设置了连接字符串来指定数据库的位置和其他相关信息。然后,使用 `conn.Open` 打开数据库连接。 接下来,创建记录集对象 `rs`,并构建SQL查询语句 `strSQL`。在示例使用了 `SELECT` 语句来查询表 `TableName` 符合条件的记录。你需要根据自己的数据库结构和查询需求来编写SQL语句使用 `rs.Open` 执行查询,并使用 `Do Until rs.EOF` 循环遍历结果集的每一行记录。在循环可以对每一行数据进行处理,示例使用 `Debug.Print` 输出第一个字段的值到调试窗口。 最后,记得关闭记录集和连接对象,并释放相应的资源。 需要注意的是,这里使用的示例是连接到Microsoft Access数据库的方式,你需要根据实际情况修改连接字符串,以适应不同类型的数据库。另外,还可以使用其他SQL语句,如插入、更新和删除等操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值