2014-10-30 64 views
1

我有一個由ODBC連接到PostgreSQL數據庫的表填充。此連接的查詢具有一個連接到工作表中單元格值的參數。查詢運行並刷新表後,我想將數據集複製到新的工作表中,每次刷新表時都會附加新的數據集。問題是,我創建的VBA循環不會暫停足夠長的時間,以便每次增加參數時刷新表。我已經嘗試刷新腳本中的連接,然後使用'doevents'讓Excel跟上。不起作用。會發生什麼是VBA運行第一個查詢,然後簡單地複製結果數據集所需的次數以滿足循環。它不會每次刷新數據。因此,我得到複製5或6倍的數據的第一次迭代工作表等參數傳遞到查詢後,表刷新,ODBC刷新

這裏是我的腳本:

Sub auto_increment() 

    Dim i As Integer 
    Dim d As Integer 
    Dim wb As Workbook 
    Dim r As Integer 

    Set wb = Application.Workbooks("Competitiveness Summary_any date") 
    d = wb.Sheets("data").Range("AS2").Value 

    With wb 
     For i = 1 To d 
     .Sheets("data").Range("AQ4").Formula = "=workday(AQ2," & i & ",Holidays!D1:D8)" 
     .Worksheets("data").Select 
     ThisWorkbook.Connections("query from Tigris_fulfillment5").Refresh 
     DoEvents 

    r = .Sheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Row + 1 
     .Sheets("data").Range("Table_ExternalData_1").Copy 
     .Sheets("Sheet2").Select 
     .Sheets("Sheet2").Range("A" & r).Select 
     ActiveSheet.Paste 

    Next i 

    End With 

    End Sub 

變量「d」代表的工作日兩個日期之間的數字。我想按工作日數遞增我的參數單元格。總而言之,我試圖創建一個在兩個日期之間發生的舊數據的平面文件。目前的查詢只設計爲一次返回一天的數據。

任何援助將不勝感激。

回答