Access (VBA)

Access VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 11 Home : Access 2019)
オートナンバー リセット
投稿日時: 24/08/17 17:24:05
投稿者: mmiwa

教えて下さい
 
オートナンバー型のフィールドをリセットしたいと思います
 
Webを検索すると
「ALTER TABLE my_Data ALTER COLUMN my_ID COUNTER (1,1)」
でリセット可能とありました
 
実際、実行してみると
「現在ほかのユーザーまたはプロセスで使用されているので、ロックできませんでした」
のエラーが表示されます。
直前で
「delete * from my_Data;」
を実行していますが
ここではエラーが出ないので
「ほかのユーザーまたはプロセスで使用されているので、ロック」されているとは思えません。
 
どの辺りに問題がありそうか教えて下さい
よろしくお願いいたします。

回答
投稿日時: 24/08/19 10:34:34
投稿者: sk

引用:
ALTER TABLE my_Data ALTER COLUMN my_ID COUNTER (1,1)

引用:
実際、実行してみると
「現在ほかのユーザーまたはプロセスで使用されているので、ロックできませんでした」
のエラーが表示されます。

恐らくテーブル[my_Data]が何らかの形で開かれている(参照されている)状況下で
ALTER TABLE ステートメントを呼び出そうとされているからでしょう。
 
・テーブル[my_Data]をデザインビューまたはデータシートビューで
 開いている。
 
・テーブル[my_Data]を参照するクエリをデザインビューまたは
 データシートビューで開いている。
 (別のクエリにおいてネストされている場合も同様)
 
・テーブル[my_Data]、またはテーブル[my_Data]を参照するクエリ/ SQL ステートメントを
 レコードソースとするフォーム/レポートを開いている。
 (サブフォーム/サブレポートについても同様)
 
・テーブル[my_Data]、またはテーブル[my_Data]を参照するクエリ/ SQL ステートメントを
 値集合ソースとするコンボボックス/リストボックスが配置されているフォーム/レポートを開いている。
 
・DAO または ADO を使用したコードにより、テーブル[my_Data]、またはテーブル[my_Data]を
 参照するクエリ/ SQL ステートメントの実行結果をレコードセットとして開いている。
 
以上のいずれかに該当している状況下において、テーブル[my_Data]の
定義内容を変更することは出来ません。
 
ALTER TABLE ステートメントは、変更対象となるテーブルが開かれていない状況で
実行するようにして下さい。
 
引用:
直前で
「delete * from my_Data;」
を実行していますが
ここではエラーが出ない

DELETE ステートメントは任意のテーブルのレコードを削除する命令であり、
テーブルの定義内容に作用するものではありませんので。

投稿日時: 24/08/19 14:59:18
投稿者: mmiwa

skさん
いつもありがとうございます。
 
ご指摘ありがとうございました。
 

引用:
・テーブル[my_Data]、またはテーブル[my_Data]を参照するクエリ/ SQL ステートメントを
 値集合ソースとするコンボボックス/リストボックスが配置されているフォーム/レポートを開いている

をしていました。
 
確認したつもりだったんですが…
お手数をかけ申し訳ありませんでした。
 
以後、入念に確認すよう気をつけます。
 
ありがとうございました。