アプリ版:「スタンプのみでお礼する」機能のリリースについて

宜しくお願いします。

例えば、CODEというフィールドに"1000"という
内容が2の行に入っていたとします。
この"1000"というCODEをグループ化させ、
他のフィールドにテキストが入っている場合は、
どちらも合わせて表示させる方法はないのでしょうか?
うまく説明できないので、下に図をかきます。

(CODE)  (テキスト)
2000   あいうえお
2000   かきくけこ

   ↓グループ化

2000   あいうえおかきくけこ

という風にしたい。

宜しくお願いします。

A 回答 (2件)

参考まで、希望するデータテーブルを作るVBAコードを作って見ましたので


宜しかったら次の操作でテストしてみてください。

モジュールの「新規作成」に下記コードを貼り付け実行します。

メニューから[ツール]-->[参照設定]で「Microsoft DAO X.X Object Libraly」
にチェックを入れ「Microsoft ActiveX Data Object X.X Library」より
優先順位を上にします。

基になるテーブル名を「テーブル1」とし、フィールドを同じCODEの場合の
整列順を決定するための[No](キー)のほか[CODE],[テキスト]があるとします。
このコードを実行すると新たに「テーブル1_B」というテーブルが出来て
希望通りのデータになっていると思います。

Sub test()
Dim db As DAO.Database
Dim tb1 As DAO.Recordset
Dim tb2 As DAO.Recordset
Dim mySQL As String
Dim stradd As String
Dim code As Integer
Set db = CurrentDb
mySQL = "SELECT [No],CODE, テキスト" & _
    " FROM テーブル1 ORDER BY CODE,[No]"
Set tb1 = db.OpenRecordset(mySQL)
On Error Resume Next
db.Execute "CREATE TABLE テーブル1_B (" & _
  "CODE LONG,テキスト TEXT(100)" & ")"
mySQL = "DELETE * FROM テーブル1_B"
db.Execute mySQL
Set tb2 = db.OpenRecordset("テーブル1_B", dbOpenTable)
tb1.MoveFirst
Do Until tb1.EOF
  If code = tb1![code] Then
    stradd = stradd & tb1![テキスト]
  Else
    tb2![テキスト] = stradd
    tb2.Update
    tb2.AddNew
    stradd = ""
    code = tb1![code]
    tb2![code] = code
    stradd = tb1![テキスト]
  End If
tb1.MoveNext
Loop
tb2![テキスト] = stradd
tb2.Update
tb1.Close
tb2.Close
Set db = Nothing
Set tb1 = Nothing
Set tb2 = Nothing
End Sub
    • good
    • 0

クエリを3つ使えば2行までなら出来ます。


クエリ1でグループ化しテキストのフィールドの集計で先頭を選択する。このフィールドをテキスト1として。同じ内容のクエリ2を作りテキストのフィールドの集計で最後を選択する。このフィールドをテキスト2として。
クエリ3を作りクエリ1とクエリ2をテーブル表示させCODE同士をリレーションします。
クエリ3のフィールドはCODEとテキスト1・テキスト2・テキスト3としてテキスト3のフィールドに
テキスト3:=[テキスト1]&[テキスト2]
とすれば出来ます。
テキスト1・2の表示が要らなければ非表示にすればCODEとテキスト3の状態になります。
今こんなものしか浮かびませんが参考になれば。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!