0

我有一年中每天的每小时数据(24 小时)。没有数据时会丢失一些小时。当缺少数据时,我需要插入一个值为零的行,以确保每个日期都有 24 小时的数据。我正在使用 Access 并使用 SQL 处理 VBAcode。任何人都可以帮助我吗?

4

1 回答 1

0

像这样的事情会花费你的时间,并且每次检查它是否存在

Dim rs As Recordset
Dim datetime As Date
Dim stopdatetime As Date

Set rs = CurrentDb.OpenRecordset("MyData", dbOpenDynaset)

datetime = DateSerial(2011, 1, 1) + TimeSerial(9, 0, 0)
' #1/1/2011 @ 9AM
stopdatetime = DateSerial(2012, 1, 1)
' #1/1/2012 @ Midnight

While datetime < stopdatetime
    rs.FindFirst "MyDateTimeField=" & datetime ' formatting may be required
    If rs.NoMatch Then 
        'nomatch is true when time is not found, so add the missing record
        rs.AddNew
        rs!MyDateTimeField = datetime
        rs!Otherfileds = 0
        rs.Update
    End If
    datetime = datetime + TimeSerial(1, 0, 0)
    'add an hour
Wend
于 2012-09-06T19:40:54.087 回答