1

Microsoft Access .accdr ファイル内のテーブルへのリンクが可能かどうかを確認できる人はいますか?

サーバー上の .accdr ファイル内のフロントエンドと .accdb ファイル バックエンド内のテーブルを持つ分割 MS-ACCESS アプリケーションがあります。以下で説明する理由により、.accdr 拡張子を持つ 2 番目のバックエンド ファイル (サーバー上) 内のテーブルにフロントエンドが接続する必要があります。

.accdr ファイルがバックエンド データベースとして許可されていないことを明示的に示しているドキュメントは見つかりませんでしたが、リンク テーブル マネージャーはそれを許可していないようで、DoCmd.DatabaseTransfer メソッドはエラーをスローします。

私の回避策は、.accdr サーバー ファイルの名前を一時的に .accdb に変更し、その中のテーブルにリンクしてデータを変更してから、名前を .accdr に戻すことです。ただし、これを行う必要がない場合は、直接接続することをお勧めします。

理由: 各クライアントがフロントエンド .accdr の最新の更新済みコピーを取得できるようにするために、起動前にサーバーからローカル マシンにフロントエンドを最初にコピーするバッチ スクリプトを作成しました。アプリケーションをロードするたびに短時間のペナルティ (フロントエンドは約 8 MB) を要しますが、バッチ スクリプトにより、クライアントが常に最新の状態に保たれます。(パフォーマンスが問題になる場合は、もちろん、ダウンロードする前にバッチ スクリプトで MD5 サムを確認しますが、まだ実行されていません。)

同時に接続するクライアントは多くありませんが (同時接続は約 2 つまたは 3 つだけです)、キャンパス内の何千ものコンピューターのいずれからでも接続できるため、これが最も簡単な方法であることがわかりました。から接続すると、フロントエンドの新しいコピーが取得されます。

残念ながら、個々のユーザーがセッション中にパラメーターをローカルに設定できるようにするため、いくつかのテーブルをフロントエンドに対してローカルに作成しました。もちろん、他のすべてのユーザーが同じデータを取得できるように、個々のユーザーがこれらのローカル テーブルを更新する必要がある場合があります。(以前は、要求に応じてこれらの変更を手動で行っていましたが、このユーザーは自分で変更できる必要があります。)

そのため、ローカル フロントエンド .accdr ファイルは、同じフロントエンド .accdr ファイルのサーバー コピーに接続して、テーブル内のいくつかのデータ調整を行う必要があります。それが理由です。私はそれが奇妙であることを知っています。

ありがとう、デイモン

4

2 に答える 2

1

.accdr をバックエンドとして使用できることがわかりました。間違った接続か何かを指定していたと思います。このコード スニペットを次のように使用しましたstrConnect = path_to_mydb.accdr

Public Sub ConnectOutput(dbsTemp As Database, _
strTable As String, strConnect As String, _
strSourceTable As String)

Dim tdfLinked As TableDef

' Create a new TableDef, set its Connect and
' SourceTableName properties based on the passed
' arguments, and append it to the TableDefs collection.
Set tdfLinked = dbsTemp.CreateTableDef(strTable)

tdfLinked.Connect = strConnect
tdfLinked.SourceTableName = strSourceTable
dbsTemp.TableDefs.Append tdfLinked

End Sub
于 2014-11-29T21:29:23.917 に答える
0

フロントエンドにローカルなテーブルをバックエンドに簡単に追加できます。それらをコピーして別のバージョンに貼り付け、フロントエンドから削除して、バックエンド バージョンにリンクするだけです。全部で 5 分かかります。VBA コードは必要ありません。

accdrバックエンドの質問に関しては、はい、 accdrAccess のランタイム バージョンによって開かれることを意味します。.accdrAccess の標準バージョンでファイルを開くと、ランタイム モードがシミュレートされます。標準バージョンと無料のランタイム バージョンの唯一の違いは、ランタイム アプリケーションからデザイン ツールと標準リボンにアクセスできないことです (独自の を作成する必要があります)。

accdbそのため、ファイルの名前を に変更するaccdrと、ランタイム モードでデータベースを開くようにアクセスに指示するだけになります。データベース自体はまったく変更されません。そのため、問題なくファイルをバックエンドとして
使用できます。accdr

プロのヒント: セットアップを少し拡張して (簡単に最大 50 人の同時ユーザーに) パフォーマンスを向上させたい場合は、フロントエンドからバックエンドまでのダミー テーブルに対してデータベースを開きます。これにより、フロントエンドの実行中に接続が開いたままになり、データベースでロック ファイルが開いたままになるため、パフォーマンスが向上し、信頼性が高まります。

于 2014-11-30T06:07:05.563 に答える