オートナンバー型フィールドの値を再設定する方法 Hit Counter

対象バージョン : 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

補 足


目次へ戻る