• 締切済み

Accessでデータ数が増えるとクエリで「無効な処理です。」エラー

Access2000で選択クエリを作成していますが、データ数が少ない場合は問題ないのですが、データ数が数千件に増えるとデータシートビュー表示時に「無効な処理です。」とエラーが発生し、開けません。 クエリにはリンクテーブルを使用したクエリを使用しています。 また、mdbでは出来るのに、mdeにすると出来なくなったり、一度出来なくなるとデータ数が10件でも出来なくなったりと症状が不安定で現象が特定できません。 Accessの何かの制限かバグでしょうか? ご存知の方がいればお教え下さい。

みんなの回答

  • rivoisu
  • ベストアンサー率36% (97/264)
回答No.1

なかなかレスがつきませんね 気にはなっていたのですが、私もそういう経験はありません。 たかだか数千件程度で何かが起きるような制限はちょっと考えられません。 >リンクテーブルを使用したクエリ とはSQL-Serverにリンクしているのでしょうか? クエリを提示することはできますか?(解決できるかどうかは解りませんが)

naka4695
質問者

補足

ご回答ありがとうございます。 提示できる範囲で記載します。 リンクテーブルを使用したクエリとは下記のようなもので、2つのリンクテーブルから商品コードと商品名を取得しています。 Access上で簡潔に扱いたいために下記のような感じでクエリに定義しています。 SELECT 商品マスタ1.商品コード AS 商品コード, 商品マスタ2.商品名 AS 商品名 FROM 商品マスタ1 INNER JOIN 商品マスタ2 ON 商品マスタ1.共通商品コード = 商品マスタ2.共通商品コード 商品マスタ1及び商品マスタ2は別システムのSQL-Serverのテーブルです。 ちなみにAccessと同じマシン上でのスタンドアローンで動作させます。 上記のクエリをQ_商品マスタとすると、問題のクエリは SELECT 在庫マスタ.在庫コード, 在庫マスタ.商品コード, Q_商品マスタ.商品名, 状態マスタ.状態名 FROM 在庫マスタ INNER JOIN 状態マスタ ON 在庫マスタ.状態コード = 状態マスタ.状態コード INNER JOIN Q_商品マスタ ON 在庫マスタ.商品コード = Q_商品マスタ.商品コード というようなもので、他のマスタも結合してはいるものの、特に複雑でもないクエリです。 納期も迫ってきたので、応急処置としてQ_商品マスタを使用せずにクエリを組んだところ、目標の最低件数(2000件)は表示出来ましたが、その他のクエリも含め設計変更が大きくなるので、出来ればQ_商品マスタを使用したいと思っています。 よろしくお願い致します。

関連するQ&A

  • MSアクセスのクエリで結果がおかしい

    アクセス2000で追加クエリを作成していますが、 クエリのデータシートビューで確認したレコードと 追加されたテーブルで確認したレコードが異なり、テーブルのデータが少なくなってしまっています。 条件としては、 クエリの参照元 SQLサーバからのリンクテーブル(レコード数で13万件程度) 追加先のテーブルはローカルのmdb内です たまたまかもしれませんが、今テストしているデータは、 クエリ上では、19件あるものの、実行しても9件しか追加されません。 原因としてありそうなものがわかる方がいれば、よろしくお願いします。

  • Accessのクエリについて

    いつもお世話になっております。 Accessクエリについて、教えてください。 退職者の作ったMDBなのですが、ODBC経由でSQLServerに接続をしています。 リンクテーブルをはっているのですが、ここでよくわからないことがあります。 データベースウインドのクエリにたくさんのクエリが登録されているのですが、 そこでクエリの対象になっているテーブルがかならずしもリンクテーブルでは ないということです。もちろん、SQLServerには存在しているのですが、 私の理解レベルだとリンクテーブルでもないのに、クエリでデータが取得できて いることが不思議です。 詳しい人にはなんでもないのでしょうが、お分かりの方がおられましたら お教えください。

  • ACCESSのクエリー表示について

    ACCESSのクエリー表示について 困っています。 現象としましては、私が作成したMDBなのですが、フォームから日付入力を行い、その指定範囲のみのデータを表示するだけなのですが、私のパソコンでは正常に表示されるのに、他のパソコン(ネットワークでつながっていて、MDBもネットワークのフォルダーにおいています)では表示されません。 クエリー単体で動かすと正常に動いているようなのですが、フォームに結果を映すとなるとなぜか表示されなくて、クエリーのデータも0件のようです(確実にあるはずなのに) パソコンが違って、動く動作が違うと、どこを調べていいのやらわかりません。 クエリー自体もあるテーブルのデータの日付範囲のみ指定している簡単クエリーなので、 別に複雑なわけでもありません。 困っています。よろしくお願いいたします。

  • Accessで「引数が無効です。」

    助けてください。 Accessでいろんな処理をしていたら、Accessの上限用量(2G?)を超えてしまったみたいなんです。慌てて最適化をしたのですが、それをしても「引数が無効です」のメッセージが表示されなにもできなくなってしまいました。こんな時、どうしたらいいのでしょうか?リンクしてあるテーブルもたくさんあるし、クエリーも、フォームも・・・。やはり、新しいMDBファイルを作成してそこに全てをエクスポートするしかないのでしょうか? 是非、助けてください。 締切が迫っています!

  • Accessの削除クエリについて

    Access2000でODBCを使ってMySQLへリンクテーブルを作成しています。 このテーブルを元に削除クエリを作成し、実行すると DATA 800件で約3分程度かかってしまいます。 ネットで色々調べてみたのですが、 高速化の記事を見つけることができません。 クエリのプロパティでトランザクションの使用を"いいえ"に変えて みたりしましたが全く効果がありません。 削除クエリを高速化するには、どうしたら良いのでしょうか?

  • アクセスのデータを取り込みたい

    アクセスのデータを取り込みたい アクセスのクエリも理解できない、超初心者です。 db1.mdbのテーブル1のA列B列のデータだけをdb2.mdbのテーブル2に取り込みたいのですが、やり方が分かりません。先輩に聞いたら、マクロを使えば簡単だよ、あとは自分で調べなと言われ、まったく見当がつきません。 どなたかご教授願います。よろしくお願いいたします。

  • Access 選択クエリ 開いてデータ修正できない

    Access 選択クエリ 開いてデータ修正できない 選択クエリを直接データシートビューで開いて直接あるフィールドの値を修正したいです。 選択クエリ(以下のテーブルを都道府県コードでリンク)多:多 テーブル1 ・氏名 ・ふりがな ・都道府県コード ・備考欄 テーブル2 ・都道府県コード ・都道府県名 上記のクエリで「備考欄」に文字入力ができな状況です。 ロックがかかっています。 やりたいことは単純ですがそもそもこの状況では入力・修正はできないのでしょうか。 どなたかご教授いただければ幸いです。 よろしくお願い申し上げます。

  • Accessクエリの、JOINの数の限界について

    トランザクション系の大きなテーブルAに対し、多数のコード系テーブル(コードに対する名称を格納してあるテーブル)をJOINしてクエリを作っています。 テーブルAの大きさは、約200項目*約1000行程度です。 テーブルAに対し、次々にコード系テーブルをJOINしていっていたのですが、コード系のテーブルが19個になった途端にクエリが反応しなくなりました。 18個目までは、クエリを実行し、通常通りデータを参照することができるのですが、19個になった途端、クエリが反応しなくなってしまいました。具体的には、クエリのアイコンをダブルクリックした時点で固まったようになり、反応しなくなりました。30分ほど放っておいたのですが反応はないままでした。 なお、このクエリに使っているテーブルはイントラネットで繋がっているサーバのOracleDBからリンクしているテーブルです。そのため、通常、クエリを実行するとOracleへのログインダイアログが表示されるのですが、上記のコード系テーブル19個をJOINして実行した際には、このログインダイアログも表示されませんでした。このことから、反応がないのは性能的な問題ではなく、何らかの制限がかかっているのではないかと疑っています。 Accessのクエリには、JOINするテーブル数に上限があるのでしょうか。

  • accessの処理が遅い

    accessの処理が遅く困っています。 何か良い解決方法があればご教授お願いいたします。 まずは現状を説明いたします。 仕事でaccessを使用していますのでどこまで話していいのか迷うとこですがなるべく詳しく書きたいと思います。 まずは私の現状を ・accessは利用歴半年ほどでまだまだ全然理解していない ・職場で必要に迫られて独学で勉強しています ・私的には頑張ってネットや書籍で色々と調べてみました 仕事場で行なっていること ・職場の基幹システム(これが何で作られているとかはさっぱり分かりません)は次のようなデータを処理しています。顧客データ、在庫管理、作業履歴、入出庫管理などなど ・上記の基幹システムが毎日「データ」という名前の圧縮ファイルを本社サーバにエクスポート?していきます ・私はのそ「データ」という圧縮ファイルを使って作業を(主にデータ分析)を行なっています ・「データ」を回答すると「データ1」「データ2」「データ3」「データ4」という4つのMDBファイルが出てきます ・私はその「データ1~4」のMDBファイルを自分の支店の共有フォルダにコピーして作業を行なっている ・ローカルのPC上ではなくネットワーク上にファイルを置くのは、支店内の全員のパソコンからアクセス出来るようにとのことです 問題となっている処理に時間のかかる処理内容というのが クエリを多重で行う(言い方が合っているのか?^^;)ということを5段位行っています 遅いのは当たり前というのはわかって入るのですが、1度のクエリで目的のものを表示させられないので結果こうなりました(ーー; 他にも遅くなっている理由があります 「データ1」などの元となるMDBファイルに入っているテーブルを全てリンクデーブルで参照しています(言い方あってるかな?) なぜ普通にインポートして使わないのかという理由を説明します。 ・「データ」というファイルは毎日、新しくシステムから落ちてきます ・私としては毎日行うクエリを再利用したい ・「データ1」というファイルをある場所に置いておき、自分のデスクトップにMDBファイルを作成し(これを作業ファイルと呼ぶ)、そこに「データ1」の中のデーブルをリンクさせておく。 そして作業ファイル内にクエリを作製する あとは毎日の新しい「データ」ファイルを過去のファイル(作業ファイルにインポートしたリンク先)に上書き保存する。 こうすることでクエリを作製し直さないで同じクエリを再利用し、表示されるデータは毎日最新をキープする。これが理由なんです。 (本当は作業ファイルもネットワーク上に置きたいのです、というか置いていました。しかし遅すぎるため今は取り敢えずデスクトップ上に置いています) しかしこのクエリが多重で行われているためか結果を表示するのに3分~5分かかります。 これを早くしたいのです。 上記の方法におかしな所や、こうしたほうがより早くなるなどのアドバイスがあればお願いします。 そして別件ですが、こういった状況ですので個人的に色々調べてみました。 どうもaccessは大きなデータには向いていない?というような情報を目にします。 「データ1」などのMDBファイルにあるデーブルは100万行などのテーブルもあります。 MDBファイルの容量も2GBギリギリです。 こういう場合はMYSQLやsqliteなどを使用したほうが良いのでしょうか? そういったものを使用した場合は今のaccessのようにGUIで簡単にクエリなどを作成できますでしょうか? そういたものを使用してMDBファイルを扱えるのでしょうか? 非常に分かりにくい質問で申し訳ございませんが宜しくお願い致します。

  • ACCESS ユニオンクエリはデータ編集ができない

    教えてください。初心者なので基本的なことで大変お恥ずかしいのですが・・・。 ACCESSでユニオンクエリを作成し、検索の結果としてフォーム上にデータが閲覧できるシステムを作りました。ユニオンクエリの元となる、テーブルは4つあります。 しかし、フォーム上からも、作成したクエリのデータシートビューからもデータの編集ができません。 クエリというのは、編集ができないという認識でいいのでしょうか。 データを編集するにはテーブルとしてインポートしなおして、作業するしかないのでしょうか? 何か良い方法があれば教えて下さい。