- ベストアンサー
MDBファイルでのリンク更新
リンクテーブルになっている場合、フォルダを移動するとリンクが切れてしまいます。 リンク更新のサンプルはいくつかあったのですが、それらは元テーブルとリンクの名前が同じ場合についてでした。 リンク名とテーブル名が異なっている場合はどうなるのでしょうか? または、A.MDBのリンクAに対してB.MDB上の同じ構造のテーブルA, テーブルB, テーブルCを順に切り替えて処理したい場合、どのように指定してやるといいのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
昔のコードをコピー TergetDataBaseName リンクするデータベースパス LinkTableName リンクするテーブル名 DataBaseName リンクを作成するデータベース(省略すると自分自身) '----ここからコピペ Public Function LinkTable(TergetDataBaseName As String, LinkTableName As String, Optional DataBaseName) As Integer LinkTable = False Dim MyDatabase As Database 'リンクするデータベース Dim tdf As TableDef '作業用のテーブルDef If IsMissing(DataBaseName) Then 'データベース名が入っていなかったら、 Set MyDatabase = CurrentDb 'デフォルトで自分自身 Else On Error Resume Next Set MyDatabase = OpenDatabase(DataBaseName) '入っていたら他MDBのデータベースを開く If Err <> 0 Then '間違っているMDBはエラー LinkTable = Err Exit Function End If End If On Error Resume Next MyDatabase.Execute "DROP TABLE " & LinkTableName '改造ポイント1 On Error GoTo 0 Set tdf = MyDatabase.CreateTableDef(LinkTableName) '改造ポイント2 tdf.Connect = (";DATABASE=" & TergetDataBaseName) tdf.SourceTableName = LinkTableName '改造ポイント3 On Error Resume Next MyDatabase.TableDefs.Append tdf 'アペンド If Err <> 0 Then 'アペンドできなかったらエラー LinkTable = Err MyDatabase.Close Exit Function End If LinkTable = True End Function '----ここまでコピペ 上記は引数にLinkTableNameが1つしかないので、 リンクテーブル名は同一になってしまいます。 引数を1つ増やして、リンクするテーブル名と、 作成するリンクテーブル名を別々に与えて、 改造ポイントを修正すれば幸せになれるかも
その他の回答 (1)
- AlexSuns
- ベストアンサー率67% (78/115)
DoCmdオブジェクトのTransferDatabaseメソッド DAOのRefreshLinkメソッド 上記のとちらかのメソッドを調査すると幸せになれます