2017-11-14 19 views
2

をテーブルを修正することにより、私は名前を変更したようMSアクセス - クエリの下には

SELECT DISTINCTROW msysobjects.Name, msysobjects.Database, msysobjects.Connect 
FROM msysobjects WHERE (((msysobjects.Type)=6 Or (msysobjects.Type) Like "dsn*")) ORDER BY msysobjects.Database; 

出力

Name     Database        Connect 
Account Transactions C:\Users\Desktop\Database6_be.accdb 
Categories    C:\Users\Desktop\Database6_be.accdb 
Filters     C:\Users\Desktop\Database6_be.accdb 
tblAuditLog    C:\Users\Desktop\Database6_be.accdb 

すべてのリンクされたテーブルとその対応するデータベースのパスを表示できるようにするリンクテーブルのパスを変更する方法私はパスを修正することはできませんが、特定の2つのテーブルのデータベース。テーブルを修正してリンクテーブルのパスを修正する方法はありますか?

答えて

3

はい、あなたはどちらかのVBA経由、またはGUI(アクセス2010)を介してGUI

を通してそれを行うことができます。

enter image description here

あなたは、接続を変更するには、次のVBAサブを使用することができます特定のテーブル上の文字列(古いと新しい接続文字列の両方を提供する必要があります):

Public Sub ChangeConnection(OldStr As String, NewStr As String) 
    Dim td As DAO.TableDef 
    Dim db As DAO.Database 
    Set db = CurrentDb() 
    For Each td In db.TableDefs 
     With td 
      If .Connect = OldStr Then 
       .Connect = NewStr 
       .RefreshLink 
      End If 
     End With 
    Next td 
End Sub 

または次のサブを使用して1つの特定のテーブルを変更することができます

Public Sub ChangeTableConnection(Tablename As String, NewStr As String) 
    Dim td As DAO.TableDef 
    Dim db As DAO.Database 
    Set db = CurrentDb() 
    Set td = db.TableDefs(Tablename) 
    td.Connect = NewStr 
    td.RefreshLink 
End Sub 
+0

魅力的なように動作します! – useR

関連する問題