会社で管理データベースを作成しています。 現在、アクセスを分割して、バックエンドを共有ドライブに置いて、フロントエンドにリンクテーブルを置く形式で運用しています。

Microsoft Access99閲覧xmlns="http://www.w3.org/2000/svg">100

ベストアンサー

0

ThanksImg質問者からのお礼コメント

 分かり易い回答ありがとうございます。  将来的にSQLサーバーを考えるならADOという記事があって、安直にADOを選択。ローカルテーブルのまま開発を進めて、いざ分割と言う段階で気が付くと言う失態でした。  ひとまずADOで突き進んでみる事にします。  ありがとうございました。

お礼日時:1/22 21:55

その他の回答(2件)

0

SQLサーバーにテーブルを置いてリンクテーブルで処理する場合は全てSQL(クエリ)で処理する必要が有ります。 ADOで処理は出来ません。 処理は高速に出来ます。 (当然サーバーの能力や回線速度の影響は有るでしょうが・・・)

すいません。 私の記述の仕方が悪かったみたいです。 クエリ:アクセスのクエリウィザードを用いたクエリ ADO:ADOでSQL文を使ってバックエンドのテーブルを処理 のつもりで書いていました。この「つもり」も間違っていたらすいません。言葉の定義をちゃんと勉強します。

0

リンクテーブルはAccessの中の概念です。 そもそもAccessはローカルファイルを前提とした作りになっているので、リンクテーブルを結合するようなSQLを実行しようとすると、一旦外部サーバーに個々のテーブルのデータを全部取得して、その後にPC内で結合して結果を求めようとする動きをします。 なので、データが大きくなるほど極端に実行速度は遅くなってしまいます。 > 2.以下のどの処理方法が推奨でしょうか? Access内で実行させないことが重要になるので、パススルークエリのみ使用するとか、SQLサーバー上でインデックス付きビューの作成を行う、リンクテーブルは結合して使わないなどの工夫が必要になります。 また速度の点で言うならインデックスの付与が重要になってくるので、SQLサーバーの実行計画などについても勉強しておく必要はあるかと思います。

SQLサーバーの実行計画と言う言葉は初めてでしたので、ちょっと調べてみました。 これを使いこなせるようになると、速度改善に役立ちそうですね。 ありがとうございました。 インデックスは、必要か必要でないかの判断基準が自分の中に確定していないので、毎回悩むのですが、このあたりも、経験で何とか確定していきたいと思っています。 素早い回答ありがとうございました。