【问题标题】:Inserting Rows in MS Access using IF conditions使用 IF 条件在 MS Access 中插入行
【发布时间】:2012-08-29 16:35:31
【问题描述】:

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

【问题讨论】:

  • 如何区分数据中的 1 小时?例如,是不是像 9/4/2012, 12:00:00 AM? 2012 年 9 月 4 日凌晨 1:00:00;等等?

标签: sql database ms-access ms-access-2007 vba


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-06
    相关资源
    最近更新 更多