0

関数でテーブルを開き、recordcount 1 の場合は 1/1/2013、recordcount 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 があることを願っています。更新クエリを使用することをお勧めします。

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