ACCESSフォームを常に最前面に表示したい

このQ&Aのポイント
  • ACCESSのフォームを常に最前面に表示させる方法について教えてください。
  • ACCESSのオブジェクトを最小化させ、他のアプリケーションを表示させる方法について教えてください。
  • 最小化させたAccessのオブジェクトをショートカットキーで表示させることは可能でしょうか。
回答を見る
  • ベストアンサー

ACCESSフォームを常に最前面に表示したい

ACCESSのフォームを常に最前面に表示したいと思っていましたが、それ以前にデータベースの作り込みのアドバイスをお願いすることが多く、お願いすることを後回しにしていました。しかし、少しでも手間を省きたいと思う様になりましたので、ご指導をお願いできればと思います。 アプリケーション:ACCESSヴァージョン2007 [オブジェクトの設定] デスクトップにデータベースのショートカットを配置し、プロパティーの設定で「実行時の大きさ・・」を最小値にしています。 [気になっていること] 全てのフォームは「ポップアップ」を「はい」にしていますが、Access内のウィンドウに於いては最前面になりますが、ブラウザーなどのアプリケーションを開いたときはその背後に隠れてしまいます。 [実現させたいこと1] 1、Accessのオブジェクトを常に前面に表示させて、他のアプリケーションを全面にしたい時は、フォームの最小化ボタンで最小化させる。 [実現させたいこと2(可能であれば)] 最小化させたAccessのオブジェクトをショートカットキーで表示させることは可能でしょうか。可能であればアドバイスをお願いします。 以上、宜しくお願いします。

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率65% (1579/2414)
回答No.3

Office2007以前の場合のところにある記載の全体に変更してください。 標準モジュールに記載してください。標準モジュールは作成しないとないので左のツリー上のところで右クリックして作成してください。 他にも標準モジュールに記載と説明されているものは標準モジュールに記載してください。

eokwave
質問者

お礼

アドバイスを頂いて長いブランクがありましたが、下記を標準モジュールに書き込みましたところ、ACCESS2007が最前面に表示される様になりました。それと、フリーのアプリケーション「最前面でポーズ 2.00(pause_200)」で最前面を切り替えることが可能なことも知りました。ご返事は遅くなりましたが、関連情報も得ることができましたので、対応いただいたこと感謝いたします。ありがとうございました。 [Accessの画面を他のアプリケーションより常に最前面に出す方法] 1、リボンの「作成」タブを選択し「マクロ」メニューから標準モジュールを選択する。 2、表示されたエディター「無地画面」に下記の記述を張り付ける。 Declare Function SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long Public Const SWP_NOMOVE = &H2 Public Const SWP_NOSIZE = &H1 Public Const HWND_TOPMOST = -1 Public Const HWND_NOTOPMOST = -2 Public Sub SetWindowTop(hWnd As Variant, flgTop As Boolean) If flgTop Then SetWindowPos hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE + SWP_NOSIZE Else SetWindowPos hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE + SWP_NOSIZE End If End Sub 3、対象のオブジェクトに以下記述をコーティング。 スタートフォームのイベント「読み込み時」に記述する Call SetWindowTop(hWndAccessApp, True) 「設定後に解除したい時は以下に書き換え」 Call SetWindowTop(hWndAccessApp, False) [追伸、お詫び申し上げます] 質問のタイトル「コンボボックスのテキスト窓にデータを表示させたい」に於いて、私の不慣れ「サイトの利用熟知不足」もあり、不愉快な思いをされたことお詫び申し上げます。最大の原因は、ACCESS作成プロセスに於いて知識の集約不足であると痛感しております。本当に申し訳ございませんでした。今回も貴重なアドバイスをありがとうございました。

その他の回答 (2)

  • kkkkkm
  • ベストアンサー率65% (1579/2414)
回答No.2

Windows APIはWindwsの機能をAccessのイベントプロシージャ(などWindowsで動いているソフトから)で使うというものです。 紹介したサイトの (1) Windows API の SetWindowPos の宣言 のコードの Public Const HWND_TOPMOST = -1 Public Const SWP_NOSIZE = &H1 Public Const SWP_NOMOVE = &H2 より上の部分を (4) 対応バージョン Office2007以前にも対応させる必要がある場合は、下記リンクを参考に書き換えてください。 のリンク先にある (ii) Office2007以前の場合 のところにあるコードと変更して 後はサイトの説明の通りに設定して利用してください。

eokwave
質問者

補足

ありがとうございます。キーボードで、「Altキー」を押しながら「F11キー」を押すと、VBE エディターをきどうさせて、切り張りして貼り付けたもののコードが赤色になります。甘ったれたことを言ってはいけませんが、下記をどの様に変更すればよろしいでしょうか。恥ずかしながらお尋ねします。 (1) Windows API の SetWindowPos の宣言のコードの Public Const HWND_TOPMOST = -1 Public Const SWP_NOSIZE = &H1 Public Const SWP_NOMOVE = &H2 より上の部分を「以下の記載ですが・・・」 Declare PtrSafe Function SetWindowPos Lib "user32" ( _ ByVal hwnd As LongPtr, _ ByVal hWndInsertAfter As LongPtr, _ ByVal x As Long, _ ByVal y As Long, _ ByVal cx As Long, _ ByVal cy As Long, _ ByVal wFlags As Long) As Long ​ (4) 対応バージョン Office2007以前にも対応させる必要がある場合は、下記リンクを参考に書き換えてください。 のリンク先にある (ii) Office2007以前の場合のところにあるコードと変更します。「記載の全体ですが・・・」 #If VBA7 Then Public Declare PtrSafe Function SetWindowPos Lib "user32" _ (ByVal hwnd As LongPtr, _ ByVal hWndInsertAfter As LongPtr, _ ByVal X As Long, ByVal Y As Long, _ ByVal cx As Long, ByVal cy As Long, _ ByVal wFlags As Long) As Long #Else Public Declare Function SetWindowPos Lib "user32" _ (ByVal hwnd As Long, _ ByVal hWndInsertAfter As Long, _ ByVal X As Long, ByVal Y As Long, _ ByVal cx As Long, _ ByVal cy As Long, _ ByVal wFlags As Long) As Long #End If 申し訳ございません。

  • kkkkkm
  • ベストアンサー率65% (1579/2414)
回答No.1

Accessフォームを常に最前面に表示する https://hatena19.com/always-display-the-access-form-on-top/ 最後の方に2007の場合は一部書き換えをするためのリンクがありますのでそちらも参考にしてください。

eokwave
質問者

お礼

アドバイス本当にありがとうございます。しかし、私にとってデータベース全体に対するコーティングはハードルが極めて高く、残念ながら先に進めないでいます。データベースのオブジェクトに対するコーティングは、なんとか少しづつでも追従ができましたが、本当に申し訳ございません。勝手で身勝手ではありますが(申し上げますが・・)、今回のテーマは基本的な機能「全てのデータベースに共通」に関することであり、成功させたい希望は持っています。申し訳ございませんが、今少しご誘導的「暗がりに明かりみたいな・・」なアドバイスをお願いできませんでしょうか。すいません。

関連するQ&A

  • ACCESSフォームを常に最前面に表示させたい

    ACCESS2010を使っています。ACCESS2010のフォームを開いた時、そのフォームを常に最前面に表示させる方法があれば教えて下さい。 【アドバイスをお願いしたい背景】 WEBアクセスに必要なID等をACCESS2010で管理しています。WEBページにID等を入力する際、殆どが2項目の入力になりますので、ACCESS2010のページからコピーしてWEBに張り付ける時、WEBページを最前面にする必要があります。そうすると、一旦、ACCESS2010のページがWEBページに隠れてしまいます。WEBサイズを変更したりする方法もありますが、常にACCESS2010のページを最前面に表示できれば、もっと使いやすいツールになりますので可能であれば教えて下さい。 以上、宜しくお願いします。

  • ACCESS フォーム、クエリの最前面表示について

    ACCESS フォーム、クエリの最前面表示について ACCESS2007でメインフォーム、サブフォームを作成し、各フォームはポップアップを有効にしているので、実行すると最前面に表示されますが、サブフォームから開くクエリが最背面に表示されてしまい、いちいちフォームを最小化なり、閉じたりしています。 クエリを最前面に表示させるにはどうしたらいいのでしょうか?

  • Access フォームが前面に表示されない

    Access フォームが前面に表示されないPCがあります どのようにしたら、前面に表示できるのでしょうか? ※Windows XP(sp3)+Office 2000(sp3)ですが、  前面に表示されないPCと前面に表示されるPCがあります 状況 ・該当フォームは、ポップアップ=はい,作業ウィンドウ固定=はい にて作成しています。  またサブフォームを持っています ・ALT+TABにて、Accessを切替表示すると前面に表示されます なにかヒントをお願いします

  • 常にメディアプレイヤーを前面に

    こんなことってできるんでしょうか。 ウィンドウズメディアプレイヤーを他のアプリケーションで作業中でも、常に前面に表示しておくということです。 たとえば、今現在こうしてブラウザで入力している場合は、メディアプレイヤーが起動していても、ブラウザの背後に隠れてしまいます。 他のアプリケーションについても、特定のアプリだけ前面に常に残しておくという設定ができれば最高ですが、どうなんでしょうか。

  • delphi6でフォームを常に最前面にするには

    delphi6を始めたばかりです カレンダーを作りました。 そのフォームを、他のアプリケーションがアクティブな場合でも常に最前面にするにはどうすればいいでしょうか。 よろしくお願いします。

  • アクセスで任意のフォームを前面に

    アクセス2000(WindowsXP)ですが、複数開いているフォームで任意のフォームを最前面にするには方法がありますか。閉じて開く操作をせずに実現できる方法はありませんか。ご存じの方があればよろしくお願いします。

  • フォームウィンドウを最前面に表示したい(ACCESS)

    ACCESS VBAを使っています。 あるタイミングで、あるフォームを表示させたいのです。 OpenFormを使ってみると、確かにフォームを開くことはできたのですが、実際は既に表示されているWindowの背面に開かれているので、目で確認することはできないのです。 新しいフォームを最前面に表示するにはどのようにしたらよいのでしょうか?

  • Accessのフォーム上にエクセルのシートを表示させたい!

    いつもお世話になっています。宜しくお願いします。 現在Access2002、Excel2002をつかってタイトルのようなことを実現したいと 思っています。 現在やっていることは、 エクセルファイルはあらかじめ作成しておき、それをフォームにサブフォームの ような形で表示しようと思っています。 しかしそのときに使うフォーム上のオブジェクトが分からず行き詰っています。 アクセスから エクセルファイルのオープン、シートの参照、セルの参照は アプリケーションオブジェクトを作ることで可能になったのですが、 フォーム上に表示する部分ができないのです。 基本的なことが理解できていないのかもしれませんが お気づきの方が居られましたら ご教授、宜しくお願いします。

  • ACCESS非表示でフォームのみ表示して起動したい

    ACCESS2010のオプションのカレントデータベースのフォームの表示を(表示しない)にして、AutoExecマクロから以下のMain()プロシージャを呼び出して 起動時にフォーム(メイン画面)を表示しています。 ----------------------------------------------- Function Main() As Integer 'メイン画面の表示 DoCmd.OpenForm "メイン画面", acNormal Main = 1 End Function ----------------------------------------------- このままでは、ACCESSファイル(.accdb)をダブルクリックして実行するとメイン画面とその背後にACCESSアプリケーション自体が表示されてしまいます。 そこで、Form_Openイベントプロシージャに ----------------------------------------------- Dim rc As Long rc = ShowWindow(Application.hWndAccessApp, SW_SHOWMINIMIZED) ----------------------------------------------- を記述したのですが、ACCESSアプリケーションは表示されなくなったのですが、フォーム(メイン画面)も表示されなくなってしまいました。 フォーム(メイン画面)だけ表示してACCESSアプリケーションは表示されないようにしたいのですがどのようにすればよいのでしょうか。 よろしくお願いします。

  • Access2007のフォームの表示が広がってしまう

    Access2003を使用し社員管理のデータベースを作成しました。 この社員管理データベースでは、社員を表示する際にフォームを左右に表示させるように設定しています。 左のフォームでは、社員一覧を縦長のフォームで作成し右側では、その詳細を表示するようにしています。一覧表で該当する顧客をクリックすると詳細フォームでその社員の詳細が表示されるようにしています。 フォームを並べて表示させることがAccess2003では、特に問題は無かったのですが、Accessでこの並んだフォームを開くと左右のフォームが横長に広がりさらに重なって表示されています。 Access2007でフォームの表示を固定させる方法はないのでしょうか? よろしくお願い致します。

専門家に質問してみよう