Microsoft Access 掲示板

オートナンバーの初期化について / 1

5 コメント
views
4 フォロー
1

とりあえずコードは下記に修正してみてください。

Function オートナンバー型初期化(テーブル As String, フィールド As String, Optional 初期値 = 1) As Boolean
    On Error GoTo エラー
    DoCmd.Close acTable, テーブル
    Dim SQL AS String
    SQL = "Delete from " & テーブル
    CurrentDb.Execute SQL

    SQL = "Alter Table [" & テーブル & "] Alter Column [" & フィールド & "] Counter(" & 初期値 & ",1)"
    CurrentDb.Execute SQL
    オートナンバー型初期化 = True
    Exit Function
エラー:
    MsgBox Error, vbCritical, Format(Err, "エラー番号 0")
End Function

修正前のコードだとテーブル名やフィールド名に空白や記号が含まれるとエラーになる場合がありますので、その対策を追加しました。

それてもエラーになるなら、この関数を呼び出す前後のコードを提示してください。

通報 ...
  • 2
    オートナンバー 2020/08/08 (土) 18:52:53 3d629@e87f3 >> 1

    アドバイスありがとうございます。
    テストしてみましたがエラーのままでした。

    マクロで以下のプロシージャの実行
    オートナンバー型初期化("TEST3","ID")
    ※前後これ以外の処理はありません。

    テーブルTEST3に定義しているフィールド名IDは以下の設定になっています。
    データ型オートナンバー型
    フィールドサイズ 長整数型
    新規レコードの値 インクリメント
    インデックス   いいえ
    文字配置     標準

    ローカル変数のSQLは以下のようになっていました。
    "Alter Table [TEST3] Alter Column [ID] Counter(1,1)"