Microsoft Access ClubAccess超初心者対象ForumAccess初級者対象ForumAccess初・中級者対象ForumAccess VBA Tips ForumDAO、ADO、SQL Forum

     

No43824.アクセスの画面の最小化?

タイトルアクセスの画面の最小化?
記事No: 43824
投稿日: 2005/03/17(Thu) 20:01
投稿者: にっさ
OS:xp
Access Version:2002

こんばんは。

アクセスのデータベースの画面を消して
フォームの画面のみを表示させるために

フォームの読み込み時に

Private Sub Form_Load()
Dim hMenu As Long
hMenu = GetSystemMenu(Application.hWndAccessApp, 0)
DeleteMenu hMenu, SC_CLOSE, MF_BYCOMMAND
DrawMenuBar Application.hWndAccessApp

Dim rc As Long
rc = ShowWindow(Application.hWndAccessApp, SW_SHOWMINIMIZED)

End Sub

このように書き込み

モジュールには

Public Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Public Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Public Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
Public Const MF_BYCOMMAND = &H0
Public Const SC_CLOSE = &HF060

Public Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Public Const SW_SHOWMINIMIZED = 2
Public Const SW_MINIMIZE = 6
Public Const SW_HIDE = 0

このように書き込み、フォームのポップアップを はい にすると
フォームの画面だけ表示されるようになります。

そこで、いくつかの自分で開発したデータベースを合体させ、
メインとなるメニュー画面から、それぞれのフォームを開くようにしたいと
上記のフォーム読み込み時のコードを全てのフォームに貼り付け
やってみたのですが
メインフォームからフォームAを開き、閉じるときに再度メインフォームを開き、フォームAを閉じて
今度はフォームBを開いて・・・と繰返しやってみたのですが、
一つのフォーム以外はデータベースの画面が出てきてしまって・・
全て同じように記述し、ポップアップも同じようにしているのですが
なにか他にできないものがあるのかどうか、お分かりになる方がいらっしゃれば
教えていただきたいと思っています。

タイトルRe: アクセスの画面の最小化?
記事No: 43886
投稿日: 2005/03/18(Fri) 16:58
投稿者: MJM
こんにちは。

当方の経験では、
AutoExecより、
ShowWindowをSW_SHOWMINIMIZEDで、1回だけ発行後、
メインフォームを開き、
以降、最後まで、メインフォームは開きっぱなしで、
各フォームをメインフォームの上に、開いたり、閉じたり、
(フォームは全てポップアップ)
ということで、問題なく動作していますが…
参考になりますでしょうか。

タイトルRe^2: アクセスの画面の最小化?
記事No: 43902
投稿日: 2005/03/18(Fri) 22:05
投稿者: にっさ
お返事ありがとうございます。

> 当方の経験では、
> AutoExecより、
> ShowWindowをSW_SHOWMINIMIZEDで、1回だけ発行後、
> メインフォームを開き、
> 以降、最後まで、メインフォームは開きっぱなしで、
> 各フォームをメインフォームの上に、開いたり、閉じたり、
> (フォームは全てポップアップ)
> ということで、問題なく動作していますが…
> 参考になりますでしょうか。

以前からの質問なのですが、
なぜか特定のフォームのみ、今までのやり方でやってみて
ちゃんと開いてもアクセスの画面が表示されずにメインフォームのみ開いて
くれます。
そのほかのフォームの場合はメインに戻ろうとすると
アクセスの画面とメインフォームとが開いてしまうのです・・・
ちゃんと開くものと開かないものの違いというと。。
わかりません・・・
わかることというと、ちゃんとなるものの場合は、メインフォームに戻るときに
メインフォームがフォーカスを取得していること。
ちゃんとならないものの場合は、フォーカスを取得していないで
メインフォームがグレーっぽくなっていることぐらいです。

またmjmさんの件でやってみたのですが、やはりちゃんと開いてくれる
フォーム以外のものはアクセスの画面が最小化にならずに開いてしまいます。

コードに問題があるのでしょうか・・・

タイトルRe^3: アクセスの画面の最小化?
記事No: 43926
投稿日: 2005/03/19(Sat) 13:35
投稿者: Nao
起動時の設定でデータベースウインドの表示のチェックボックスを
外してもだめですか???
データベースウインドが開かれているとそちらにフォーカスがある
場合がありますが・・・

外していたら、笑って許してください。

タイトルRe^4: アクセスの画面の最小化?
記事No: 43965
投稿日: 2005/03/20(Sun) 06:58
投稿者: にっさ
> 起動時の設定でデータベースウインドの表示のチェックボックスを
> 外してもだめですか???
> データベースウインドが開かれているとそちらにフォーカスがある
> 場合がありますが・・・
>
> 外していたら、笑って許してください。

おはようございます。
お返事が遅れまして申し訳ありません。

起動時の設定では全てのチェックボックスをはずしてあります。
やはり、特定のフォームだけが何度も開いたりメインフォームに戻ったりを
繰返しても大丈夫なのですが、どういうわけか他のフォームではメインに戻ったときに
アクセスの画面が最小化から最大化へ戻ってしまいます。


このAccessフォーラム過去ログ集は、Microsoft Access Club が運営しています

PLESKやcPanelを思いのまま、ヨーロッパのフランス、ドイツ等の大手データセンターに配置しています。
PLESKパネルやcPanelパネルを思いのまま..
ヨーロッパ大手データセンター(ドイツ、フランス)を利用できます。
応対は全て日本語、サポートデスクを介したメールアドレスで行ないます。

 

ページの先頭へ 前ページへ戻る