Public Declare Function ShellExecute Lib "shell32.dll" Alias _
"ShellExecuteA" (ByVal hwnd As Long, ByVal lpszOp As _
String, ByVal lpszFile As String, ByVal lpszParams As String, _
ByVal lpszDir As String, ByVal FsShowCmd As Long) As Long
Public Declare Function GetDesktopWindow Lib "user32" () As Long
Const SW_HIDE = 0
Const SW_SHOWNORMAL = 1
Const SW_SHOWMINIMIZED = 2
Const SW_SHOWMAXIMIZED = 3
Const SW_SHOWNOACTIVATE = 4
Const SW_SHOW = 5
Const SW_MINIMIZE = 6
Const SW_SHOWMINNOACTIVE = 7
Const SW_SHOWNA = 8
Const SW_RESTORE = 9
Const SW_SHOWDEFAULT = 10
を宣言し、
フォームのボタンクリック時に
Dim Ret As Long
Ret = ShellExecute(Scr_hDC, "Open", DataMDB, "", "", SW_SHOW)
で無事ファイルオープンできましたが、最後のSW_NORMALの部分をSW_HIDE に変えてみても表示は変わらず、他のSW_○○ としてみても全く同じです。ここでウィンドウの表示を変えれるはずなのになぜ、変化がないのでしょうか?よろしくお願い致します。
うーん、Access97で空のDBを作って以下のように試してみましたが、
ちゃんと最小化されてAccessが起動してくれましたよ?
Debug.Print ShellExecute( _
0, _
"open", _
"C:\db1.mdb", _
vbNullString, _
vbNullString, _
SW_SHOWMINIMIZED)
> Ret = ShellExecute(Scr_hDC, "Open", DataMDB, "", "", SW_SHOW)
このScr_hDCが非常に気になるのですが、
デバイスコンテキストハンドルなら渡しても意味がないよーなw;
ありがとうございます。
アクセス以外だと、ちゃんとできました。アクセスに何かありそうです・・・
で、無事mdbファイルがOPENできて、そこから任意のレポートを表示するようにしたいのですが、どうすればよいのでしょうか?
ツイート | ![]() |