23

SQL Server データベースへのリンク テーブル リンクを持つ既存の MS Access 2010 プロジェクトに取り組んでいます。

リンクされたテーブルにマウスを合わせると、接続文字列が表示されます'ODBC;DRIVER=SQL Server;SERVER=10.0.0.1;UID=testdb;APP=Microsoft Office 2003;WSID=abc;TABLE=dbo.user'

これは、dsn のないリンク テーブルのように見えます。

質問

  1. 接続文字列はどこにありますか? 変更方法 (データベース名の例)?

  2. 同様の dsn なしのリンク テーブルを作成するにはどうすればよいですか? リンク テーブルを作成するときはいつでも、Access 2010 では常に dsn (ファイルまたはマシン) を選択\作成するように強制されます。

4

2 に答える 2

35

すべての接続文字列を出力するには:

Dim tdf As TableDef
Dim db As Database

    Set db = CurrentDb

    For Each tdf In CurrentDb.TableDefs
        If tdf.Connect <> vbNullString Then
           Debug.Print tdf.Name; " -- "; tdf.SourceTableName; " -- "; tdf.Connect
        End If
    Next

リンク テーブルを作成するには:

With CurrentDb
    ''If the table does not have a unique index, you will need to create one
    ''if you wish to update.
    Set tdf = .CreateTableDef("LocalName")
    tdf.Connect = "ODBC;DRIVER=SQL Server;SERVER=10.0.0.1;" _
      & "UID=testdb;APP=Microsoft Office 2003;WSID=abc;TABLE=dbo.user"
    tdf.SourceTableName = "TABLE_NAME"
    .TableDefs.Append tdf
    .TableDefs.Refresh
End With

リンクを変更するには:

    Set db = CurrentDB
    Set tdf = db.TableDefs("MyTable")
    tdf.Connect = "ODBC;DRIVER=SQL Server;SERVER=10.0.0.1;" _
      & "UID=testdb;APP=Microsoft Office 2003;WSID=abc;TABLE=dbo.user"
    tdf.RefreshLink
于 2012-09-26T18:36:30.090 に答える
25

次のガイド (元のソース) を使用して、接続文字列を変更できます。

まず、既存の接続文字列を取得します。

  1. MS Access を開く
  2. 以前は機能していたテーブルを右クリックするか、機能することが確実なテーブルを右クリックして、[デザイン ビュー] を選択します。
  3. 警告画面で [はい] を選択して続行します
  4. 右側にテーブルのプロパティ ウィンドウがない場合は、リボン (Access 2010) で [プロパティ シート] をクリックします。
  5. これにより、Description プロパティが表示されます。そのプロパティにあるものをすべてコピーして、メモ帳などに貼り付けます。

次に、接続文字列を更新します。

  1. リボンの [外部データ] をクリックし、[リンク テーブル マネージャー] を選択します。
    1. [常に新しい場所を要求する] チェック ボックスをクリックします。これは、接続情報を変更する必要があるかどうかをユーザーに尋ねる複雑な方法です。
    2. [すべて選択] ボタンをクリックするか、更新するテーブルをチェック マークで選択します。
    3. [OK] をクリックします。
  2. ダイアログが表示されます。[新規] をクリックします
    1. ドライバーとして SQL Server を選択する
    2. 詳細ボタンをクリックします
    3. すべてのものをメモ帳に貼り付けます
      • EXCEPT REMOVE the TABLE=… 次のセミコロンまでのもの。
      • サーバー名を変更する
      • [OK] をクリックします。
    4. 次に、これらすべてを後で使用するためにファイルに保存するように求められます。接続フォルダのマイ ドキュメントの場所を選択するか、他のユーザーが後で使用できるようにネットワーク上の場所を選択することをお勧めします
    5. [OK] を数回クリックします
    6. これで、Access によってすべてのテーブルが新しい DSN (接続の詳細) 文字列に置き換えられます。
于 2014-10-21T09:21:51.937 に答える