2015-05-30 154 views
0

我想查询已关闭的Excel工作簿,并已成功完成该操作。我试图做的是修改我的搜索查询:2东西 第一件事:如何查询空单元格 第二件事:在特定日期之间查询(现在()& now() - 1) - 试图检索昨天从查询日期..也是我列的日期是在这个格式(2015年5月29日早上7:25)使用ADODB搜索已关闭的Excel工作簿

这里是我的脚本,我使用如下:

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 

回答

0

我相信我想通了与许多试用错误

这里是最新的工作代码

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 

End Sub

相关问题