• 解説

    レポートウィンドウはフォームと違ってAccessのウィンドウの中でしか表示ができません。
    (Access 2002以降はフォームと同様にできます)
    理由はわかりませんがAccessの仕様です。

    Accessのウィンドウ管理はMDIとなっていますのでその管理からはずしてあげればよいということになります。

  • 手順

    1. 下記のAPIを定義します。
      GetWindowLong
      SetWindowLong
      SetParent
    2. GetWindowLongにレポートのhWndを渡し拡張ウィンドウスタイルを取得します。
    3. [No.2]で取得した拡張ウィンドウスタイルからWS_EX_MDICHILDを除きます。
    4. [No.3]の値をSetWindowLongで設定します。
    5. GetWindowLongにレポートのhWndを渡しウィンドウスタイルを取得します。
    6. [No.5]で取得したウィンドウスタイルからWS_CHILDを除きます。
    7. [No.6]の値にWS_POPUPを加えます。
    8. [No.7]の値をSetWindowLongで設定します。
    9. SetParentで親ウィンドウをデスクトップに変更します。

    ※AccessのVBAおよびAPIの知識が必要です。

  • 注意事項

    タスクバーにレポートのアイコンが出てしまいます。
    また、Accessウィンドウの管理外になるのでフォームを触ったりするとAccessウィンドウの後ろに隠れてしまいます。
    Access 97のみで使用可能です。Access 2000では使用できません。

説明がわからないなどありましたらお問い合わせでお知らせください。

ここに掲載された情報を使用したことによって発生した、いかなる損害に対しても
管理者である雅は一切責任を負いません。