いつもお世話になりますm(__)m
Access2003で、以下のテーブルがあるとします。
例)tableA
項目1|項目2
---------
部署1|あいうえお
部署2|かきくけこ
部署1|さしすせそ
部署1|たちつてと
部署2|なにぬねの
上記のテーブルの項目1が同じものを、別テーブルの1つのフィールドにスペースでまとめたいと思っています。
例)結果テーブル
項目1|項目3
---------
部署1|あいうえお さしすせそ たちつてと
部署2|かきくけこ なにぬねの
可能であればクエリで処理したいのですが、無理でしたらVBA他でも結構です。
お詳しい方、ご教授のほど宜しくお願い致しますm(__)m
No.4ベストアンサー
- 回答日時:
見るだけなら、
TRANSFORM First(項目2) AS 値
SELECT 項目1 FROM
(SELECT tableA.項目1, tableA.項目2, Count(*) AS Temp番号
FROM tableA INNER JOIN tableA AS TT ON (tableA.項目2 >= TT.項目2) AND (tableA.項目1 = TT.項目1)
GROUP BY tableA.項目1, tableA.項目2) AS WW
GROUP BY 項目1 PIVOT "項目2" & "-" Temp番号;
このクエリからデータを抜き取ってもいいのですが、
方法はそれこそいろいろですが。ベタにレコードセットから。
NoMatchプロパティを利用してもいいのですが、
思いっきりループの入れ子で。
(1)
以下を標準モジュールに貼り付けます。
DAOを使っているので、コード表のツールから
参照設定を選択して、
Microsoft DAO xx Object Library
にチェックを入れて、OKとします。xxは3.6のような数字です。
このとき、
Microsoft ActiveX Data Objects xx Library
にチェックが入っていたらはずしてください。
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 tableA.項目1 FROM tableA GROUP BY tableA.項目1;"
Set db = CurrentDb
Set rs1 = db.OpenRecordset("tableA")
Set rs2 = db.OpenRecordset("結果テーブル", 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!項目1 = rs1!項目1 Then
myStr1 = rs1!項目1
myStr2 = myStr2 & " " & rs1!項目2
End If
rs1.MoveNext
Loop
rs3.MoveNext
End If
rs2.AddNew
rs2!項目1 = myStr1
rs2!項目2 = 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
(2)
フォームにコマンドボタンを設定し、そのクリックイベントで
Private Sub コマンド0_Click()
Call test
End Sub
以上です。
No.3
- 回答日時:
YU-TANG さんの、DJoin関数を試されては?
DJoin 関数 - リスト文字列を取得する方法
http://www.f3.dion.ne.jp/~element/msaccess/AcTip …
Optional delimiter As String = ","
Optional delimiter As String = " "
にしてみたら半角スペースで区切られるかな・・未検証
No.1
- 回答日時:
クエリやSQLはレコード間(テーブルで別行の間の)の処理が苦手だと思うので、VBAでのレコード処理しか方法で無いのでは。
ADOででも読んでSortする。
http://www.accessclub.jp/ado/22.html
ーー
今度は順読みで、同じ部署名の間は、項目フィールドを文字列に結合。
直前レコードの部署と比較して、部署の(コントロール、続き)が切れたら、前の部署と連結文字列を書き出し。文字列を空白にする。(コントロールブレークの処理)
そして新部署としての結合処理を繰り返す。
以上をヒントにコードは自分で作ってください。(上記のWEB記事のコードで少し変えるだけ)
この方法は同じ部署のレコードを探すやり方より、やさしいやり方でしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
餃子を食べるとき、何をつけますか?
みんな大好き餃子。 ふと素朴な疑問ですが、餃子には何をつけて食べますか? 王道は醤油とお酢でしょうか。
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
ホテルを選ぶとき、これだけは譲れない条件TOP3は?
ホテルを探す時、予約サイトで希望条件の絞り込みができる便利な世の中。 あなたは宿泊先を決めるとき「これだけは譲れない」と思う条件TOP3を教えてください。
-
昨日見た夢を教えて下さい
たまにすごいドラマチックな夢見ること、ありませんか? 起きてからも妙に記憶に残っているような、そんな夢。
-
ハマっている「お菓子」を教えて!
この世には、おいしいお菓子がありすぎて……。 次何を食べたらいいか迷っています。 みなさんが今、ハマっている「お菓子」を教えてください!
-
アクセスで複数のレコード情報を1レコードにまとめる方法
Access(アクセス)
-
アクセスで複数レコードを1レコードにできますか?
その他(ソフトウェア)
-
Access:クエリーにて集計後に文字列結合したい。
その他(データベース)
-
-
4
ACCESSのテーブル複数行を1行にしてエクスポートは?
Access(アクセス)
-
5
ACCESS 一つのフィールドに複数レコードの値をセットしたい
その他(データベース)
-
6
[Access]異なるレコード間の文字列連結
その他(データベース)
-
7
アクセス 同じフィールド(テキスト型)のレコードを連結させたい
Access(アクセス)
-
8
Accessでテキストが合体できる関数ないですか?
Access(アクセス)
-
9
Accessでグループ化した結果フィールドをつなげるには?
その他(Microsoft Office)
-
10
アクセス 項目毎にデータを横に並べる方法
Access(アクセス)
-
11
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
12
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
13
行方向のデータを横に並べる
その他(データベース)
-
14
ACCESSのクエリで集計で、先頭・最後とは?
その他(データベース)
-
15
Access サブフォームでの選択行の取得
その他(データベース)
-
16
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
17
2つ目のレコードの値を取得するには?
Access(アクセス)
-
18
アクセス2003 複数の列に分かれたデータを1列にまとめたい
Access(アクセス)
-
19
Access2003 クエリで、空の列は作れますか?
Access(アクセス)
-
20
OR関数
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
エクセルVBAで5行目からオート...
-
Oracle 2つのDate型の値の差を...
-
セルの右クリックで出る項目を...
-
APN設定について教えていただけ...
-
PC-98でHDDに複数OSを入れる...
-
access2000:フォームで入力し...
-
エクセルグラフの凡例スペース
-
アンドロイド おサイフケータイ...
-
datファイルからaccessにインポ...
-
複数のレコードを1つのレコード...
-
VBAで複数の数式セルを最終行ま...
-
Accessの表形式のフォームについて
-
必須入力項目と入力必須項目
-
Access テキスト型に対する指定...
-
指定した項目の列削除
-
SUBSTRING 関数に渡した長さの...
-
条件に一致した列の非表示の仕...
-
【Access】フォームで自動計算...
-
アクセスのコンボボックスのデ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
エクセルVBAで5行目からオート...
-
Oracle 2つのDate型の値の差を...
-
Access テキスト型に対する指定...
-
セルの右クリックで出る項目を...
-
エクセルグラフの凡例スペース
-
SUBSTRING 関数に渡した長さの...
-
必須入力項目と入力必須項目
-
空白をそのままインポートする...
-
VBAで複数の数式セルを最終行ま...
-
Accessで数値型にNULLをInsert...
-
datファイルからaccessにインポ...
-
access2000:フォームで入力し...
-
複数のレコードを1つのレコード...
-
ORACLEでLONG項目からCHAR項目...
-
SELECT文でLEFT関数を使うと未...
-
条件に一致した列の非表示の仕...
-
他テーブルで一致する列から名...
-
BIOSでAHCIに設定したいが、項...
-
APN設定について教えていただけ...
おすすめ情報