• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:アクセス2010 3つのデータ)

Access 2010で複数のデータをまとめる方法

このQ&Aのポイント
  • Access 2010を使用して、複数のデータをまとめる方法について質問があります。現在、A、B、Cというデータがあり、それぞれには重複したデータが含まれています。特定の条件でデータをまとめる方法やOR条件でデータを出力する方法について教えていただきたいです。
  • Access 2010で3つのデータを1つのデータにまとめる方法について相談です。A、B、Cのデータがあり、重複するデータを名前でまとめて1行にまとめたいです。また、AとB、BとC、AとCの組み合わせで重複しているデータも出力したいです。現在はAND検索でしかできず、OR条件でのデータ出力方法が分かりません。初心者なので、わかりやすく教えていただけると助かります。
  • Access 2010のデータまとめについて質問です。A、B、Cというデータがあり、重複するデータを名前でまとめて1行にしたいです。また、AとB、BとC、AとCの組み合わせで重複したデータも出力したいです。現在はAND検索でデータ出力していますが、OR条件でのデータ出力方法がわかりません。初心者ですので、詳しく教えていただけると助かります。

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

  • ベストアンサー
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.1

なるべくなら、このようなデータのまとめ方は 避けたほうが得策なのですが、まあ実際に 取り扱うデータはまったく違うものかもしれませんが。 クエリではできないのでは、という前提で、初心者ということで、 やりやすくするために以下のようにします。 (1) データがあるテーブルの名前を、   T配布先 とします。 次に、テーブルを一つ用意をします。テーブルの名前は   TT配布先一覧 フィールドを一つ設定し、フィールドの名前は、   配布先一覧 フィールドの型は「メモ型」とします。 (2) フォームを一つ用意をし、フォームにボタンを 一つ設定します。そのボタンのクリックイベントで 以下のようにします。 Private Sub コマンド0_Click()  から  End Sub までの 間のコードを貼り付ければ出来上がりです。 なお、DAOを使っているので、コード表の ツール → 参照設定 でDAOにチェックが入っているか確認して置いてください。   Microsoft DAO xx Object Library のような文字列です。 Private Sub コマンド0_Click()   Dim db As DAO.Database   Dim rs1 As DAO.Recordset   Dim rs2 As DAO.Recordset   Dim rs3 As DAO.Recordset   Dim strSQL As String   Dim strName As String   Dim strTo As String   Dim strAdd As String      '名前の名寄せをします   strSQL = "SELECT T配布先.名前 FROM T配布先 GROUP BY T配布先.名前;"   Set db = CurrentDb   Set rs1 = db.OpenRecordset(strSQL)   Set rs2 = db.OpenRecordset("T配布先")   Set rs3 = db.OpenRecordset("T配布先一覧", dbOpenDynaset)   rs1.MoveFirst   Do Until rs1.EOF     strName = ""     strTo = ""     strAdd = ""     '名前の検索をします     rs2.MoveFirst     Do Until rs2.EOF       If rs1!名前 = rs2!名前 Then         strName = rs1!名前         If strTo = "" Then           strTo = rs2!配布先         Else           strTo = strTo & " " & rs2!配布先         End If         If strAdd = "" Then           strAdd = rs2!住所         Else           strAdd = strAdd & " " & rs2!住所         End If       End If       rs2.MoveNext     Loop       'テーブルに書き込みます       rs3.AddNew         rs3!配布先一覧 = strName & " " & strTo & " " & strAdd       rs3.Update     rs1.MoveNext   Loop   rs1.Close: Set rs1 = Nothing   rs2.Close: Set rs2 = Nothing   rs3.Close: Set rs3 = Nothing   db.Close: Set db = Nothing End Sub 以上ですが、わからないところがあれば補足してください。

CUNE01
質問者

お礼

補足を書いた後、アクセスを起動しなおしたら表示されました! アクセスがおかしくなっていたようです。 無事にできそうです。 データ量が多かったので大変助かりました。 本当にありがとうございました。

CUNE01
質問者

補足

ご連絡遅くなり申し訳ありません。 いろいろとありがとうございます。 やってみたのですが、ボタンを押してもTT配布先一覧に表示されませんでした。 ステップインでどこでおかしくなっているのか確認しようと思ったのですが、 デバックからステップインを選択してF8をクリックしても反応しません。 どのあたりを確認するといいでしょうか? もしご検討つきましたら教えていただけたら助かります。 たびたび申し訳ありませんが、よろしくお願いいたします。 私もこのような並びのデータは作成したくないのですが、 この並びで使用したいようです・・・。

関連するQ&A