• ベストアンサー

アクセス2003で質問です。

超初心者で現在勉強中です。 データ量が多いcsvファイルが3つあり、データが大きすぎてアクセスでインポートさせてしか開けないデータがあります。 そのデータを使って必要なデータのみを抽出したいのですが、アクセスでしか開けないためとても困っています。 アクセスがわからないため是非皆様のお知恵を拝借したく質問させてください。 行いたいのは、3つcsvデータをアクセスに個別に取り込みテーブルにデータを落とし込みファイル名を例えばA・B・Cと名前をつけて保存したとします。 各ABCの名前がつけられているデータのフォーマットは全て同じもので作られていてデータが大量に入っていますが、同じデータ内でもまたABCをあわせたときでもデータが重複しているものもあります。 I:ABCのデータを関連付けさせて重複しているデータのみを抽出したい ※ある条件が完全一致しているもの。例えばフィールド1にIDが入っているとすればIDが重複しているものを抽出しいくつ重複していたかカウントまで行いたい。 II:Iのデータ抽出後、ABCのデータを関連付けさせて重複をしていないデータのみを抽出したい   ※重複データがあれば1つだけ(1つのID)のみが抽出されているもの III:後からDというcsvファイルが増えた場合、Iのデータへ追加して重複があるか調べたい。 IV:IIIを追加した場合、再度データが重複していないデータのみを抽出したい また検索ボタンを使わない検索方法を知りたいのです。 例えば最終的に作られる重複していないデータを作った場合、後からデータを検索するのに検索ボタンを使用せずIDを入力すればデータ存在の有無がわかるようにしたい。 沢山書いて本当に申し訳ないのですが、 上記のようなデータを作成する方法を是非教えていただきたいのです。 また、アクセスにデータをうっかり入力した場合すぐに次のレコード?に入力されデータが作られてしまうのにも困っています。 例えば権限者以外データの編集が出来ないようにすることはできないでしょうか? 状況:花子さんはデータの参照のみ     太郎さんはデータの追加や編集をする人 複数の人がデータを触れないようにするにはどうすればよいのでしょうか。 本当にとても困っていて是非皆様のお知恵を拝借させていただきたくこちらに書かせていただいております。 なにとぞ宜しくお願いいたします。

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

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

とても全部のご質問には答えられませんが、データのまとめ方で提案があります。 ファイルAのCSVのファイルをインポートしたのち、クエリでフィールドを一個追加(例:式:"ファイルA")してやります。(目的は必要により元の状態のデータを抽出できる様にするためです) これをテーブル作成クエリに変更して、データまとめ用のテーブルを作成します。 以降は、ファイルBのインポートしたCSVにフィールド(値:ファイルB)を追加して、テーブルを作成(クエリのままでもできますが)して、まとめテーブルに追加クエリでデータを追加する作業を行います。インポートしたテーブル、一時的に作成したデータ追加元のテーブルはもう使わないので、削除可能です。 この方法なら、ファイルC、Dが増加してもメインのテーブルは一個だけなので、操作も容易です。 この中でIDの重複が調べたければ、集計クエリにして、IDでグループ化、他の任意のフィールドをカウントに設定してやれば、ID別の重複数が調べられます。データを追加した場合も、クエリを再実行するだけですみます。 上記集計クエリで重複数が1のIDだけ抜き出し、元のテーブルと、その集計クエリのクエリを作成して、IDで結合すれば、重複の無いデータのみ抽出できます。 各クエリの作成の仕方については、書籍を購入してお勉強して下さい。ただ、お手元にAccessが使える環境が無いと、本を読むだけでは身につかないでしょう。

kerottimarry
質問者

お礼

回答ありがとうございました。 PCにアクセス2003は入っているのですが、エクセルワード以外使ったことがなく、エクセルで開けないためアクセスを使わざる得なくなり本当に困り果てています。 データの追加方法もとても丁寧にご説明いただきありがとうございました。 アクセスですが今後はすこしずづでも勉強していきたいと思います。

その他の回答 (2)

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.3

自分はAccess2010なので詳しい説明は出来ません お気持ちはわかりますが一つずつ解決していきましょう 先ずCSVファイルをテーブルに取り込む方法です 二つの方法があります 1.AccessでCSVファイルをインポートする 外部データのインポートまでたどり着けばAccessがなびしてくれます。 2.CSVファイルをエクセルで開いて,Accessのテーブル新規作成からコピペする  テキストファイルを開くときファイル名入力枠の右または下の  ファイルの種類枠でテキストを選択し先頭行に行を追加して各列の見出しを入力すると準備完了  これをAccessのテーブル新規作成にコピペで作成しこれを閉じるとテキスト名を入力する枠に入力

  • PXU10652
  • ベストアンサー率38% (777/1993)
回答No.1

「データ量が多いcsvファイルが3つあり、データが大きすぎてアクセスでインポートさせてしか開けないデータがあります。」  Excel2003なら65535件までという制限がありますが、2007以降なら100万件程度まで扱えます。 「I:ABCのデータを関連付けさせて重複しているデータのみを抽出したい」  「重複クエリーウィザード」を使えば簡単に抽出できますが、重複する条件はAとBとCの3ファイル間でしょうか? 重複するかどうかは、2つのテーブル間でしか実行できませんので、AとB、AとC、BとCの重複データを抜き出し、その結果を1つにまとめる必要があります。 「II:Iのデータ抽出後、ABCのデータを関連付けさせて重複をしていないデータのみを抽出したい」  これは「不一致クエリーウィザード」で同様にできますが、上記と同じ理由で、AとBで重複していなくても、それがCにあるかどうかを調べる必要がるので、さらに難しいです。   「III:後からDというcsvファイルが増えた場合、Iのデータへ追加して重複があるか調べたい。 IV:IIIを追加した場合、再度データが重複していないデータのみを抽出したい」  テーブルが増えれば、組み合わせが増えるので、どんどん複雑になります。 「また、アクセスにデータをうっかり入力した場合すぐに次のレコード?に入力されデータが作られてしまうのにも困っています。」  Accessはデータベースソフトなのですから、当然の動作です。無意識にEnterを押して、データを作るのをやめるしかありません。 「例えば権限者以外データの編集が出来ないようにすることはできないでしょうか?」  Accessでロックができても、データを入力しているオリジナルがcsvファイルではロックしようがありません。 「本当にとても困っていて是非皆様のお知恵を拝借させていただきたくこちらに書かせていただいております。」  お気持ちは分かりますが、「超初心者で現在勉強中です」という方に、Accessの専門用語で説明すること自体が難しいです。もっと具体的に、『○○したいがエラーが出るので、このSqlのどこが間違っているのか教えてほしい』とかなら、答えようがあるのですが...

関連するQ&A

  • Accessでの電話番号重複チェック

    Accessでの電話番号重複チェック 10万件ほどの顧客データが入ったcsvがあります。 「ID」「電話番号(1)」「電話番号(2)」「電話番号(3)」 とデータが並んでおり、この「電話番号(1)(2)(3)」が1つでも他のIDのものと 重複しているものを抽出したいのですが、方法はありますでしょうか。 10万件でExcelが使えなくなってAccessで出来るかなと思い立ったのですが、 あまりにも勝手が違い困り果てています。 とりあえず重複クエリで(1)と(2)(3)の重複は出せたのですが、 (2)が(3)と重複しているものや、(1)同士・(2)同士・(3)同士が重複しているデータの、 重複元・重複先全てのIDを抽出したいのです。 抽出する方法はあるのでしょうか。 宜しくお願いいたします。

  • Access97のクエリーについて

    Access97のクエリーで次のようなデータ抽出をしたいのですが、設定方法が良く分かりません。 1.約20000レコードのCSVファイルを外部データ   のインポートでTDLを作成。 2.重複クエリーを走行すると、約10000レコードが   重複していた。 3.作成したTBLから重複者がいないデータを抽出した   い。 イメージ: 処理前  a,2222,111,1,1234567  a,1111,100,1,0001234  b,0001,234,1,5555511  c,0003,001,1,0005555  c,0005,201,1,3345678  ↓(クエリー) 処理後  a,1111,100,1,0001234  b,0001,234,1,5555511  c,0003,001,1,0005555 どのような、関数、クエリーを使えば実現できるのでしょ うか。ご教示の程よろしくお願いします。

  • Access リレーションが分かりません。

    こんにちは、Access初心者です。 現在の受注テーブルをIDベースでCSVでエクスポートするシステムを追加しようと思っているのですがイメージがわきません。 同じデータベースにCSVテーブルを新規で追加し受注テーブルのIDとCSVテーブルの受注IDを一対多でリレーションをしました。(受注テーブルにはデータが入っていますがCSVは新規です。) 受注テーブル ID:オートナンバー 納期:日付 品番:テキスト 数量:数値 CSVテーブル ID:オートナンバー 状況:テキスト...未と済をコンボボックスで選択式 受注ID:数値 メインフォームでCSVテーブルの状況ベース、受注テーブルの納期ベースでデータを抽出 サブフォームで上記条件のデータが見れるように作ろうとしました。 ですが、サブフォームクエリの段階でデータが新規入力レコードしか表示されてきません。 どうしたら、受注テーブルの一つ一つのレコードにCSVテーブルのレコードが結びつけられますか。 ど素人ですみません。

  • Accessでの抽出について

    Accessでのクエリーでの抽出の方法を教えてください。 たとえば「12345678」といったIDをもたせた人のデータが日付ごとにいくつかレコードがある場合に、クエリーのID欄の抽出条件欄には、「12345678」と入力すれば、その人のデータのみが表示されると思います。 そこで、 (1)その中の日付から、最新のものから3つを抽出したい場合。 (2)その中の日付から、2番目に新しいものを抽出したい場合。 において、クエリーの抽出条件になんて書いたらよいのでしょうか? できましたら、(1)(2)それぞれお答えいただければ幸いです。 どうぞよろしくお願いいたします。

  • EXCELから効率よくデータ抽出したい

    EXCELのデータが20万行あります。 この中から、データを抽出したいのです。1個なら検索で良いかと思うのですが、20個とか30個とかの場合は、どうすれば効率が良いのでしょうか? 今やっているのは、こんな感じです。 EXCELの20万行のデータを(1)とします。 抽出したいデータを(2)とします。 (1)には重複不可のキーとなるIDがあります。(2)には調べたいIDが入っています。 (1)のとなりに(2)を貼り付け、IDを頼りに(1)から(2)のデータをvlookupします。 そこで#n/aとならなかったデータが対象・・・としています。 ただ、(2)のデータが全て(1)に含まれているわけではなく、含まれていないものは他のテーブルから抽出します。((1)のテーブルは20個ほどあります) そのため、今度は(2)のIDをキーにvlookupをして、(1)から抽出されなかったデータを絞っています。 また、(2)に入っているIDに無駄な空白があったり・・・とデータの整形もあります。 現在、データが重い上にかなり手間がかかっています。ACCESSのクエリーを使えば早いのでしょうが、EXCELのデータで各カラムにいろいろなデータが入っているために(フィールドが整理されていない)カンタンに移行できそうもありません。 やっぱり、ここは何とかAccessへ移行させるべきでしょうか? 20万行のファイルを20個1つのAccessにすればやはり重くなりますでしょうか? すみません。よろしくお願いします。

  • ACCESSの使い方

    ACCESS2003を使ってデータ抽出をしようとしています。 エクセルからデータを取り込み、クエリを使って抽出を試みましたがうまくいきません。重複データなどは取り出せます。 取り出せないものは[りんご]、(みかん)といったカッコつきのものです。抽出条件の欄に‘りんご[]’などとも入れてみましたがクエリが実行されず抽出ができません。 どなたかうまく抽出する方法を教えてください。お願いします。

  • Access2000 別のレコードをテーブルに追加するには?

    既存のAというテーブルに新しく別のところからインポートしてきたBというデータを追加したいのですが、「...46件のレコードで入力規則違反が発生したため、レコードを追加できませんでした。」とエラーメッセージが出ます。無視して実行すると、Bの一部のデータがAに追加されません。 IDが一部重複しているのですが、これが原因?でもAccess95では、Bのデータにすべて新しいIDがついて追加されましたよね?

  • アクセスの抽出について

    Win2000、アクセス2000を使用しています。 フォーム上のテキストボックスに検索条件を入力して抽出をさせる場合に、AというフォームとBというフォームにそれぞれ検索条件を入力してAB両方の条件に合致するデータを抽出することは可能でしょうか? 可能でしたら、手順等教えてください。

  • ACCESS2002重複削除について

    はじめまして。アクセスで100万から200万件大量データをファイル内重複(テーブル内)、ファイル間重複(他テーブル)とチェックする方法ありませんか?大量なので一時ファイルやダンプ出力してもかまいません。SQLコマンドにて抽出もよいかと思います。PCはP4 1.6G 512Mです。 ACCESS2002です。あまりACCESSには詳しくない初心者ものですがよろしくお願いします。

  • AccessでCSVの読み込み履歴を残したいです

    Excel・Accessで時々CSVやタブ区切りファイルからデータを取り込んでいます。 ExcelではCSVファイルを取り込むとメニューの[ファイル(F)]のオープン履歴に残りますが、AccessでCSVファイルを読み込んだ履歴を残せるような設定等はありませんでしょうか? いつもAccessでは[ファイル(F)]-[外部データの取り込み(G)]-[インポート(I)...]からCSVファイルのデータを読み込んでいます。 使えるOfficeのバージョンは 97~2003 のいずれかです。 ※機能を見つけられないだけなのか、それとも実際に機能がないのかもよくわかっていませんので、無理なら無理と教えてもらえると助かります。

専門家に質問してみよう