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

本文介绍使用VBA进行日期变量的生成与转换方法,包括利用DateSerial生成日期型变量,Format函数将文本变量转化为日期型,以及直接处理Excel中日期字段的技巧。并通过示例代码展示了如何连接数据库,执行SQL查询,筛选特定日期后的数据,并将结果导入到工作表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

示例代码

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函数用法很多,不限于此。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值