2010-11-22 18 views
1

ねえ。 私はネットワークから独立したPCにメインのアクセスデータベースを配置しており、ネットワーク上のリンクテーブルを持つアクセスデータベースをスタンドアロンPCに戻しています。私はスタンドアロンPCへのネットワーク共有を作成し、パスを介してそれらをリンクすることによってテーブルをリンクしました。データベースを開くときにリンクされたテーブルを自動的に更新するように設定することはできますか? ベンアクセス時にリンクテーブルを更新する

+0

あなたは何のあいまいなを使用していない言い換えることができますリンクテーブルへのリンクの場合は

は、接続から使用して取得することが可能です条項 ?フロントエンドはどこですか?バックエンドはどこですか?とにかく、テーブルをリンクしている場合は、テーブルを更新すると更新されます。ポイントは ? –

+0

あなたはGoogleで「アクセス・リンク・テーブルの更新」をしましたか?そうでない場合は、どうしてですか?これは存在する最も一般的なアクセスの質問の1つであり、何百万ものフォームで何千もの異なる方法で答えられています。 –

答えて

1

できます。スタートアップ時に実行される小さなチェックフォーム(スタートアップオプションを使用して設定)を使用して、リンクされたテーブルを含むさまざまなものをチェックすると便利な場合がよくあります。このために、ローカルマシン上にリンクテーブルのテーブルも保持していますが、リンクされたテーブルのリストはTableDefsコレクションを繰り返して取得できますが、リストを保持する方が少し安全です。

チェックフォームはすべてのリンクをチェックし、リンクが壊れているか不足している場合は、ユーザーに新しい場所を問い合わせるか、固定の場所を使用するかを尋ねます。問題が見つからない場合は、フォームを閉じてメニューや他のフォームを開くことができます。

ここ
CurrentDB.TableDefs("TableName").Connection 

されているいくつかのより多くのノート:

Sub RelinkTables(Optional strConnect As String = "") 
Dim db As DAO.Database 
Dim rs As DAO.Recordset 
Dim strSQL 
Dim tdf As DAO.TableDef 

On Error GoTo TrapError 

    Set db = CurrentDb 

    If strConnect = "" Then 
     ''Where Me.txtNewDataDirectory is a control on the check form 
     strConnect = "MS Access;PWD=databasepassword;DATABASE=" & Me.txtNewDataDirectory 
    End If 

    ''Table of tables to be linked with two fields TableName, TableType 
    Set rs = CurrentDb.OpenRecordset("Select TableName From sysTables " _ 
      & "WHERE TableType = 'LINK'") 

    Do While Not RS.EOF 
     ''Check if the table is missing 
     If IsNull(DLookup("[Name]", "MSysObjects", "[Name]='" & rs!TableName & "'")) Then 
      Set tdf = db.CreateTableDef(RS!TableName, dbAttachSavePWD, _ 
       rs!TableName, strConnect) 
      ''If the table is missing, append it 
      db.TableDefs.Append tdf 
     Else 
      ''If it exists, update the connection 
      db.TableDefs(rs!TableName).Connect = strConnect 
     End If 
     db.TableDefs(rs!TableName).RefreshLink 
     RS.MoveNext 
    Loop 

    Set db = Nothing 
    RS.Close 
    Set RS = Nothing 


Exit_Sub: 
    Exit Sub 

TrapError: 
    HandleErr Err.Number, Err.Description, "Relink Tables" 

End Sub 
関連する問題