使用ADODB搜索已关闭的Excel工作簿

使用ADODB搜索已关闭的Excel工作簿,excel,vba,Excel,Vba,我正在尝试查询已关闭的excel工作簿,并已成功完成。我试图做的是修改我的搜索查询:2件事 第一件事:如何查询空单元格 第二件事:在特定日期之间进行查询(now()&now()-1)--尝试从查询中检索昨天的日期。。我的专栏日期也是这种格式(2015年5月29日上午7:25) 下面是我正在使用的脚本: Sub Pull_Data_from_Excel_with_ADODB() Dim cnStr As String Dim rs As ADODB.Recordset Dim query As

我正在尝试查询已关闭的excel工作簿,并已成功完成。我试图做的是修改我的搜索查询:2件事 第一件事:如何查询空单元格 第二件事:在特定日期之间进行查询(now()&now()-1)--尝试从查询中检索昨天的日期。。我的专栏日期也是这种格式(2015年5月29日上午7:25)

下面是我正在使用的脚本:

Sub Pull_Data_from_Excel_with_ADODB()

Dim cnStr As String
Dim rs As ADODB.Recordset
Dim query As String
Dim var1
Dim var2
var1 = Date - 1

var2 = "not"

Dim fileName As String
fileName = "C:\Signin-Database\DATABASE\Signin-Database.xlsm"

    cnStr = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
           "Data Source=" & fileName & ";" & _
           "Extended Properties=Excel 12.0"


query = "SELECT * FROM [Sheet1$D:E] WHERE [Time_in] = '" & var1 & " ' AND [Time_out] ='" & var2 & "'"



Set rs = New ADODB.Recordset
rs.Open query, cnStr, adOpenUnspecified, adLockUnspecified

Cells.Clear
Range("A2").CopyFromRecordset rs

Dim Cell As Range, i As Long
With Range("A1").CurrentRegion
    For i = 0 To rs.Fields.Count - 1
        .Cells(1, i + 1).Value = rs.Fields(i).Name
    Next i
    .EntireColumn.AutoFit

    End With
    End Sub

我相信经过多次尝试,我发现了一个错误

下面是最新的工作代码

Sub Pull_Data_from_Excel_with_ADODB()

Dim cnStr As String
Dim rs As ADODB.Recordset
Dim query As String
Dim var1
Dim var2
var1 = Now() - 1
var2 = Now()
Dim fileName As String
fileName = "C:\Signin-Database\DATABASE\Signin-Database.xlsm"

    cnStr = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
           "Data Source=" & fileName & ";" & _
           "Extended Properties=Excel 12.0"


query = "SELECT * FROM [Sheet1$D:H] WHERE [Time_in] < '" & var2 & "' AND [Time_in] >  '" & var1 & "' AND [Time_out] is null"

Set rs = New ADODB.Recordset
rs.Open query, cnStr, adOpenUnspecified, adLockUnspecified

Cells.Clear
Range("A2").CopyFromRecordset rs

Dim Cell As Range, i As Long
With Range("A1").CurrentRegion
    For i = 0 To rs.Fields.Count - 1
        .Cells(1, i + 1).Value = rs.Fields(i).Name
    Next i
    .EntireColumn.AutoFit





    End With
使用ADODB()从Excel中提取数据
作为字符串的Dim cnStr
将rs设置为ADODB.Recordset
将查询设置为字符串
Dim var1
Dim var2
var1=Now()-1
var2=Now()
将文件名设置为字符串
fileName=“C:\Signin Database\Database\Signin Database.xlsm”
cnStr=“Provider=Microsoft.ACE.OLEDB.12.0;”_
“数据源=”&fileName&“;”&_
“扩展属性=Excel 12.0”
query=“从[Sheet1$D:H]中选择*,其中[Time\u in]<'”&var2&“和[Time\u in]>'”&var1&“和[Time\u out]为空”
Set rs=New ADODB.Recordset
rs.开放式查询、cnStr、ADOPENUNTENDATED、ADLOCKUNTENDATED
牢房,没问题
范围(“A2”)。来自记录集rs的副本
暗淡的细胞范围,我一样长
具有范围(“A1”)。当前区域
对于i=0到rs.Fields.Count-1
.Cells(1,i+1).Value=rs.Fields(i).Name
接下来我
.全自动装配
以
端接头