- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Access 主キーの解除について)
Access 主キーの解除について
このQ&Aのポイント
- Access2007でVBAを使用してテーブルの主キーを設定・解除するプログラムを作成しました。しかし、解除プログラムでエラーメッセージが表示されます。手動で主キーを設定しなおしプログラムを実行すると、解除プログラムは動きます。なぜプログラムで設定した主キーでは解除ができないのでしょうか。
- Access2007でテーブルの主キーを設定・解除するためにVBAプログラムを使用しています。主キーの設定は正しくできますが、解除するプログラムを実行するとエラーメッセージが表示されます。手動で主キーを設定し直すと、解除プログラムは正常に動作します。プログラムで設定した主キーが正常に解除されない理由を教えてください。
- Access2007でVBAを使用してテーブルの主キーを設定・解除するプログラムを組みました。設定プログラムは動作するのですが、解除プログラムを実行するとエラーメッセージが出ます。手動で主キーを設定し直すと解除プログラムは正常に動作します。プログラムで設定した主キーが解除できない理由をお教えください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
この様な事をしたことがないので 同じようにしてみました。 Prytwenさんと同じようになります。 キーが残った時点で、テーブルデザインで確認したところ 私の作成したテーブルの主キーにはインデックス名 Index_248F9C22_6E12_4E86 が付けられていました。 その状態で お書きになっているコードからキー作成部分をコメントにして Dropに キー名としてIndex_248F9C22_6E12_4E86を 与えると問題なく動き、キーも削除されました。 インデックス名が、PrimaryKeyで作成されていないようですね (手動の場合は、主キーにするとPrimaryKeyとなる)
その他の回答 (1)
- kurodai2
- ベストアンサー率38% (77/202)
回答No.2
取りあえず、以下の書き方で 作成 削除が確認できました (目的と違っているかもしれませんが?) 'テーブル[売上]に主キーを設定します DoCmd.RunSQL "CREATE INDEX primarykey on 売上(no) with PRIMARY;" 'テーブル[売上]の主キーを解除します DoCmd.RunSQL "DROP INDEX PRIMARYKEY ON [売上];"
質問者
お礼
ありがとうございますw
お礼
なるほど、私も確認してみたらIndex_5B0A82C8_063F_439Bとなってました。 次はこのインデックス名を取得する方法を探してみます。これで先に進めそうです。 的確な回答、ありがとうございました。