OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

フォームを削除するVBA

  • 暇なときにでも
  • 質問No.182813
  • 閲覧数194
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 87% (34/39)

こんにちは。
NT4.0ででAccess97を使用しています。
あるAccessデータベースにあるフォームだけをすべて削除したいのですが、
一つ一つ削除するのは、面倒なので、VBAで一括削除したいのです。
For Each Next文を使うのだろうと思い、いろいろ試してみましたが、
私がオブジェクトをあまり理解していないせいで、コードの書き方がいまいちわかりませんでした。

よろしくお願い申し上げます。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1
レベル7

ベストアンサー率 50% (9/18)

こんな感じでどうでしょう?

まず、フォームを作成し、コマンドボタンを1個配置します
コマンドボタンのイベントプロシージャに下記コードを記して下さい
※参照設定で、「MS DAO3.5」を設定して下さい

'~~~~~~~~~~~~~~~~~~~~
Private Sub コマンド0_Click()
Dim DB As DAO.Database
Dim DOC As DAO.Document
Dim stMsg As String

'削除確認
stMsg = "すべてのフォームを削除しますか?"
If MsgBox(stMsg, vbQuestion + vbYesNo) = vbNo Then Exit Sub

'カレントデータベース設定
Set DB = CurrentDb

'登録されているフォームの数だけループ
For Each DOC In DB.Containers!Forms.Documents

'(自分以外の)
If DOC.Name <> Me.Name Then

'フォームオブジェクトの削除
DoCmd.DeleteObject acForm, DOC.Name

End If

Next

'データベース変数解放
Set DB = Nothing

End Sub
'~~~~~~~~~~~~~~~~~~~~

コマンドボタンを押下すると削除確認が表示され、「はい」を選択するとすべてのフォームは削除されます
ただし、自分自身のフォームは残ってしまいますが...(^_^;)
御期待に添えれば・・・
お礼コメント
kyoukorumi

お礼率 87% (34/39)

どうもありがとうございます。
大変助かりました!
とてもわかりやすかったです。
ほんとに、どうもありがとうございます。
投稿日時 - 2001-12-11 18:03:06
-PR-
-PR-
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ