• 締切済み

Access2003で同じ行を1つにまとめたい

例えば以下のようなデータファイル(テキストファイル)があるとします 建物名|住所|装置名 山田荘|A市|装置A 山田荘|A市|装置B 山田荘|A市|装置C 斎藤荘|B市|装置D 鈴木荘|C市|装置E      ・      ・      ・ このようなデータが100万行くらいある大きなデータを扱います。 そのデータの中で上記のように同じ建物名(住所は関係なしとする)のデータがあった場合に、それらを1つのデータにまとめて、いまの100万行あるデータ量を減らしたいと思っています(建物名が重複するのが多いデータなので) たとえば上記のデータだと山田荘に装置A・B・Cあることになっていますが、装置B・装置Cのデータを省き 建物名|住所|装置名 山田荘|A市|装置A 斎藤荘|B市|装置D 鈴木荘|C市|装置E      ・      ・      ・ というようなデータファイルを作成することは可能でしょうか? データファイルはテキストファイル(メモ帳)なのですが、これをAccessを用いて重複データを削除できますでしょうか?やり方をご教授いただければ幸いです。 ※Accessを使うはずだと個人的に思っているのですが見当違いであればご指摘願います。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

レコード処理なのでADOでやってみました。 考えかたは素直で、氏名が変わるごとに書き出し。氏名が同じなら 何もしない、読み飛ばし。 例データ 所持品テーブル ID 氏名 住所 所持 1 山田 Å市 X 2 山田 Å市 Y 3 山田 Å市 Z 4 鈴木 B市 U 5 鈴木 B市 V 6 田中 C村 L 7 田中 C村 M 8 田中 C村 N ーー 同じフィールド構成の、所持品Bテーブルを作っておく。 ーーー モジュール Sub test09() Dim cn As ADODB.Connection Dim rs As ADODB.Recordset Dim rs2 As ADODB.Recordset Set cn = CurrentProject.Connection Set rs = New ADODB.Recordset Set rs2 = New ADODB.Recordset rs.Open "所持品", cn, adOpenKeyset, adLockOptimistic rs2.Open "所持品B", cn, adOpenKeyset, adLockOptimistic '--第1レコード処理 rs.MoveFirst MsgBox rs!氏名 m = rs!氏名 rs2.AddNew rs2!氏名 = rs!氏名 rs2!住所 = rs!住所 rs2!所持 = rs!所持 '---- While Not rs.EOF 'レコード数分ループ If m = rs!氏名 Then '何もしない Else rs2.Update MsgBox rs!氏名 rs2.AddNew rs2!氏名 = rs!氏名 rs2!住所 = rs!住所 rs2!所持 = rs!所持 End If m = rs!氏名 rs.MoveNext '次のレコードへ DoEvents Wend rs2.Update '-----終わり処理 rs.Close rs2.Close cn.Close Set rs = Nothing Set rs2 = Nothing Set cn = Nothing End Sub ーー 所持品Bテーブル ID 氏名 住所 所持 9 山田 Å市 X 10 鈴木 B市 U 11 田中 C村 L

  • Hachi5592
  • ベストアンサー率36% (252/698)
回答No.2

ACCESSで 1)テキストファイルをインポートで読み込んでテーブルを作成します。 2)集計クエリを指定します。   建物を「グループ」   住所を「先頭」   装置名を限定するのであれば、それを一致条件にし、関係なけれ   ば「先頭」でいいです。 以上でデータを絞り込めます。

naonaoma
質問者

補足

ご回答ありがとうございます。 再びお聞きして申し訳ございませんが 「先頭」という意味は 建物でグループ化した中で 一番上のレコードを指すのでしょうか? 私が質問の中で記した例から行くと 山田荘でグループ化した場合、 住所・装置名で一番上のレコードは それぞれA市、装置Aなので 山田荘|A市|装置A が抜き出される という理解でよろしいでしょうか?

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

クエリで集計(メニューの表示にあります)を使ってください。 建物名と装置名をグループ化、住所を先頭にすればいいでしょう。 あとは検索条件で装置B・装置Cを除外してください。 クエリ デザイナを使用した集約とグループ化について http://office.microsoft.com/ja-jp/access/HP030839241041.aspx?pid=CH063655191041

関連するQ&A