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

よろしくお願い申し上げます。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

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



まず、フォームを作成し、コマンドボタンを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
'~~~~~~~~~~~~~~~~~~~~

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

どうもありがとうございます。
大変助かりました!
とてもわかりやすかったです。
ほんとに、どうもありがとうございます。

お礼日時:2001/12/11 18:03

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QAccess2000のフォームでのフォームのIMEが、2度目以降変更してしまう。

アクセス初心者です。
Accsss2000のフォームでのデータ入力を楽におこなうために、例えば名前ならばテキストボックスのプロパティシートのその他タブから、IME入力モードをオンにしてかつIME変換モードを人名/地名に変更したのですが、1回目の入力はIMEが全角・人名モードになるのですが、2度目以降は半角カタカナ・人名/地名モードになってしまいます。全角ではありません。なぜでしょうか?
また上のタブにIME入力モード保持というのもありますが、どういう時に利用すればよいのでしょうか?

Aベストアンサー

> 1回目の入力はIMEが全角・人名モードになるのですが、
> 2度目以降は半角カタカナ・人名/地名モードになってしまいます。

恐らく、1回目の入力から2回目に当該テキストボックスへの移動までの
間に、半角カタカナを指定したテキストボックス(またはコンボボックス)を
経由しているのではないでしょうか。
(或いは『IME 入力モード』が「オフ」や「使用不可」、または英数系?)

ともあれ、回避策としては、『IME 入力モード』を、現在の「オン」から
「ひらがな」に変更します。
(「オン」は、「ひらがな/全角カタカナ/半角英数」などのモードを特に指定
 しない場合に使用します。そのため、特定モードで固定したい場合は、
 それに合わせた設定値(ここでは「ひらがな」)を指定する必要がある、
 ということです)


> 上のタブにIME入力モード保持というのもありますが、どういう時に
> 利用すればよいのでしょうか?

私自身はこの設定は使用していないのですが・・・(汗)

例えば、取引情報を入力する場合、『企業略称』テキストボックスには
「アルファベットの略称」や「漢字の略称」、「カタカナの略称」がそれぞれ
連続することになります。
このとき、同テキストボックスの『IME 入力モード』を「ひらがな」などに固定
してしまうと、アルファベットやカタカナの略称のデータを入力する際には
毎回手動で「全角カタカナ」や「半角英数」に切り替える・・・という使い方を
する方もいる可能性があります。
『IME 入力モード保持』は、恐らくそういう場合を想定した機能ではないかと
思います。
(もちろん、ひらがなからの変換で全角カタカナや半角英数に変換するように
 している人の場合は、切替は不要ですので、この設定は使用しなくても
 かまわないことになります)

> 1回目の入力はIMEが全角・人名モードになるのですが、
> 2度目以降は半角カタカナ・人名/地名モードになってしまいます。

恐らく、1回目の入力から2回目に当該テキストボックスへの移動までの
間に、半角カタカナを指定したテキストボックス(またはコンボボックス)を
経由しているのではないでしょうか。
(或いは『IME 入力モード』が「オフ」や「使用不可」、または英数系?)

ともあれ、回避策としては、『IME 入力モード』を、現在の「オン」から
「ひらがな」に変更します。
(「オン」は、...続きを読む

QAccess97をAccess2000に変換したい

Access97で作成されたmdbを、Access2000へ変換しようとしたところ、
おそらく変換自体はうまく行っているようなのですが、変換後のmdbを開こうとすると、”データベースの形式を認識できません。データベースは使用しているバージョンよりも新しいバージョンのMicrosoftAccessで作成されています。MicrosoftAccessを現在のバージョンにアップグレードしてからデータベースを開いてください”というダイアログが表示されます。

これはどうしたらAccess2000で開けるようになりますか。

Aベストアンサー

>開こうとするとダイアログがでるので何か問題があるような気がするのですが、
開けているけれど最初に書いたようなメッセージが出るのですか?

>開けているということは大丈夫なのでしょうか。
普通何のメッセージも出ません
やはりどこかおかしいのでしょう
元のmdbは保存してないのですか?
あればやり直すということも考えられますね
ないのであれば2000で修復を試みてみるぐらいかな

Qフォーム等入力時においてIMEが働かない(?)

よく起こる現象で、インターネットでフォーム入力や、Yahooとかの検索入力で日本語入力をしたいときに、IMEが働かない現象が起きています。半角英数のみ入力ができます。私の環境だけでしょうか‥。
キーボードの「半角/全角」キーが効かないので、IMEツールバーを出して、マウスで日本語入力の「あ」にしても入力画面では半角英数に戻ったりします。
Wordやメモ帳を起動すると、正常に働くので、メモ帳を立ち上げてそこへ入力して、コピーしてペーストをしたりして対処をしています・・。
常にメモ帳を立ち上げておけば解決とかの意味ではありません。
IEをアクティブウィンドウにした場合、IMEが働くなくのです。

Aベストアンサー

確かIEのバグだったと思います。

対処法のリンクを貼っておきますので、参考にしてください。
http://www.tku.ac.jp/~densan/local/ie7-ime/ie7-ime.html

QAccess2000でAccess97のテーブルを利用する方法

Access97からAccess2000へのコンバージョンを行っています。様々な問題が発生しているのですが、解消困難な問題があり質問させて頂きます。
まず、背景・環境など長くなりますが、説明します。
自社で開発したプログラムの97→2000への移行を行っていますが、予算とマシンスペックの問題で、ユーザーのOS(95、98、2000、XP)、Office(97、2000)共に混在する状況となります。また、一人のユーザーが複数の事業所で仕事をしており、使用するマシンも一定ではなく、一台のマシンを複数のユーザーが使用します。
問題となっているプログラムは、プログラム本体とデータ部分がそれぞれ別のmdbファイルとして構成されており、本体からテーブルのリンクでデータ用mdbを利用しています。
また、ワークグループを利用しパスワードによるアクセス管理を行っています。
データ部分は、他のプログラムでも利用しており、そのプログラムも97版と2000版が混在しています。
そのため、データmdbは97で利用したいと思っています。
ところが、2000のプログラムでDlookup関数を使用し、97データの取得結果が正しくありません。途中で切れたり、余計な文字が後ろについてしまいます。リンクテーブルを選択クエリにしても同じでした。

(正)東京三菱銀行→(誤)東京三菱銀行??○!!
(正)123456→(誤)1234
Dlookup("フィールド名" & "","リンクテーブル名")
という風に文字列の後に空文字を加えると正しく表示されます。
ただ、すべてのDlookup関数を調べ処理を追加するには数も多く、今後の保守に問題が残ります。
また、データを2000に変換すると問題が発生しません。しかし、互換のため、97形式でデータmdbを作成することも考えたのですが、設定したワークグループセキュリティが解除されることも判明しています。
解決方法か関連情報をお持ちの方、ご教授お願いします。

Access97からAccess2000へのコンバージョンを行っています。様々な問題が発生しているのですが、解消困難な問題があり質問させて頂きます。
まず、背景・環境など長くなりますが、説明します。
自社で開発したプログラムの97→2000への移行を行っていますが、予算とマシンスペックの問題で、ユーザーのOS(95、98、2000、XP)、Office(97、2000)共に混在する状況となります。また、一人のユーザーが複数の事業所で仕事をしており、使用するマシンも一定ではなく、一台のマシンを複数のユーザーが使用します。
...続きを読む

Aベストアンサー

DLookUpはAccessのライブラリの関数です。バージョンの違うDBに、バージョンの違う同名のAccess関数を使用するのはどうかと、、、

SQL文で問い合わせても一緒ですか?

可能であれば、ADOを利用することをお勧めします。

QWebフォームのIMEモードを入力項目毎に自動切替

ある人と話していて、議論になったので質問します。世の中にはたくさんのウェブフォームがあって、名前や住所、電話番号などの登録情報を入力することが多々あります。あまり深く考えたことはなかったのですが、私はなんとなく、「名前や住所のテキスト入力時には自動的にIMEの入力モードが日本語(ひらがな)になり、電話番号やメールアドレスのテキスト入力時には英数になる」ものだと思っていました。自分でIMEを操作することなく、テキストフィールドにタブで移動したりもしくはマウスをクリックしたときにアプリケーション側で制御されるものが大半だと思っておりました。それを聞いてある人は「そんなことはない、世の中の大半のアプリはそんなことを制御していない、「普通」は自分でIMEで制御しながら入力するものだ」、と言っていたので議論になりました。これからウェブサイトを作ろうと思っているので、最終的にはこの議論はアプリ側にそのような実装をするかどうかというところに帰着するのですが、まずは「一般的にどうなのか」というところでご意見を頂きたいと思います。ちなみに、日本のメジャーなサイト(航空会社、ポータル、携帯電話、電気屋)10個でユーザ登録フォームを確認したところ、名前欄をクリックしてもいずれもIMEのモードはひらがなに変更されませんでした。そこで今は友人が正しくて、僕が間違っていたどころか、「そもそも、名前入力時に自動的にひらがなにモード変換されるようなサイトって本当にあるのだろうか。。」というような状態になっております。どなたか、教えてください。よろしくお願いします。

ある人と話していて、議論になったので質問します。世の中にはたくさんのウェブフォームがあって、名前や住所、電話番号などの登録情報を入力することが多々あります。あまり深く考えたことはなかったのですが、私はなんとなく、「名前や住所のテキスト入力時には自動的にIMEの入力モードが日本語(ひらがな)になり、電話番号やメールアドレスのテキスト入力時には英数になる」ものだと思っていました。自分でIMEを操作することなく、テキストフィールドにタブで移動したりもしくはマウスをクリックしたときにア...続きを読む

Aベストアンサー

IMEのON/OFFができるスタイルシート「ime-mode」は、Internet Explorerが独自に追加した仕様で、Internet Explorerでは入力モードが切り替わりますが、その他のブラウザでは保証されません。
http://www.htmq.com/style/ime-mode.shtml

今、確認したところ、IE8はもちろん切り替わり、Firefox 3.6も切り替わりましたが、Google Chromeは切り替わりませんでした。
Opera,Safari,Sleipnir…等は試してません。

大手のサイトでは「より多くのブラウザで表示できること」が求められますので、独自仕様の「ime-mode」を使っているところは少ないのではないでしょうか。
逆に「Internet Explorerしか表示できなくて良い」と割り切ってるサイトや、社内だけに公開するようなページは「ime-mode」が使われていると思います。

QACCESS2000→ACCESS97に変換した際のエラー

ACCESS2000で作成したアプリケーションをどうしても97にバージョンを下げないと
いけなくなり、97に落としたのですが、下記のようなエラーが出て困っています。わかる方教えて下さい。お願いいたします。
docmd.close
docmd.OpenForm○○ →  ココでエラー
内容
「OpenFormのアクションはキャンセルされました
 オブジェクトのメゾットを実行しようとしましたが表示されたダイヤログボックスでキャンセルがクリックされました。(実行時エラー:2501)」
 

Aベストアンサー

Access2000→Access97への変換時に注意しないといけないことは、オブジェクト等に設定した文字列ですね
これが相当にメンドくさい作業です(-"-;)

文字列によってこのようなエラーがでるのは、フォームとレポートのときのみです
他のテーブル・クエリ・マクロ・モジュールはすんなり変換できます
(?モジュールもコーディングによってはエラーがでたかも...)

で、自分がやった方法とはフォームとレポートを少しづつ変換していく方法ですね。
例えば、一気にデータベースを変換するのではなくて、Access2000にて新規データベースにフォームとレポートを2個か3個づつエクスポートしていき、それからAccess97に変換していきます。

変換後にエラーが出た場合にはAccess2000にて原因調査していきます。
Access2000にて正常に動作していたとしても変換時にエラーになる場合があります。
(別にAccess97で動作しないというわけではありません。正常に変換後に元の文字列に戻しても動作します。変換時になんかしらの原因で動作不良に陥ることがあります。)

冒頭でも申しましたように大抵の原因は文字列です。
どのような文字列がエラーになりやすいかとかは経験談なんですが、「文字列が短い」、「プログラムの予約語に似ている」とかがエラーになりやすいですね。

今回の件ですが、フォームを開くコマンドにてエラーが出ているということなので、その開く対象フォームが単独で開けるかをお試しください。
開けなければ、その対象フォームをAccess2000よりまた再変換を行って下さい。

長々と書いてしまいましたが、Access2000からAccess97に変換する作業は相当に労力がいる作業です。
動作しないところがあってもAccess97の方では、それを修正することは出来ません。
Access2000にて文字列の改善をはかり、また再変換を行うという手順しかないと思われます。
※すべての変換が終了後は、Access97とAccess2000の変換は両方向ともすんなりいくようになります。
地道に頑張りましょう。

Access2000→Access97への変換時に注意しないといけないことは、オブジェクト等に設定した文字列ですね
これが相当にメンドくさい作業です(-"-;)

文字列によってこのようなエラーがでるのは、フォームとレポートのときのみです
他のテーブル・クエリ・マクロ・モジュールはすんなり変換できます
(?モジュールもコーディングによってはエラーがでたかも...)

で、自分がやった方法とはフォームとレポートを少しづつ変換していく方法ですね。
例えば、一気にデータベースを変換するのではなくて、Access2...続きを読む

QACCESS フォーム上 テキストボックスを移動するごとに文字の入力モードが戻ってしまう

ACCESSでフォーム上で入力をしています。
テキストボックスを移動するごとに半角英数になってしまい非常に不便です。

テーブルではIME入力モード:ひらがな、IME返還モード:一般としています。
テーブルのデザインビューの状態では指定している通りのひらがなで入力できるのが、フォームになると半角英数の状態です。
フォームのプロパティから何か設定を変更しなければいけないのでしょうか?
よろしくお願い致します。

Aベストアンサー

maigo-no-konekoさん
ACCESS2000では次の機能があります。
テーブルの項目定義のIMEの設定内容が引き継がれる仕様なのか
否か不明ですが、フォームの定義画面でテキスト項目やコンボボックス
など入力項目毎に指定します。
(ただし、シフトキーを押しながらマウスクリックすることで
複数選択できます)

1)テキストポックスのプロパティ画面を呼び出します。
2)その他 タブにIME関連の項目があります。
  IME入力モード保持 直前に入力した項目のIMEの入力設定
  状態を引き継ぐ場合は「はい」にします。直前の入力項目の
  設定によらない場合は「いいえ」にします。
  IME入力モード オンまたはひらがな等にします。
           ここでご希望の入力方法を選択します。
  IME変換モード 一般(人名や地名などを入力す場合は
  人名/地名)にします。

QAccess97から2000に入れ替えて・・・

単に・・・「If CurrentUser() = "Kanri" then」
とかをフォームのモジュールに記述してるんですが、
Ac2000でも全然問題なく動作する(mdbファイル)と、
「実行時エラー"5"」で止まるmdbファイルがあります。

MicrosoftVisualBasic の参照設定も同じに合わせてありますが、これは一体何処が悪いんでしょうか?

Aベストアンサー

>「実行時エラー"5"」で止まるmdbファイル
実行時エラー'5'はプロシージャの呼び出しまたは引数が不正です。のメッセージですよね。参照設定が同様にしてあれば環境には影響されないと思いますが・・。
デバッグを押すとIf CurrentUser() = "Kanri" then等のコードの部分が反転で表示されると思いますがそのとき変転されているところにマウスのポインタを持っていくと必要なチェック条件等が表示されると思います。
例えば"Kanri"だけではなく""のチェックも必要とか・・。
その辺を確認してコードを修正しなくてはダメだと思います。
止まってしまうmdbをVBEでコンパイルしてみてください。

QAccess フォームのテキストボックスに半角英字のみで入力する設定は

IME入力モードをテーブル・フォームともオフにしたのですがひらがな入力モードになってしまいます。
フォームのテキストボックスに半角英字のみで入力する設定としてプロパティのIME入力モードをオフにするやり方自体が間違っているのでしょうか。
それともATOKを使っているなど利用するパソコン側の問題でしょうか

Aベストアンサー

IME入力モードを「使用不可」にしましょう。

QACCESS97をw2kで

W2KでOFFICE97をインストールしたところ、ACCESSだけが使えません。エラーメッセージは”MS09.DLLがありません”とでます。(英語のエラーメッセージでしたので...多分訳詞はこれで良いと思いますが)どうしたら良いでしょうか(涙).ちなみにP/Cの環境ですが、以前はW2kにOFFICE2000がインストールしていましたが、97のACCESSが使いたかった為にACCESS97だけを単独でインストールしましたが、同じエラーがでた為OFFICE2000をアンインストールしてOFFICE97を単独でいれました(今度はOFFICE97全て).WORDとEXCELは動きますが、ACCESSだけは動きません.OSの再インストールはしたくありません.ネットワークがつながっていますので、他のP/Cからこのエラーメッセージであるファイルをコピーしてもってこれないでしょうか?またw2kはsp1に更新済みです.宜しくお願いします.

Aベストアンサー

MS09.DLLは他のPCからコピーして使えるはずです。
OFFICE97をインストールしてあればOFFICE2000にバージョンアップする際に97の
WORD・EXCEL・ACCESSを残して2000のWORD・EXCEL・ACCESSをインストールできる
ので97と2000を共存させられます。
97のWORD・EXCELが要らなくACCESS97のみ残してACCESS97と2000両方とも使える
ようにも選択できます。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報