いつもお世話になります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も見ています
-
それもChatGPT!?と驚いた使用方法を教えてください
仕事やプライベートでも利用が浸透してきたChatGPTですが、こんなときに使うの!!?とびっくりしたり、これは画期的な有効活用だ!とうなった事例があれば教えてください!
-
おすすめの美術館・博物館、教えてください!
美術館・博物館が大好きです。みなさんのおすすめをぜひお聞きしたいです。
-
今の日本に期待することはなんですか?
目まぐるしく、日本も世界も状況が変わる中、あなたが今の日本に期待することはなんですか?
-
洋服何着持ってますか?
洋服を減らそうと思っているのですが、何着くらいが相場なのかわかりません。
-
【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
【お題】追い込まれた犯人が咄嗟に言った一言とは?
-
アクセスで複数のレコード情報を1レコードにまとめる方法
Access(アクセス)
-
アクセスで複数レコードを1レコードにできますか?
その他(ソフトウェア)
-
Access:クエリーにて集計後に文字列結合したい。
その他(データベース)
-
-
4
ACCESS 一つのフィールドに複数レコードの値をセットしたい
その他(データベース)
-
5
ACCESSのテーブル複数行を1行にしてエクスポートは?
Access(アクセス)
-
6
Accessでグループ化した結果フィールドをつなげるには?
その他(Microsoft Office)
-
7
[Access]異なるレコード間の文字列連結
その他(データベース)
-
8
アクセス 同じフィールド(テキスト型)のレコードを連結させたい
Access(アクセス)
-
9
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
10
Accessでテキストが合体できる関数ないですか?
Access(アクセス)
-
11
ACCESSのクエリー抽出条件にIIFを使用して
Access(アクセス)
-
12
アクセス 項目毎にデータを横に並べる方法
Access(アクセス)
-
13
ACCESSで縦に並んだテーブルデータを横に並べることは出来ますか?
Access(アクセス)
-
14
Accessのクエリで2つのフィールドが同条件の場合に結合したい
その他(Microsoft Office)
-
15
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
16
Accessのフィールド結合について
Access(アクセス)
-
17
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
18
アクセスで同じ種類のものを横に並べたい
Access(アクセス)
-
19
Access 同じデータをたくさんのレコード(同一列)に一度に入力するには
Access(アクセス)
-
20
ACCESSのクエリで集計で、先頭・最後とは?
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・【大喜利】【投稿~1/31】『寿司』がテーマの本のタイトル
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
セルの右クリックで出る項目を...
-
エクセルVBAで5行目からオート...
-
Excel 2019 のピボットテーブル...
-
エクセルグラフの凡例スペース
-
アンドロイド おサイフケータイ...
-
APN設定について教えていただけ...
-
VBAで複数の数式セルを最終行ま...
-
PhoenixBIOSの設定について
-
iTunesの曲順が逆なのは直りま...
-
ORACLEでLONG項目からCHAR項目...
-
Joy To Keyのマウスやキーボー...
-
Excelの表、重複データ2行を1...
-
思い通りの参考文献の書き方に...
-
SQLでの変数の扱いについて
-
accessで最小公倍数を求める
-
ピボットテーブルでフィルター...
-
Accessのハイパーリンク...
-
access フォーム 大分類、小分類
-
エクセルで離れたセルを範囲指定
-
access2000:フォームで入力し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
エクセルVBAで5行目からオート...
-
Oracle 2つのDate型の値の差を...
-
セルの右クリックで出る項目を...
-
Access テキスト型に対する指定...
-
エクセルグラフの凡例スペース
-
SUBSTRING 関数に渡した長さの...
-
必須入力項目と入力必須項目
-
BIOSでAHCIに設定したいが、項...
-
VBAで複数の数式セルを最終行ま...
-
ORACLEでLONG項目からCHAR項目...
-
Accessレポートで特定条件で改...
-
複数のレコードを1つのレコード...
-
datファイルからaccessにインポ...
-
少数部の桁数の求め方
-
APN設定について教えていただけ...
-
空白をそのままインポートする...
-
他テーブルで一致する列から名...
-
SELECT文でLEFT関数を使うと未...
-
access2000:フォームで入力し...
おすすめ情報