• ベストアンサー

Access 複数フォームを開き、画面の最上面にしたいフォームをコント

Access 複数フォームを開き、画面の最上面にしたいフォームをコントロールするコマンドを知りたい。 複数のフォームを開きます。 画面の最上面にしたいフォームをコントロールするコマンドは何を使えば良いのかご教授下さい。 Aのフォーム上で、Bのフォームを開くボタンを押す。 Bのフォームが開かれAのフォームの上に表示される。 Bのフォーム上の、切替ボタンを押すとAのフォームが上に表示させたい。 Bのフォームは、開くのに時間がかかる為閉じたくないのです。 Forms!A.SetFocusを記述したのですが変化なし Forms!A.Activateを記述でエラー! お願いします。

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

  • ベストアンサー
  • noyuo
  • ベストアンサー率39% (33/84)
回答No.3

DoCmd.SelectObject acForm, "A" では、どうですか?

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • m3_maki
  • ベストアンサー率64% (296/460)
回答No.4

横から失礼します。 > A、Bフォームのポップアッププロパティは「いいえ」です。 ということですが、 「作業ウィンドウ固定」は「はい」になっていませんか? あるいは、フォームを開くコードで WindowMode を acDialog にしていませんか? Bのフォームが、上記のどちらかの方法で開かれている場合 Bのフォームを閉じるか、非表示にするまで Aのフォームに制御を戻すことはできません。 > Bのフォームは、開くのに時間がかかる為閉じたくないのです。 ということなら、B の切り替えボタンに、   Me.Visible=False で、B を非表示にしたらどうでしょう。 この場合、A のフォームを閉じるときに B も閉じるようなコードも必要になってくるかもしれませんね。

s_masasama
質問者

お礼

ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • layy
  • ベストアンサー率23% (292/1222)
回答No.2

Aのフォームを開くときだけポップアップをはいにして閉じるときいいえ、Bは開いたまま最大表示、ポップアップはいいえ、で出来ると思います。SETFOCUSで制御しなくても良いです。 ポップアップの使い方を学習すると良いです。

全文を見る
すると、全ての回答が全文表示されます。
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

B画面の「ポップアップ」プロパティが「はい」に なっていないか調べてみてください。 ポップアップフォームはそうでないフォームより 前に(フォーカスが無くても)表示されます。

s_masasama
質問者

補足

ありがとうございます。 A、Bフォームのポップアッププロパティは「いいえ」です。 コマンド的には、フォーム名.SetFocusで良いのでしょうか? お願いします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Access 2重3重のポップアップフォームの場合

    Accessです。 フォームを3つ作りました。 フォーム1=「A] フォーム1=「B]>ポップアップ「はい」 作業ウインド固定「はい」 フォーム1=「C]>ポップアップ「はい」 作業ウインド固定「はい」 「A」が開くとき Private Sub Form_Open(Cancel As Integer) ____DoCmd.OpenForm "フォーム2", , , , , acHidden ____DoCmd.OpenForm "フォーム3", , , , , acHidden End Sub として 「A」にはボタンがあってクリックすると「B」が Visible=True になります。 Private Sub コマンド1_Click() ____Forms!フォーム2.Visible = True ____Forms!フォーム2.SetFocus End Sub さらに「B」にもボタンがあってクリックすると「C」が Visible=True になります。 Private Sub コマンド1_Click() ____Forms!フォーム3.Visible = True ____Forms!フォーム3.SetFocus End Sub 「C」が現れた後、マウスイベントがきかなくなります。 というより、閉じることもできなく、アクセス本体をCLT+ALT+DELで強制終了させなくてはいけなくなります。 対処方法を教えて下さい。

  • Access メインフォーム サブフォームにて

    お世話になります。 Accessにて メインフォームにコマンドボタンを置いて、クリックするとサブフォームのレコードが 次に行くようにしたいのですが、 コマンドボタン クリック Forms![メインフォーム]![サブフォーム名].Form!フィールド名.SetFocus DoCmd.GoToRecord , , acNext メインフォームとサブフォームのレコードが次に行ってしまいます。 サブフォームだけ次のレコードに行くには、どのようにすれば良いのでしょうか。 分かる方教えて下さい。 宜しくお願いします。

  • Access フォームの入力について

    アクセス初心者です。 フォームA(メインとなる画面)でコマンドボタンをクリックすると フォームBが開くように設定しました。 フォームAでレコード1を入力時にコマンドボタンをクリックすると フォームBのレコード1に フォームAのレコード5を入力時にコマンドボタンをクリックすると フォームBのレコード5に移動してデータを入力できるようにすることは可能でしょうか?可能であればどのようにしたらよいでしょうか? 具体的には テーブル 社員NO、氏名・・・、希望地域(yes/no型)があります。 フォームA ・社員NO ・氏名など フォームB ・希望地域(チェックボックスでチェックする。複数選択可) フォームAを入力時にフォームBを開いて希望地域にチェックできる というようにしたいのですが、 フォームAからフォームBに移動するといつもレコード1が表示されてしまいます。 自分なりに試行錯誤しているのですがどうしてもできません。 よろしくお願いします。

  • access フォーム1からレコードコピー

    access2003 Win-XP フォーム1   データ1  コマンドボタン   データ2  コマンドボタン フォーム2   テキスト  フォーム1のデータを選択してコマンドボタンをクリックし、次のデータも選択クリックして  フォーム2のテキストへ書き出す。ここへは追加され、複数のデータが書き込まれるように  したいと考えています。 1つのデータを選択書き出しなら  Private Sub コマンドボタン_Click() forms![フォーム2]![データ項目] = Me.データ項目  End Sub  これでできますが、テキストにどんどん追加するにはどうすればいいでしょうか? VBの未熟者です。宜しくお願いします。  

  • ACCESS フォームについて

    お世話になっております。 ACCESSのフォームについてのご質問ですが、 2つのフォーム『fm_A』と『fm_B』があり、 fm_A・・・テキストボックス・コマンドボタン fm_B・・・テキストボックス・コマンドボタン グローバル変数一つ があります。 fm_Aのコマンドボタンをクリックすると、fm_Bが開き、fm_Bが開いているときはfm_Aに戻れなくしようとしております。 fm_Bのテキストボックスへ文字をいれ、fm_Bのコマンドボタンをクリックするとグローバル変数へその内容を保存。 保存後fm_Bが閉じてそのグローバル変数をfm_Aのテキストボックスへ入れる。 上記の作業をしようとおもったのですが、どうすればいいのかわかりません。 VB6の場合はform.showを使ってオプションで固定を使えば出来たのですが・・・ よろしくお願いします。

  • MS-ACCESSのフォーム切り替え表示について

    フォームA(少量データ)からフォームB(大容量データ)を呼び出して表示させる方法について 教えてください。 まず、フォームAは複数の個人名のボタンとサブフォームで全員の最新情報が表示される ものを作っています。 この個人名のボタンをクリックするとフォームBにその個人の全情報を表示させる仕組みなのですが、フォームBは情報量が多い為、表示させるのに時間がかかります。 そこで下記のようなVBAを記述し、Do~LoopでフォームBが開くまでの時間を稼ごうと思っても 次の処理が行なわれてしまい、エラーになってしまいます。 Private Sub ボタン_Click() DoCmd.OpenForm "フォームB" Do Until SysCmd(acSysCmdGetObjectState, acForm, "フォームB") = acObjStateOpen DoEvents Loop Application.Forms![フォームB].Controls![担当者名] = "担当A" Me.フォームB.Requery End Sub これでフォームBが開くまで待ってから次のステップのフォームB内の条件設定や Requery処理を行なうと思っているのですがうまくいきません。 DoEvents処理が入っているせいかと思い、はずしたのですがそれでもうまくいきません。 もともとはフォームBだけで運用していたのですがデータ量が増えて表示に時間がかかり すぎるので新たに項目は同じで件数の少ない最新情報のみのテーブルを作成し、 それをもとにフォームAを作成しています。 ですのでフォームA,Bともに同じようなサブフォームになっており、またそれぞれの サブフォームを構成するテーブルが異なる為に1つのフォームでの処理ができません。 拙い説明ですがどなたかご教授願います。

  • なぜエラーになるのでしょう?アクティブコントロール

    ちょっと変なやり方かもしれないのですが、都合上こうやりたいので教えてください。 フォーム1の中にフォーム2を入れてサブフォームとして フォーム2の中にコマンドボタンを一つ置きました。 そのコマンドボタンを押した時に、そのコマンドボタン名を取得したいのですがうまくできません。 フォームは20個ぐらいあってこれと同じ動きをしたいので、 フォームモジュールには Private Sub コマンド0_Click() Call アクティブコントロール名を取得する End Sub として、 標準モジュールにコードは書いています。 Sub アクティブコントロール名を取得する() Dim フォーム As String フォーム = Screen.ActiveForm.Name MsgBox "アクティブコントロール名" & Forms(フォーム).ActiveControl.Caption End Sub にすると、オブジェクトは、このプロパティまたはメソッドをサポートしていません。(Error 438)になります。 そもそも、フォーム = Screen.ActiveForm.Nameの時点で、フォーム1になっています。 実際のコマンドボタンはフォーム2にあるのに。 なので、無理矢理 MsgBox "アクティブコントロール名" & Forms("フォーム2").ActiveControl.Caption にしたら、 実行時エラー2450 マクロの式またはVisualBasicコードで参照されている'フォーム2'が見つかりません。 という違うエラーになりました。 Sub アクティブコントロール名を取得する() Dim フォーム As String フォーム = Screen.ActiveForm.Name Forms("フォーム2").SetFocus MsgBox "アクティブコントロール名" & Forms("フォーム2").ActiveControl.Caption End Sub にすればいいのかな?と思ったら Forms("フォーム2").SetFocusでアウトでした。 もともとはサブフォームのコントロールから発信したイベントなのに、 サブフォームのコントロールの値が取れないのでしょうか? 実際のmdbファイルではコマンドボタンではなくテキストです。 ご回答よろしくお願いします。

  • Access2000 フォーム/サブフォームについて

    質問させていただきます。 フォーム/サブフォーム形式で画面を作っています。サブフォームは帳票形式で、複数のレコードを表示しており、各行の左にコマンドボタンを用意し、それをクリックすると、更新クエリー、削除クエリーが動くようにしています。 しかし、更新、削除クエリーとも ”0件のレコード”で処理が正しく動作しません。 ちなみに、両クエリの抽出条件は・・・ [Forms]![メインフォーム]![サブフォーム]![商品コード] しかし、フォームを使わずクエリーから実行する(パラメータに条件を手入力する)と正しく動作します。 記述ミスがないか何度も見返したのですが・・・。 「サブフォームの目的の行の商品コードと一致するデータを処理する」としたいのですが・・・。

  • 1つのクエリを複数のフォームで使用したい!

    1つのクエリを複数のフォームで使用したい! Win Xp access2003 いつもお世話になっております、今回はクエリについてアドバイスお願いいたします。 フォームAを開いているちきはフォームAのtxt顧客コードを条件にし フォームBを開いているときはフォームBのtxt顧客コードを条件に切替えたいのですが [forms]![フォームA]![txt顧客コード] Or [forms]![フォームB]![txt顧客コード] ではパラメータでもう片方の値を要求されてしまいます。 別のフォームを参照する場合はクエリを2つ作るしか無いのでしょうか? アドバイス宜しくお願いいたします、

  • ボタンを押すとフォームからフォームの画面にとぶようにするには

    アクセスで、フォームの画面をいくつか作り、コマンドボタンのイベントビルドをVBAで書いています。 いま、フォーム1の画面のボタンをクリックすると、フォーム2の画面にとんでいくようにするにはどうすれがいいでしょうか。

このQ&Aのポイント
  • Windows11で使用できないMCF-650CD/CDWについて相談したい。接続方法はUSBコードで、関連ソフトはBELL DESIGN。電話回線はひかり回線。
  • お困りの方へ:Windows11で使用できないMCF-650CD/CDWについてのトラブルを解決する方法。接続方法はUSBコードで、関連ソフトはBELL DESIGN。電話回線はひかり回線。
  • MCF-650CD/CDWがWindows11で使用できない場合の対処法。USBコードで接続し、関連ソフトはBELL DESIGNを利用。電話回線はひかり回線が必要。
回答を見る