0

我希望我的函数打开表,并为记录计数 1 返回 1/1/2013,为记录计数 2 返回 1/2/2013 ... 为记录计数 20 返回 1/20/2013。

到目前为止,我有以下代码,但它只返回 2013 年 1 月 2 日,并且我有 24 条记录:(我的记录数每月从 22 -30 变化)

Public Function DDate() As Date

Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim icounter As Integer
Dim UpBound As Long


Set db = CurrentDb()
Set rs = db.OpenRecordset("tblDDate", dbOpenDynaset)


    If Not (rst.BOF And rst.EOF) Then
        rst.MoveFirst

        UpBound = rs.RecordCount

    Do Until rs.EOF = True

        For icounter = 1 To UpBound
            DDate = DateAdd("m", icounter, "1/1/2013")
            rst.MoveNext
        Next icounter
    Loop
    End If

rs.Close
db.Close

 End Function
4

1 回答 1

1

您上面的评论说该表不包含日期,但您正在尝试将日期字段添加到表中。

不幸的是,您不能将新字段(列)添加到这样的表中。您需要在设计视图中执行此操作,或者在运行时在数据库上运行 ALTER 语句:

ALTER TABLE myTableName ADD COLUMN dateColumnName Date Null;

那么如果你想设置列的值,希望你的表有一个唯一的 id,数据类型为 counter(?) 我建议你使用更新查询:

UPDATE myTableName SET dateColumnName = CDate("1/" & trim(uniqueIDColumnName) & "/2013");
于 2013-09-25T00:02:03.107 回答