2016-04-27 4 views
0

私は、ユーザーが(ボタンの下でVBAを介して)SQL ServerからローカルインスタンスにデータをFETCHできるAccessデータベースを持っています。現在、これは私のアプリを含む同じAccessDBに新しいテーブルを作成します。データを分割データベースにフェッチしますか?

テーブルサイズが大きくなる可能性があるため、これらの大きなテーブルをユーザのローカルのバックエンドデータベースにFETCHしてから、フロントエンドアプリでLINKする必要があります。

次は私が現在フェッチ方法の抜粋です:

strSQL = "SELECT dbo_TblMatched.*, * " & _ 
     "INTO TblMatched FROM dbo_TblMatched " & _ 
     "WHERE dbo_TblMatched.invID= " & myInvID 
    db.Execute strSQL 

質問:fontendアプリから開始、私は(バックエンドデータベースにデータを送信するには、このコマンドの「INTO」部分を指示することができますもう存在している)?テーブルがバックエンドデータベースに存在すると、私はLINKINGに問題はありません。

注:このように分割したい3つの大きな/静的テーブルしかありません。テーブルの残りの部分は、フロントエンドにローカルに保存することをお勧めします。

ありがとうございます!

+2

これを実行しているAccessデータベースでは、セカンダリAccessデータベースの事前作成されたテーブルへのリンクを 'TblMatched'にしてください。次に、サーバーからデータをフェッチし、それをリンクされたAccessテーブルに格納するために、 "追加クエリ"( 'INSERT INTO ...')を実行することができます。 – HansUp

+0

@ HansUp。私はこの考えを考えました。私の現在の問題は、ユーザーが1日を通して仕事から仕事に移動するときに、これらのテーブルが削除され、置き換えられることです。私はリンクテーブルをEMTPY対してドロップできると思います。何か試してみてください。 –

+0

多分私は何かを忘れた、マーク。私は落としてから、 'TblMatched'を繰り返し作り直す理由はありません。それを一度作成してください。その後、新しいデータをロードするときは、 'DELETE FROM TblMatched;'と続けて 'INSERT INTO TblMatched()を実行します。SELECT <ソースフィールド> FROM dbo_TblMatched;' – HansUp

答えて

1

SQLステートメント内の別のデータベースを参照するには、目的のリモートオブジェクトの前に角括弧で接続文字列を追加します。それは次のようになり、アクセスデータベースの

strSQL = " SELECT dbo_TblMatched.*, *" & _ 
     " INTO [;DATABASE=<path_to_accdb>].TblMatched" & _ 
     " FROM dbo_TblMatched" & _ 
     " WHERE dbo_TblMatched.invID = " & myInvID 

は、これはあなたが考えていたものですか?

+0

@Mark Pelletier:これはあなたのために機能しますか? – Leviathan

関連する問題