hatena
hatena
2020/08/07 (金) 13:41:52
とりあえずコードは下記に修正してみてください。
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
修正前のコードだとテーブル名やフィールド名に空白や記号が含まれるとエラーになる場合がありますので、その対策を追加しました。
それてもエラーになるなら、この関数を呼び出す前後のコードを提示してください。
通報 ...
アドバイスありがとうございます。
テストしてみましたがエラーのままでした。
マクロで以下のプロシージャの実行
オートナンバー型初期化("TEST3","ID")
※前後これ以外の処理はありません。
テーブルTEST3に定義しているフィールド名IDは以下の設定になっています。
データ型オートナンバー型
フィールドサイズ 長整数型
新規レコードの値 インクリメント
インデックス いいえ
文字配置 標準
ローカル変数のSQLは以下のようになっていました。
"Alter Table [TEST3] Alter Column [ID] Counter(1,1)"