2015-05-29 47 views
0

因此,我陷入了一片混亂。我想用SQL獲取一堆數據並將其列在Excel圖表上。不過,我需要按日期列出它,就像這樣:在日期範圍內順序移動

Date | Data 
2015-05-19 |  62 
2015-05-20 |  30 
2015-05-21 |  78 

獲取數據是很容易的,但我需要通過的日期範圍移動(2015年5月19日至2015年5月21日,爲例如),列出我擁有的每個日期,並根據這些日期對數據進行排序。因此,如果我具有上述日期範圍,則需要依次移動該範圍內的每個日期,並在我的Excel表格中列出當前值。

任何人都知道如何做這樣的事情?對不起,如果沒有很好的解釋,我沒有一個簡單的時間來包裹我的頭。

+0

爲什麼不在主頁選項卡中使用「排序和過濾」功能? –

回答

1

這是使用ADODB和一個Access數據庫,所以你可能需要改變的東西,以適應您的需求。全部在Sheet1模塊中。

Sub test() 
    Dim cnn As ADODB.Connection 
    Dim rs As ADODB.Recordset 

    Set cnn = getConnection() 'however you create a connection 

    Set rs = cnn.Execute("SELECT YourDate, YourData FROM YourTable WHERE YourDate > #5/19/2015# AND YourDate < #5/21/2015# ORDER BY YourDate") 

    Me.Range("A2").CopyFromRecordset rs 'This doesn't include the fields names 
    rs.Close 
End Sub 
+0

謝謝,但這實際上並不是我所要求的。我發佈了我自己實際提出的答案,但是非常感謝您回答。我感謝任何幫助,我可以得到。 – Alfabit

0

我居然發現一個答案。事實證明,你應該將號碼添加到一個日期類型的值,它會被添加如一日,用簡單的for循環允許我循環通過我的日期範圍:

For DateIndex = 0 To daterange 
    'Add this date to the sheet 
    ActiveSheet.Cells(DateIndex + 2, 1).Value = Format(CDate(CateringForm.DateCB.Value) + DateIndex, "mmmm, dd yyyy") 
    For IDindex = 0 To IDNumber - 1 
     tempdate = CDate(CateringForm.DateCB.Value) + DateIndex 
     If (IDArray(IDindex, 3) = tempdate) Then 
      'MsgBox "Match" 
     End If 
    Next 
Next 

這是我想出了,它運作良好。