8

テーブルのリストを持つ Access 2010 データベースA.mdbがあります。そのうちの 1 つは、同じサーバー上の別の Access データベースB.mdbからリンクされたリンク テーブルです。これらのデータベースは開発マシンxxx.xxx.xxx.xxx上にあり、私のコンピューターでは としてマップされ、R://その後、サーバー上でオンラインで公開されyyy.yyy.yyy.yyyます。

データベースをローカルで操作したい場合は、テーブルへのリンクを変更する必要があります。しかし、ファイルシステム経由で (「リンク テーブル マネージャー」を使用して) 変更すると、リンクがR://....作成され、それらのデータを要求する ASP ページを見ると、パスが間違っているためにリンクが壊れています。また、ローカルでリンクを変更すると、オンライン サーバーでは機能しません。

「プログラムで」リンクを変更する方法はありますか? つまり、リンク テーブル マネージャーを使用せずに?

答えを探しましたが、私はその専門家ではありません。「モジュール」を作成する必要があることを理解しましたか? "大きい"?

4

3 に答える 3

15

テーブルリンクはUNCパスにすることができます。たとえば、\\192.168.1.2\Public\ドライブにマップされているデータベースを指すリンクテーブルがあるとしますP:。VBAエディター(Alt+ )を起動した場合はF11、イミディエイトウィンドウ(Ctrl+ G)を開いて...と入力します。

?CurrentDB.TableDefs("remoteTable").Connect

...戻ります...

;DATABASE=P:\B.accdb

P:...リンクを作成したときにドライブを指したため。

ここで、VBA関数を作成して実行すると...

Function linkToUnc()
Dim cdb As DAO.Database
Set cdb = CurrentDb
cdb.TableDefs("remoteTable").Connect = ";DATABASE=\\192.168.1.2\Public\B.accdb"
cdb.TableDefs("remoteTable").RefreshLink
Set cdb = Nothing
End Function

...リンクはUNCパスになりました。

ちなみに、「ネットワーク」、「マシン名」、「共有名」を参照すると、リンクテーブルマネージャーでUNCリンクを作成できますが、これでマシン名がわかります(私の場合\\PICO\Public\B.accdb)。

于 2013-03-18T10:46:54.017 に答える
0

リンク テーブルを右クリックして、 [リンク テーブル マネージャー] を選択できます。作業したいリンクされたテーブルを選択し、ウィンドウの下にあるチェックボックスにチェックを入れ、[常に新しい場所を要求する] というメッセージを表示し、[OK] ボタンをクリックします。

新しい場所を尋ねられます。ファイルを参照して選択し、[OK] をクリックします。

于 2013-03-18T09:40:57.693 に答える