他の場所にある他のいくつかの *.mdb にリンクされているデータベース (*.mdb) のディレクトリがあります。
元のデータベースを 1 つのファイルから 2 つのパーティションに分割しました。ディレクトリ内のデータベースは、元のデータベース ファイル (およびその他のいくつかのデータベース) を指します。ここで、ディレクトリ内の各データベースのテーブルを、元の (分割された) データベースの正しいパーティションに再リンクする必要があります。
各データベースのリンク テーブル マネージャーで手動でテーブルを再リンクしてきましたが、これは非常に非効率的です。リンク テーブル マネージャーに何らかの方法でクエリを実行できれば、正しい番号を変更したかどうかを簡単に確認できます。テーブルの。
リンク テーブル マネージャーにクエリを実行する方法はありますか? VB を介して、またはテーブル名とファイルの場所を使用してシステム テーブルと SQL を使用しますか?
注: MS Access 2003 でファイルを開いていますが、MS Access 2003 がファイルを開き、Access 2000 形式を報告しています。
Remouの提案に従って、テーブルを再リンクするために私が書いたコードを次に示します。
Sub RelinkLinks()
Dim db As Database
Dim tdf As TableDef
Dim OldLoc As String
OldLoc = ";DATABASE=\\lois\_DB\DB\BE.mdb"
Dim partition1Loc As String
Dim partition2Loc As String
partition1Loc = ";DATABASE=\\lois\_DB\DB\Partition 1\BE.mdb"
partition2Loc = ";DATABASE=\\lois\_DB\DB\Partition 2\BE.mdb"
Set db = CurrentDb
For Each tdf In db.TableDefs
' Only cycle through the locations
' that are equal to the old one...
If tdf.Connect = OldLoc Then
' Debug.Print tdf.Name & ":" & tdf.Connect
Dim whichLoc As String
If tdf.Name = "T_PAR_2_TBL_1" Or tdf.Name = "T_PAR_2_TBL_2" Then
' Only set the tables to partition 2 that were listed as in Partition 2 by the database splitter
Debug.Print "Setting linked table " & tdf.Name & " FROM " & tdf.Connect & " TO " & partition2Loc
whichLoc = partition2Loc
Else
' If the name was not listed as in partition 2, set it to partition 1
Debug.Print "Setting linked table " & tdf.Name & " FROM " & tdf.Connect & " TO " & partition1Loc
whichLoc = partition1Loc
End If
'We will uncomment this when we take the safety off...
'tdf.Connect = whichLoc
'tdf.RefreshLink
End If
Next tdf
End Sub