概要
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 ビット
コメント