• 解説

    Access 技術情報 No.11の応用です。

    テーブルやクエリーのウィンドウは、フォーム等と違ってオブジェクトがhWndプロパティを持っていないため、ウィンドウハンドルを自分でAccessの子ウィンドウの中から探さなければなりません。

    下記のAPIを使用しウィンドウハンドルを取得します。

    GetTopWindow
    GetClassName
    GetNextWindow
    

    コード例

    ChildWindowHandle = GetTopWindow(Application.hWndAccessApp)
    
    Do Until ChildWindowHandle = 0
        WindowClassName = String(1024, vbNullChar)
    
        Call GetClassName(ChildWindowHandle, WindowClassName, 1024)
    
        If WindowClassName = "MDIClient" Then
            ChildWindowHandle = GetTopWindow(ChildWindowHandle)
        ElseIf WindowClassName = "OTable" Then
            Exit Do
        End If
    
        ChildWindowHandle = GetNextWindow(ChildWindowHandle, GW_HWNDNEXT)
    Loop
    

    後は、取得したウィンドウハンドルを使用しAccess 技術情報 No.11を実行するだけです。

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

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