在date范围内顺序移动

所以我有一点果酱。 我想用SQL获取一堆数据并将其列在Excel图表上。 但是,我需要按date列出,如下所示:

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

获取数据非常简单,但是我需要通过一个date范围(例如2015-05-19至2015-05-21),列出每个date,并根据这些date对数据进行sorting。 所以如果我有上面的date范围,我需要依次移动该范围中的每个date,并在我的Excel表中列出当前值。

任何人都知道如何做这样的事情? 对不起,如果没有很好的解释,我没有一个简单的时间来包裹我的头。

这是使用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 

我其实find了答案。 原来,如果你添加一个数字到datetypes的值,它将被添加为一天,让我循环通过我的date范围使用一个简单的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 

这是我想出来的,而且运作良好。