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