- ベストアンサー
キーワードを1つにまとめる方法
- キーワードを1つにまとめる方法を紹介します。
- 複数のキーワードを半角スペースで区切ることでまとめることができます。
- MYSQL5.1かMS ACCESS2003を使用することで、簡単にキーワードをまとめることができます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
MySQLであれば、独自機能のGROUP_CONCAT関数で実装できると思います。
その他の回答 (1)
- piroin654
- ベストアンサー率75% (692/917)
以下、Accessでの方法です。 クエリで表示するならば、 http://www.f3.dion.ne.jp/~element/msaccess/AcTipsVbaDJoin.html テーブルに直接取り込むならば、 http://oshiete1.watch.impress.co.jp/qa6628827.html の書き直しで、 TABLE1と同じ構造のTABLE2を設定し、 TABLE2: ID KW 以下のコードを標準モジュールに保存し、 ボタンクリックで呼び出すか、あるいは ボタンクリックの中にプロシージャの 中身をコピーして実行してもいいです。 なお、DAOを使っているので、コード表のツールから 参照設定を選択して、 Microsoft DAO xx Object Library にチェックを入れて、OKとします。xxは3.6のような数字です。 Sub test() Dim db As Database Dim rs1 As Recordset Dim rs2 As Recordset Dim rs3 As Recordset Dim strSQL As String Dim myStr1 As String Dim myStr2 As String strSQL = "SELECT TABLE1.ID FROM TABLE1 GROUP BY TABLE1.ID;" Set db = CurrentDb Set rs1 = db.OpenRecordset("TABLE1") Set rs2 = db.OpenRecordset("TABLE2", dbOpenDynaset) Set rs3 = db.OpenRecordset(strSQL) If rs3.RecordCount > 0 Then rs3.MoveFirst Do Until rs3.EOF If rs1.RecordCount > 0 Then rs1.MoveFirst Do Until rs1.EOF If rs3!ID = rs1!ID Then myStr1 = rs1!ID myStr2 = myStr2 & " " & rs1!KW End If rs1.MoveNext Loop rs3.MoveNext End If rs2.AddNew rs2!ID = myStr1 rs2!KW = myStr2 rs2.Update myStr1 = "" myStr2 = "" Loop End If rs1.Close: Set rs1 = Nothing rs2.Close: Set rs2 = Nothing rs3.Close: Set rs3 = Nothing db.Close: Set db = Nothing End Sub
お礼
コードまで書いていただいてありがとうございます!なるほど、これならできそうですね!ご回答ありあとうございました!!ちなみに今回はmysqlのgroup_concat関数を使おうと思います。でも、勉強になります、助かりました!
お礼
うわ!!この関数凄いです!!知りませんでした!ご回答ありがとうございます!!