5

Oracle のレポート フロントエンドとして MS Access を使用しています。データは ODBC 接続を介してアクセスされ、Access to Oracle には生データ テーブルである 2 つのリンク テーブルがあります。接続を設定し、Access ファイル内からテーブルをリンクできるようにしたいと考えています。そうすれば、ユーザーは ODBC 接続用の DSN を設定することを心配する必要がなくなり (ほとんどのユーザーはあまり技術的なユーザーではないため、このようなことを行うには手を握る必要があります)、最終的に Access ファイルが次の場所を指すようにすることができます。さまざまなテスト環境とレポートを生成します。

ファイルを開くときにデータベース接続を動的に作成することはできますか? また、リンク テーブルのリンク先を動的に変更することはできますか?

4

2 に答える 2

12

Access からの DSN レス リンク テーブル接続が必要です。それは可能であり、私はそれを行いましたが、コードを持っていません。以下のようなものだったと思います (これは SQL Server ソースを使用していますが、Oracle の接続文字列はわずかに異なります)。起動時にテーブルを作成するには、再度作成する前に各テーブル定義の存在を確認し、Access データベースを開いたときに次のようなサブルーチンを呼び出す必要があります。

Function LinkTables()
    Dim DB As Database, tDef As TableDef
    Set DB = CurrentDb
    Set tDef = DB.CreateTableDef("YourAccessLinkedTableNameHere")
    tDef.Connect = "ODBC;Driver={SQL Server};Server=srvname;Database=dbname;UID=sqluserid;PWD=sqlpwd"
    tDef.SourceTableName = "dbo.YourSourceTableNameHere"
    DB.TableDefs.Append tDef
End Function
于 2010-06-22T19:10:50.853 に答える
7

DSN が定義されたワークステーションでプログラミングを行い、本番用に配布する前に、Doug Steele のコードのバリアントを実行して、すべての DSN ベースの接続文字列を DSN-less に変換します

于 2010-06-22T23:30:40.440 に答える