Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2154 / 2272 ツリー ←次へ | 前へ→

【3668】データベースオブジェクトの削除方法 山田 04/10/10(日) 0:59 質問[未読]
【3669】Re:データベースオブジェクトの削除方法 Gin_II 04/10/10(日) 19:32 回答[未読]
【3676】Re:データベースオブジェクトの削除方法 山田 04/10/12(火) 7:42 質問[未読]
【3678】Re:データベースオブジェクトの削除方法 Gin_II 04/10/12(火) 17:56 回答[未読]
【3688】Re:データベースオブジェクトの削除方法 山田 04/10/13(水) 13:01 質問[未読]
【3689】Re:データベースオブジェクトの削除方法 Gin_II 04/10/13(水) 13:11 回答[未読]
【3707】Re:データベースオブジェクトの削除方法 山田 04/10/14(木) 12:39 お礼[未読]

【3668】データベースオブジェクトの削除方法
質問  山田  - 04/10/10(日) 0:59 -

引用なし
パスワード
   Accessに作成したフォーム、レポート、マクロ、モジュールを
すべて削除する方法を教えてください。
いろいろ調べてみましたが、
オブジェクト変数とか、for each ・・・next を使えば良いのかな?とは
思うのですが、その使い方が分かりません。
どなたか 教えていただけませんか
宜しくお願いします。

【3669】Re:データベースオブジェクトの削除方法
回答  Gin_II  - 04/10/10(日) 19:32 -

引用なし
パスワード
   >Accessに作成したフォーム、レポート、マクロ、モジュールを
>すべて削除する方法を教えてください。

テーブル一覧 とか、フォーム一覧 とかなら、For Each 〜 Next で
できると思いますが、全部となると、システムテーブルを参照した方が
簡単ですね。

ただ、全部削除するのなら、新規ファイルを作った方が簡単だと思いますが、
テーブル・クエリだけを残すということなのでしょうか??

【3676】Re:データベースオブジェクトの削除方法
質問  山田  - 04/10/12(火) 7:42 -

引用なし
パスワード
   ▼Gin_II さん:
>>Accessに作成したフォーム、レポート、マクロ、モジュールを
>>すべて削除する方法を教えてください。
>
>テーブル一覧 とか、フォーム一覧 とかなら、For Each 〜 Next で
>できると思いますが、全部となると、システムテーブルを参照した方が
>簡単ですね。
>
>ただ、全部削除するのなら、新規ファイルを作った方が簡単だと思いますが、
>テーブル・クエリだけを残すということなのでしょうか??

回答有難うございます。
下記のコーディングで、テーブルとクエリーの削除は出来たのですが
フォーム、レポート、マクロ、モジュールは同じように出来ません。
formdefsとかreportdefs・・・とかは無いようなので?
なお、実際にはこの中にIF文をいれて、削除しないものは
選択するようにしたいと思っています。

Set db = CurrentDb
For Each tb In db.tabledefs
   DoCmd.DeleteObject acTable, tb.Name
Next
For Each qr In db.querydefs
   DoCmd.DeleteObject acQuery, qr.Name
Next

For Each 〜 Next を用いたフォーム、レポート、マクロ、モジュールの
削除方法をご教授ください。宜しくお願いします。

【3678】Re:データベースオブジェクトの削除方法
回答  Gin_II  - 04/10/12(火) 17:56 -

引用なし
パスワード
   >For Each 〜 Next を用いたフォーム、レポート、マクロ、モジュールの
>削除方法をご教授ください。宜しくお願いします。

マクロの取得方法はよく分かりません。
ので、システムテーブルを参照する方法を。

SELECT Swith(MsysObjects.Type=1,"Table",
       MsysObjects.Type=4,"Link_Table",
       MsysObjects.Type=5,"Query",
       MsysObjects.Type=6,"Link_Table",
       MsysObjects.Type=-32761,"Module",
       MsysObjects.Type=-32764,"Report",
       MsysObjects.Type=-32766,"Macro",
       MsysObjects.Type=-32768,"Form"),
    MsysObjects.Name
FROM MsysObjects
WHERE Left$([Name],1)<>"~"
ORDER BY MsysObjects.Type, MsysObjects.Name;

上記を、クエリのSQLビューで貼り付けてみてください。

【3688】Re:データベースオブジェクトの削除方法
質問  山田  - 04/10/13(水) 13:01 -

引用なし
パスワード
   ▼Gin_II さん:
>>For Each 〜 Next を用いたフォーム、レポート、マクロ、モジュールの
>>削除方法をご教授ください。宜しくお願いします。
>
>マクロの取得方法はよく分かりません。
>ので、システムテーブルを参照する方法を。
>
>SELECT Swith(MsysObjects.Type=1,"Table",
>       MsysObjects.Type=4,"Link_Table",
>       MsysObjects.Type=5,"Query",
>       MsysObjects.Type=6,"Link_Table",
>       MsysObjects.Type=-32761,"Module",
>       MsysObjects.Type=-32764,"Report",
>       MsysObjects.Type=-32766,"Macro",
>       MsysObjects.Type=-32768,"Form"),
>    MsysObjects.Name
>FROM MsysObjects
>WHERE Left$([Name],1)<>"~"
>ORDER BY MsysObjects.Type, MsysObjects.Name;
>
>上記を、クエリのSQLビューで貼り付けてみてください。

実行しましたが、
「構文エラー、演算子がありませんと出ます。」
ところで、この方法でIF文を用いて、選択した以外の全ての
オブジェクトを削除できるのでしょうか?

【3689】Re:データベースオブジェクトの削除方法
回答  Gin_II  - 04/10/13(水) 13:11 -

引用なし
パスワード
   つづりが間違ってますね。。(^^ゞ

SELECT Switch([Type]=1,"Table",
       [Type]=4,"Link_Table",
       [Type]=5,"Query",
       [Type]=6,"Link_Table",
       [Type]=-32761,"Module",
       [Type]=-32764,"Report",
       [Type]=-32766,"Macro",
       [Type]=-32768,"Form") AS OjbType,
    MsysObjects.Name
FROM MsysObjects
WHERE (((Left$([Name],1))<>"~"))
ORDER BY MsysObjects.Name;

【3707】Re:データベースオブジェクトの削除方法
お礼  山田  - 04/10/14(木) 12:39 -

引用なし
パスワード
   できました。
有難うございました。

2154 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078299
(SS)C-BOARD v3.8 is Free