オートナンバー型フィールドの値を再設定する方法 |
対象バージョン : 97, 2000(MDB), 2002(MDB), 2003(MDB)
最終更新日 : 2005/04/25
(オリジナル作成日 : 1999/02/21)
概 要
オートナンバー型のフィールドは、該当のテーブルが空の場合、データベースを最適化することにより初期値(次回入力時 1 )に戻る、とされています。
これを最適化を行うことなく、プロシージャで設定する方法です。
オートナンバー型のフィールドは、VBA + DAO
を使用することにより、任意の値を代入することができます。また、このフィールドの取りうる値には循環性(「オートナンバー型フィールドが上限値を超えた場合はどうなる?」参照)があるので、これを利用して初期値を設定します。
構 文
CALL InitializeFieldValue(TableName, FieldName [,InitialValue])
解 説
InitializeFieldValue 関数は、指定したテーブルのレコードを削除し、オートナンバー型のフィールドの初期値を設定します。
InitializeFieldValue 関数では次の引数を使用します。
引 数 | 内 容 |
---|---|
TableName | テーブル名を示す文字列式 |
FieldName | フィールド名を示す文字列式 |
InitialValue | 次回入力時の初期値。省略時は 1。 |
【プロシージャ】 Public Sub InitializeFieldValue (argTableName As String, argFieldName As String, _ Optional argInitValue) Dim lngInitValue As Long Dim db As Database Dim rs As Recordset If IsMissing(argInitValue) Then lngInitValue = 0 Else lngInitValue = argInitValue -1 End If Set db = CurrentDb db.Execute "DELETE FROM " & argTableName Set rs = db.OpenRecordset(argTableName, dbOpenTable) rs.AddNew rs(argFieldName) = -1 rs.Update rs.AddNew rs(argFieldName) = lngInitValue rs.Update rs.Close db.Execute "DELETE FROM " & argTableName db.Close
Set rs = Nothing Set db = Nothing End Sub
補 足