[Access]ナビゲーションウィンドウが勝手に開く

ACCESS

概要

DoCmd.TransferDatabase acLink
を実行すると ナビゲーションウィンドウ が開いてしまう

対処方法

方法1.ナビゲーションウィンドウをVBAで非表示にする

表示されてしまうのは 仕様 のようで,表示されたら以下のVBAで非表示にするしかない

'Runtimeかどうか
If SysCmd(acSysCmdRuntime) Then
Else
    '製品版ならナビゲーションを非表示(hideだけだと2日目実行でメインウインドウが消されてしまうため,いったん表示)
    DoCmd.NavigateTo "acNavigationCategoryObjectType", ""
    DoCmd.SelectObject acForm, "", True
    DoCmd.NavigateTo "acNavigationCategoryObjectType", ""
    DoCmd.RunCommand acCmdWindowHide
End If

ワンポイント

ランタイムかどうか判断しておかないと,Activeウインドウが非表示にされてしまう。

方法2.DoCmd.TransferDatabase acLink の代替

リンクテーブルを違う方法で作成します。コード例を示します

※LinkFile は リンク先の accdbファイルのフルパスファイル名
※LinkTDName は リンクしたいテーブル名(ローカルファイルには同名のリンクテーブルができあがる)
Public Function CreateLinkTable(ByRef LinkFile As String, LinkTDName As String)

    Dim myDB    As Database
    Dim tdNew   As DAO.TableDef
    
    Set myDB = CurrentDb
    
    '任意の名前でテーブル定義を作成する
    Set tdNew = myDB.CreateTableDef(LinkTDName)
    
    'リンク先のテーブル名を指定する
    tdNew.SourceTableName = LinkTDName
    
    'リンク先のデータベースを指定する(対象がMDBの場合セミコロンの前は省略)
    tdNew.Connect = ";Database=" & LinkFile
    
    '定義したテーブルをアペンド(追加)する
    myDB.TableDefs.Append tdNew
    
    Set myDB = Nothing

End Function

プロパティ

Microsoft Access 2019 MSO (バージョン 2111 ビルド 16.0.14701.20240) 32 ビット

コメント

スポンサーリンク
タイトルとURLをコピーしました