2016-04-27 9 views
0

AccessにリンクされたSQLテーブルがあります。私はどのようにリンクされたテーブルオブジェクトを同じデザインが別の名前で別のテーブルを参照するように変更するかを知りたいです。たとえば、私はTable1をリンクし、それを使ってフォームを作成して、Table2に変更する必要があります。Access 2013でリンクされたSQLテーブル名を変更する

これを行う簡単な方法はないようです。

  • [デザインビュー]の[説明]には、リンクされているすべてのデータベースとテーブルの情報が含まれていますが、編集できません。
  • リンクテーブルマネージャを使用して、テーブルの元のデータベースを変更できますが、両方のデータベースのテーブルは同じ名前を持つ必要があります。
  • Select * From Table1でクエリを作成し、それをSelect * From Table2に変更してテーブルを切り替えることはできますが、必要がない場合は回避策を使用したくありません。

答えて

2

リンクテーブルを削除し、別の名前でリンクを再作成するDoCmd.TransferDatabaseを使用します。

DoCmd.TransferDatabase acLink, "ODBC", your_ODBC_String, acTable, _ 
    "schema.source_table", "target_table" 

既存のリンクテーブルからyour_ODBC_Stringを調べることができます。

必要に応じてStoreLogin:=Trueパラメータを追加します。

+0

まあ、標準モジュールで公開サブに、私はお勧めします。どのように使用するかは、これが1回限りの操作か、定期的に実行されるかによって異なります。 – Andre

+0

それは完璧に動作します、ありがとう!将来この回答を読む人にとっては、フォームがそのRecordSourceとして取るべき階層があることに気付きました。名前が変更された表を使用する前に、同じ名前の新しい表が使用されます。例えば、私がAccess Tableの 'Table1'を持っていて、' TableA'に名前を変更すると、フォームは 'TableA'に切り替わります。しかし、 'TableA'(元はTable1)があり、' Table1'という名前の新しいテーブルを追加すると、フォームは新しい 'Table1'に切り替わります。 – jjjjjjjjjjj