Accessのフィルタとクエリーでデータ加工の方法

このQ&Aのポイント
  • Access2000を使用して、国勢調査データを加工しています。
  • テキストファイルからデータを読み込み、不要な行を削ってエクセルにエクスポートします。
  • フィルタを使用して削除条件を指定し、クエリとして保存して他のデータテーブルでも使用できます。
回答を見る
  • ベストアンサー

Accessのフィルタ?クエリー?

Access2000を使用しています。 現在、国勢調査のデータ(47都道府県)を読み込んで そのデータを加工するという作業をやっています。 元のデータはテキストファイルで、1県分でも30万行を超えてしまうので アクセスで開き、不要な行を削って 使い慣れているエクセルにエクスポートする、という方法をとることにしました。 データテーブルは、1県分ずつ テキストファイルからすべて「リンク」で読み込んでいます。 (「インポート」とどう違うのかも実は理解できていないのですが…。) Accessで不要な行を削るときに、 フィルタを使用しています。 そして抽出結果を「クエリーとして保存」にしています。 このフィルタをかけるときの条件、およびフィールド名は、 全県共通なのですが、 この条件を保存して、他のデータテーブルの時にも使用するには どうしたら良いのでしょうか。 「クエリから読み込み」をクリックしても何も表示されません…. 初心者なので説明もうまくできなくてすみません。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • MovingWalk
  • ベストアンサー率43% (2233/5098)
回答No.1

クエリーをコピーする時は、 ・クエリーをデザインビューで開きます ・表示→SQLビュー でSQL文を表示し、この内容をテキストファイルに保存します ・新規のクエリー作成時は、新規作成→デザインビュー で開き、なにも設定せずに  表示→SQLビュー にして先ほどのSQL文を貼り付けて、保存終了します。 これで、同じ内容のクエリーができると思います。 別な方法として、クエリーはそのままにしてテーブルのリンク先を変える方法もあります。 ・A県用のMDBファイルをA.MDBとします。 ・次に、B県用を作る時は、A.MDBをコピーしてB.MDBを作ります ・B.MDBのテ-ブルのリンク先ファイルをB県用に変更します リンク先ファイルの変更は、ツール→アドイン→リンクテーブルマネージャ でできます。 (詳しくは、ヘルプでリンクテーブルを検索してみてください)

momon1108
質問者

お礼

お返事おくれてすみません。 SQL文の貼り付けで出来ました。 とても助かりました! ありがとうございます。

関連するQ&A

  • Accessのクエリ

    初めまして。Accessのクエリについての質問です。 Access2003を使っています。 検索フォームを作り、その検索フォームにテキストボックスを2つ作り、そのテキストボックスに検索したい言葉を入力し、コマンドボタンで作った検索ボタンを押すとマクロでフィルタの実行がされデータを抽出できるというものを作りました。フィルタには選択クエリを使用しています。抽出したい2つのフィールドの抽出条件にあいまい条件のLike "*" & [Forms]![フォーム名]![テキストボックス名] & "*"を入れています。 今はテキストボックスが2つですが、もっと増やしていろんな条件で検索出来るようにしたいので、3つ目のテキストボックスを作り、抽出条件も同じように入れました。ですが、そうすると今までちゃんとできていた最初の2つのテキストボックスによる抽出が違った結果となりでてきました。このとき、新しく作った3つ目のテキストボックスは空欄なので最初と同じ結果が出ると思ったのですが、これは抽出条件が3つはできないということでしょうか?どなたか教えてください。

  • Accessのクエリーで、*が入っているデータを抜出す方法って?

    助けてください! Accessのクエリーで、*が入っているデータを抜き出すのってどうやるんですか? クエリーの元になるテーブルは1つ、非常に単純なテーブルです。  ●フィールド1=「*」もしくはNullもしくは「英数字」  ●フィールド2=製品番号  ●フィールド3=メーカ番号 テーブルには上記3つのフィールドしかありません。 このテーブルの、「フィールド1に『*』が入っているデータを抜出したいのです。(抜出すのはフィールド1~3全て) 単純に選択クエリーで「抽出条件」に「“*“」と入れると、「フィールド1に英数字が入っている」行まで選択しちゃうんです。そりゃそうだよなーとは思うのですが、じゃあ、どうやったら英数字の入っている行は無視して、純粋に「*」だけの行を抜出せるのかわかりません。 誰かー!助けて―!

  • Access クエリについて

    初めまして。Accessのクエリについての質問です。 Access2003です。 検索フォームを作り、その検索フォームにテキストボックスを2つ作り、そのテキストボックスに検索したい言葉を入力し、コマンドボタンで作った検索ボタンを押すとマクロでフィルタの実行がされデータを抽出できるというものを作りました。フィルタには選択クエリを使用しています。抽出したい2つのフィールドの抽出条件に[forms]![フォーム名]![テキストボックス名]を入れています。 今は2つのテキストボックス両方に言葉を入力するとデータが抽出されますが、これを1つのテキストボックスだけ入力でもデータが抽出されるようにしたいのですが可能ですか?今は一つのテキストボックスに言葉を入力しもう一つを空欄にすると何もデータが出てこない状態です。 2つのテキストボックスをテキスト(1)とテキスト(2)とすると 以下のようにデータを抽出したいです。 ・テキスト(1)とテキスト(2)に入力 →両方の言葉が一致したデータ ・テキスト(1)だけに入力  →テキスト(1)の言葉だけ一致したデータ ・テキスト(2)だけに入力  →テキスト(2)の言葉だけ一致したデータ 初歩的な質問でしたら申し訳ないです。どうかお願いします。

  • Accessの追加クエリで疑問点があり、質問します。

    Accessの追加クエリで疑問点があり、質問します。 フォームにボタンを作り、それをクリックすると、追加クエリを動かす前に、対象のテーブル内を削除クエリで空にしてから、追加クエリを動かし、その後追加先のテーブルをテキストファイルへとエクスポートしています。 この作業の追加クエリでテーブルへデータを追加する際は、追加クエリで設定しているデータの並び替えは反映しないのでしょうか? テーブルはデータを入れておく器にすぎなので、いくら並びを指定してテーブルへデータを順番通りに追加していっても、テーブル内はその順番通りに保存されるとは限らないと聞いた事があります。 そこで、最終的にテキストファイルへエクスポートする場合は、追加クエリをやめて、選択クエリに変更し、これをテキストファイルへエクスポートした方が安全でしょうか?または、追加クエリで並びを指定しておけば、追加クエリで追加したデータはテーブルに追加された際は、追加クエリで指定したデータの並び順になるものなのでしょうか? ご教授よろしくお願いします。

  • Accessの追加クエリのエラーについて

    Accessについて教えてください。 データベースを作成しているのですが複数でデータを閲覧したり情報を入れようとするためA(データ保存ファイル)とB(メニューファイル)の2つを作成しました。Aはデータを保存するテーブルのみでBにはAのテーブルをリンクさせているものとデータを一時保存するテーブルがあります。 Bのデータ一時保存テーブルに一旦データを入れ、その後、追加クエリを実行しAのテーブルに反映させ、削除クエリで不要になったBのテーブルデータを削除していますが、追加クエリが上手く動いていないようです。 テキスト型、日付型等のフィールドは追加されるのですがメモ型フィールドに入れていたデータは削除されてAのテーブルに追加される時があります。(削除クエリはきちんと実行されています。) 私が行う限りは上記のような事象はありませんが、すでに何件か発生しているようです。 その時に表示されるメッセージは『???に失敗しました』と出ていたそうです。 何か思い当たる原因をご存知の方がいっらしゃいましたら教えてください。(上手く説明できてなくて申し訳ありません。) ちなみにAはNWサーバー、Bはローカルサーバーに保存しています。

  • Accessでクエリを完了できません。と出ます。

    Access2007を使用しています。 OS:Windows7(64bit) CPU:Core i7 870@2.93GHz 3.07GHz 実装メモリ(RAM):8.00GB 少しデータ量はあるものの、あるクエリをテーブルにしようとすると下記のエラーが出ます。 「クエリを完了できません。クエリ結果のサイズがデータベースの最大サイズ(2GB)より大きいか、 クエリ結果を一時的に保存するディスクの空き容量が不足しています。」 と表示され、テーブルが作成できません。 少しデータを減らして実行されるとテーブルは作成でき、Accessの容量は96,372KBとなります。 この減らしたデータが残り2GB弱とは思えないので、処理中に一時保存する空き容量が不足 しているのかなと思いました。 どうすれば先へ進むことができるでしょうか? よろしくお願いします。

  • Accessでレポートにフィルタを掛けたのですが…

    住所録をAccessで作成しています。 家族全員のデータを1つのテーブルにまとめ、家族区分として例えば、父は1、母は2と言うように区分を付けました。 レポートを作成する際に、父の分、母の分として分けて印刷をしたかったので、 レポートのプロパティでフィルタの部分に「家族区分=1」として父の分を抽出出来る様に入力しレポートを保存します。 何度かはその条件で抽出されるのですが、なぜか条件が突然無くなってしまい、全データが表示されたりします。 レポートによってはフィルタの条件が無くならずにきちんと抽出されるものもあるのです。 どういった事からこのような現象が起こるのでしょうか?

  • アクセスのクエリで

    アクセス初心者です。 テーブルを作ってクエリもできたのですが 新規にデータを入力する欄が テーブルにはありますがクエリにはできません。 なぜでしょうか? あらゆる可能性を聞きたいです。 回答お願いいたします。

  • accessのクエリで入力が不可能…

    【テーブルA】 フィールド1〔数値型〕 フィールド2〔テキスト型〕 フィールド3〔テキスト型〕 フィールド4〔数値型〕 【テーブルB】 フィールド1〔数値型〕 フィールド2〔テキスト型〕 フィールド3〔数値型〕 フィールド4〔テキスト型〕 となっています。 両方のテーブルを使い、クエリを作成しました。 リレーションが、テーブルAのフィールド1と、テーブルBのフィールド3に設定してあります。 このようにして作成したクエリでデータの入力ができません。 なぜでしょうか? Access2000です。

  • ACCESSクエリーについて

    ACCESSクエリーについてですが、複数列、行が ある顧客テーブルがあり、そのデータテーブルには、 伝票番号がレコード毎にふられています。 このレコードはお客様によっては、 複数行となることもあります。 その場合は、お客様に同じ伝票番号が 複数行にわたってふられるケースも あります。 目的はクエリーで伝票番号の先頭の 行だけを引っ張りたい、です。 単に伝票番号だけを引っ張るだけであれば、 簡単にプロパティの固定値をはいに変えるだけ でできますが、伝票番号が複数存在することが ありえるなかで、伝票番号の先頭のみの 行のみ抽出させることは可能でしょうか。

専門家に質問してみよう