2017-09-26 10 views
1

最近アクセスバックエンドをSQL Serverに転送しましたが、SQL Serverにクエリを渡して計算を行う方法を知っています。アクセス2010フロントエンドSQL Serverへのクエリの受け渡し2014バックエンド

Q_Test:

SELECT * FROM T_Test 

が、どのような場合、私は別のクエリが含まれているサーバー(に至るまで、クエリを渡したいと、このクエリは、一部が含まれているテーブルのみを含むクエリは、私は例えば場合しかし、これはのみ動作しますあまりにも他のクエリ)例えば:

Q_Test3:

SELECT * FROM Q_Test2 
INNER JOIN .. 

Q_Test2:

Select * From Q_Test.. 

次に、コードが「唯一のテーブル」のSQLコードに翻訳されるのは難しいと思っています。サブクラスを含むクエリを賢明にSQL Serverに渡す可能性はありますか?私はAccess Frontendでクエリを保存しましたが、一部はVBAコードで開き、一部はレコードソースで書いてあり、動作させるためにそれらを変更する必要があります。 VBAコードが動作するテーブルのみを含むクエリを使用すると、

イム任意のヘルプ

答えて

1

のために非常に感謝してここでの主な問題は、SQL ServerがSQL Serverは、おそらくさえ知らない可能性があるのアクセス構文を使用して取得しようとしているということです。 AccessクエリやAccessファイルに含まれるその他のオブジェクトについては何も知らない。

SQL Server Management Studioのオブジェクトエクスプローラで見ることができるのは、自分のオブジェクトのみを知っているということです。これは、使用している環境であるためパススルークエリ内で「見る」ことができます。

パススルークエリを使用すると、ストアドプロシージャやテーブル値関数、Access SQLダイアグラムでサポートされていないT-SQL構文などAccess以外のSQL Server構成を使用できることを考慮する必要があります。

これを念頭において、SSMSでストアドプロシージャを作成し、テストし、正しいときにAccessパススルークエリから呼び出す必要があります。更新可能性が必要な場合(結果をフォームにバインドしてデータを編集する機能など)、代わりにビューを使用することを検討してください。ビューでどのような更新が合法であるかにはいくつかの制限があることに注意してください。

+0

助けてくれてありがとう。私は自分自身をストアドプロシージャに読み込もうとします。正しいことだと思う。しかし、多分SQL Serverにクエリを保存する可能性はあるので、彼は後ろのテーブルを知っていますか?あるいは、彼が読むことができるファイルにクエリを保存するには? –

+0

[SQL Serverのテーブルをリンクするだけではどうでしょう](https://support.office.com/en-us/article/Import-or-link-to-data-in-an-SQL-Server-database-a5a3b4eb- 57b9-45a0-b732-77bc6089b84e?ui = en-US&rs = en-US&ad = US)をAccessアプリケーションに追加し、ローカルクエリを実行しますか?パススルークエリについては、何が必要なのですか? Access Dialectに変換できないSQL Serverの方言を使用している場合や、Accessアプリケーションに不要な操作が必要な場合を除き、パススルークエリは必要ありません。 – Parfait

+0

ローカルのクエリを実行するのが非常に遅いためです。あなたは私を修正することができますが、私はそれが計算を行うことができ、私に結果を与えることができるので、SQL Serverを実行する理由だと思った。私のプログラムはかなり遅い今すぐ実行されているので、SQL Serverを試してみると、より速く実行できます。 私はvba経由で私がアクセスを通過したクエリを開こうとしました。私はアクセスでそれを開くことができますが、それはより速く開きますが、私がvbaでこのクエリを開こうとすると、オブジェクト "myquery"を知っていません。 –

0

パススルークエリでは、このようなことが行われます。 SQL Serverは、あなたのAccessアプリケーションについて何も知らない。

アクセスとODBCドライバがこれを認識しているため、ローカルクエリ、テーブル、または関数を含めると、すべての処理がAccessで行われます。

パススルークエリはサーバーオブジェクトのみを処理できます。 ヒント:ただし、Accessアプリケーションで作成された一時テーブルが含まれている可能性があります。

関連する問題