• ベストアンサー

Accessのテーブルをすべて削除

テーブルが50個ぐらいあるのですが、それらを一気に削除する方法はないでしょうか? 現在は1つ1つを選択して削除しています。 なにか簡単な方法があれば教えてください。お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • peace510
  • ベストアンサー率50% (1/2)
回答No.2

テーブルはアクセスの基本となるので、それを削除するということはそのデータべース(ファイル)を基本的に再構築するものと考え回答いたします。 少し変則的なやりかたですが、アクセスのデータベースを一からやり直したいけど、一部残したい場合私は一度新しいデータベースを作成し、必要なクエリーやフォーム、レポートなどの必要なものをすべてインポートします。そうすると、必要な物だけが残ったデータベースになります。このときにテーブルのデータだけ削除しテーブル構造は残したいのなら、オプションで『テーブル構造のみ』にチェックをいれます。もしファイル名を同一にしたいのなら、元のファイルをリネーム(名前の変更)で”fale名_old"などとして、新しいファイルを元のファイル名にするといいでしょう。ただし、テーブルを削除したまま(テーブル構造のみもインポートしなかった場合)では、クエリーは開けませんし、クエリーはその状態で一度デザイン画面を開き『変更を保存する』にしてしまうと、もう一度作りなおす必要があります。フォームやレポートも各フィールドがErrorとなります。念のために。

ken_ishida0
質問者

お礼

丁寧な説明ありがとうございました。 設計から考えていきます。

その他の回答 (1)

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

うまくいくかどうかわかりませんが。 標準モジュールに以下のプロシージャを作ります。 そして、新規マクロを作成し、アクションにプロシージャの実行を選択します。 そして、プロシージャ名に、deleteAllTable ()を入力して保存します。 あとは、そのマクロを実行します。 一度に全部消えないかも知れません。 その時は、何回か実行すれば全部削除できると思いますが。 うまくいかなかったらすいません。 Public Function deleteAllTable() As Boolean Dim delTable As TableDef With CurrentDb For Each delTable In .TableDefs If (delTable.Attributes And dbSystemObject) = False Then .TableDefs.Delete delTable.Name End If Next End With deleteAllTable = True End Function

ken_ishida0
質問者

お礼

なぜかうまくいきませんでした。 わざわざ書いていただきありがとうございました。

関連するQ&A

専門家に質問してみよう