2009-06-18 33 views
1

私は最近Office 2007にアップグレードしました。SQL Server 2000データベースにリンクされている複数のAccessデータベース(いくつかの理由でAccess 2000形式で保管しています)があります。私は頻繁に使用するこれらのデータベースで数十のクエリを持っています。毎日新しい照会を作成し、ソートし、要約し、一般的にデータを分析します。MS Access 2007とSQL Server 2000

アップグレードのため、一部のクエリは非常に長い時間がかかります(数秒ではなく分単位)。実行しようとした新しいクエリがまったく完了しないため、Accessでタスクを終了する必要があります。むしろ単純なクエリで、3つのテーブルを結合し、いずれかのフィールドで並べ替えます。私はこれすべての時を行い、今私はできないように見える。

私は類似の問題のディスカッションを検索しましたが、具体的な推奨事項はありませんでした。

アイデア?

+0

問題が発生しているという問い合わせを投稿して、画像全体が見えるようにすることはできますか?クエリで明らかでない場合は、おそらくテーブルスキーマです。 –

答えて

1

すべてのODBCリンクテーブルを削除し、最初からそれらをゼロから再作成することをお勧めします。

0

クエリでデータを変更する必要がない場合、クエリをSQLパススルーに変換すると、それらの処理速度が大幅に向上します。これらのクエリは、Jet DBエンジンで解析されず、直接サーバーに送信され、リンクされたテーブルをバイパスします。

あなたはMS SQL構文を使用する必要がありますが、QBEグリッドは失われ、結果は読み込み専用になります。

データを更新する必要がある場合は、おそらくストアドプロシージャを使用します。

0

SQL Serverバックエンドに変換したとき、SQL Server移行アシスタントを使用しました。私はそれを強く勧めます。それは、それが何をするかで非常に良いです。

あなたがあなたのFEでリンクテーブルを使用していると思います。私は、AccessからSQLをコピーし、それをSQL Server Management Studioの「新しいクエリ」ウィンドウに貼り付けることで、スローモーションクエリを変換します。次に、すべての構文変更を一度に1つずつ実行して、クエリをT-SQLに変換し、Accessのクエリと同じ名前のビューとして保存します。

私は、Accessクエリの名前を "Local_"に変更した後、SQL Server上のビューにリンクテーブルエントリを作成します。数分間実行されていたクエリは、このように数秒間実行されることがわかります。もちろん、これを手動で行うこともできます。

SQL Server移行アシスタントは、ほとんど、またはまったく介入せずに、多くのクエリを変換します(アクションクエリを変換しようとせず、クエリのみを選択します...)。

0

私はSQL Server 2000でAccess Data Projectsを使用します。SQLバックエンドが古くなったときにうまく動作します。

関連する問題