2017-09-08 23 views
0

対象のデータベースが現在開いていない限り、リモートの.accdbファイルに接続してコンテンツをテーブルに書き込むことができますしかし、私は開いている間もそのデータベースに書き込むことを余儀なくされています。両方とも開いている状態で、database1.tableAからdatabase2.tableAへ手動でコピー&ペーストすると正常に動作します。しかし、なぜVBAは仕事をやっていないのですか?ここで私はこれまで試したものです:VBA経由で別のMS Access 2010データベース内から現在開かれているMS Access 2010データベースに書き込む方法

ウェイ1:(ドイツ語からの翻訳)

... 
Dim dbTarget As Database 

Set dbTarget = DBEngine.Workspaces(0).OpenDatabase("X:\path\to\file.accdb") 
... 

エラー:

... failed with error (3029): No valid account name or no valid password. 

ウェイ2:

... 
Dim wrkDev As Workspace 
Dim dbTarget As Database 

Set wrkDev = CreateWorkspace("", "Admin", "", dbUseJet) ' adopted from microsoft docs 

Set dbTarget = wrkDev.OpenDatabase("X:\path\to\file.accdb", True) 
... 

エラー(ドイツ語から翻訳されたもの):

... failed with error (3029): No valid account name or no valid password. 

なぜそれを修正するのですか?

+0

その '.accdb'のセキュリティ状況は何ですか? (セキュリティで保護されたリンクテーブル/ユーザレベルのセキュリティで保護されていない/暗号化されていない/セキュリティ保護されていない)。 '.accdb'形式はセキュリティの種類をサポートしていないのに対し、ユーザレベルのセキュリティ手法を使って' .accdb'を開こうとしているようです。 –

+0

この場合、暗号化にはトピックはありません。 sys管理者であっても、そのファイルに関する特定の設定は確認されていません。あなたは何を知りたいのですか?私はリモートファイルをダブルクリックするだけで、読み書きができます。リモートデータベースはマルチユーザーモードです。 「彼ら」はそのデータベースで動作しますが、私はそのテーブルにデータを供給することができます。 – user1014412

+0

それは私には安全ではないようです(しかし確かに興味があります)。私は2つの代替アプローチをあなたと共有します、おそらく最初のものが動作します。 –

答えて

0

Accessでデータベースとデータベース接続を開く方法はいくつかあります。あなたはいくつかを共有しましたが、他の人も試みることができます。私はあなたが挿入を行うためにDAOレコードセットを使用していると仮定しています。

を開き、別のAccessアプリケーションでデータベース、およびデータベースオブジェクト

Dim A As New Access.Application 
A.OpenCurrentDatabase "X:\path\to\file.accdb" 
Dim db As Database 
Set db = A.CurrentDb() 

オープンFROM句で文の中でSQLを使用してリモート・データベース上のレコードへの参照を作成

Dim rs As Recordset 
Set rs = CurrentDb.OpenRecordset ("SELECT * FROM MyTable IN ""X:\path\to\file.accdb""") 
+0

あなたのコメントと提供されたサンプルをありがとう。ただし、ユースケースでは読み取りプロセスについて説明しています。私は別の.accdbファイルからの読み取りに問題はありません。私の問題は、現在開いている間に別の.accdbファイルに書き込むことに関連しており、それを持っているユーザーは私ではありませんでした。 – user1014412

+0

これはちょっと真実ではありません。どちらのテクニックを使っても、読み取りと書き込みの両方の操作が可能です(はい、どちらもSELECTクエリですが、UPDATEやレコードセットを簡単に使うことができます) –

+0

...私の最初の質問には、「これは説明された理由でうまくいかない。 – user1014412

関連する問題