いつもお世話になっております。
早速ですがAccess(初心者です)での質問です。
以下のようなテーブルがあります。
ID|番号(1)|番号(2)|実績
1 |113355 |AA| 152
2 |112211 |VV| 27
3 |112222 |VV| 90
4 |113355 |CX| 8
5 |112222 |SD| 110
………………・・・(以下略)
番号(1)が同じなら、番号(2)を"/"で区切り、連結して
別のテーブルを作成しようとしています。
ID|番号(1)|番号(2)
1 |113355 |AA/CX
2 |112211 |VV
3 |112222 |VV/SD
………………・・・
が、なかなか良い方法が思いつきません。
皆様のお力を貸してください。どうぞ宜しくお願いいたします。
No.1ベストアンサー
- 回答日時:
VBAを使って、レコードを1件ずつ読み込んで書き込むというやり方が良いんじゃないかと思います。
考え方としては、
元のテーブルで番号(1)を基準に並べ替えをする
元のテーブルの最初のレコードから順に番号(1)の値を比較しながら番号(2)を書き込んでいくようにする
手作業でやるとしたら、
元のテーブルをそのままコピーする
番号(1)で並べ替えをする
レコードを見ながら番号(2)を書き換える
番号(2)が書き終わったら番号(1)のダブっているレコードを削除する
No.2
- 回答日時:
趣旨がずれますが、
まず、元のテーブルからクエリーを使って番号1に対して集計します。(番号1に対しての重複を省きます)・・・クエリー1とします。
このクエリー1を親としてフォームなり、レポートなりを作成します。
それらに、元のテーブルを持つサブフォーム/サブレポート作成して、番号1でリンクすれば番号1に対する番号2のリストができ、実績の集計も可能になります。
番号2がもともと何に使われるのかその後の実績が何を意味するのかわかりませんが、レコードとして扱えるようにしておいた方がデータの利用価値が上がります。
あとは、#1さんの用にコードを書かないと解決しないかもです。
クエリーの項目として下記関数を割り当ててください。
Function NO2(NO1 As String) As String
Dim cdb As Database
Dim rst As Recordset
Dim tmp As String
Dim sqlstr As String
tmp = ""
Set cdb = CurrentDb
Set rst = cdb.OpenRecordset("元のテーブル名", dbOpenDynaset)
sqlstr = "[番号(1)] = '" & NO1 & "'"
rst.FindFirst sqlstr
If Not rst.NoMatch Then
tmp = rst![番号(2)]
rst.FindNext sqlstr
End If
While (Not rst.NoMatch)
tmp = tmp & "/" & rst![番号(2)]
rst.FindNext sqlstr
Wend
NO2 = tmp
rst.Close
cdb.Close
End Function
でもこれすごい遅いですよきっと^^;;
ykmtk さま、keikan さま、アドバイスありがとうございました。
番号(1) = Trim(tb1![番号(1)])
番号(2) = Trim(tb1![番号(2)])
tb1.MoveNext
Do
番号(1') = Trim(tb1![番号(1)])
If 番号(1) = 番号(1') Then
'If 番号(2') <> Trim(tb1![番号(2)]) Then
番号(2') = Trim(tb1![番号(2)])
If 番号(2') <> 番号(2) Then
'番号(2') = Trim(tb1![番号(2)])
If 番号(2') <> "" Then
番号(2) = 番号(2) & "/" & 番号(2')
Else
番号(2) = 番号(2)
End If
End If
Else
tb2.AddNew
tb2![番号(1)] = 番号(1)
tb2![番号(2)] = 番号(2)
tb2.Update
番号(1) = 番号(1')
番号(2) = Trim(tb1![番号(2)])
End If
tb1.MoveNext
Loop Until tb1.EOF
tb2.AddNew
tb2![番号(1)] = 番号(1)
tb2![番号(2)] = 番号(2)
tb2.Update
とし、tb2への転記ができました。
どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Access DLookup vbaで条件を2件設定したい場合どうすればよいでですか? 現在 If( 1 2023/06/28 14:28
- Access(アクセス) ACSESS初心者です マンション管理をACCESSで出来ないかとチャレンジしています。 リレーショ 3 2022/10/08 11:45
- Oracle sqlで質問です。 Aテーブルの情報をBテーブルに更新かけたいです。 やりたいことは、Bテーブルの受 1 2023/05/17 11:17
- Access(アクセス) Access IF文でテーブルに存在しない場合の処理について 2 2022/10/10 18:09
- Oracle 下記のsqlで取得されるレコード以外を取得する方法ありますでしょうか。 SELECT B.番号, B 2 2022/04/20 23:21
- スピーカー・コンポ・ステレオ レコードのマトリクス番号の見方を教えてください。 最近レコードの知識が少しずつ増え、最近マトリクス番 1 2022/08/14 13:58
- Excel(エクセル) 【VBA】A列の指定した値と同じ行にあるD列の値を順番にコピペするマクロについて 4 2023/02/01 18:16
- Oracle sqlで質問です。 Aテーブルの登録番号をキーにBテーブルから確認番号を取得したいのですが、Bテーブ 4 2023/05/18 13:08
- Excel(エクセル) INDEX関数とMATCH関数を使用し値を返す数式についてです 2 2022/04/20 13:40
- Access(アクセス) Accessでセレクタをダブルクリックで別フォームで詳細表示 3 2022/12/20 10:36
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
Access:クエリーにて集計後に文字列結合したい。
その他(データベース)
-
アクセス 同じフィールド(テキスト型)のレコードを連結させたい
Access(アクセス)
-
Accessでグループ化した結果フィールドをつなげるには?
その他(Microsoft Office)
-
-
4
Accessのフィールド結合について
Access(アクセス)
-
5
複数のレコードを1つのレコードにまとめる方法
Access(アクセス)
-
6
アクセスで複数のレコード情報を1レコードにまとめる方法
Access(アクセス)
-
7
access 複数フィールドを1フィールドに
Access(アクセス)
-
8
アクセス:SQLでフィールドの結合できますか
Access(アクセス)
-
9
Access 同じデータをたくさんのレコード(同一列)に一度に入力するには
Access(アクセス)
-
10
ACCESS 一つのフィールドに複数レコードの値をセットしたい
その他(データベース)
-
11
クエリについて教えてください
Access(アクセス)
-
12
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
13
ACCESSでデータ読み取り専用を解除する方法
その他(データベース)
-
14
Accessでフィールド名を変数(文字列)で・・・
Access(アクセス)
-
15
ACCESS 重複データを1つだけ表示したい(初心者です)
Access(アクセス)
-
16
ACCESSでの文字と数字の結合について
Access(アクセス)
-
17
ACCESSで2つフィールドの日付を比較して新しい日付を表示するには。
Access(アクセス)
-
18
Accessのリンク先を相対パスにしたい
その他(データベース)
-
19
アクセスのクエリでパラメータを表示させない方法は?
その他(Microsoft Office)
-
20
Accessでデータシートに同じデータがいくつもでてしまいます。
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessで別テーブルの値をフォ...
-
質問です。 下記のテーブルとデ...
-
SQL文について
-
sqlで質問です。 Aテーブルの登...
-
主キーの選び方
-
電話番号の局番と住所の検索に...
-
Access 文字+年ごとの自動採番
-
access 自動採番 年が変わる...
-
select句副問い合わせ 値の個...
-
GROUP BYを行った後に結合した...
-
エクスプローラーで「2つの条件...
-
ファイル書込みで一行もしくは...
-
<SQL>条件付きで最小値レコード...
-
SQLServer 日付が直前のレコー...
-
SQL>UPDATEと同時にその件数を...
-
Access を×ボタンで閉じ...
-
sum()の出力結果順に並び替えを...
-
データセットのレコード更新が...
-
COBOLでのランダムアクセス
-
【初歩】ラジオボタンをつかっ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessで別テーブルの値をフォ...
-
Accessでのレコード存在チェック
-
最新の日付とその金額をクエリ...
-
access 自動採番 年が変わる...
-
[Access]異なるレコード間の文...
-
【アクセスVBA】テーブルにフィ...
-
vba 直前の操作はキャンセルさ...
-
条件をつけて日付の古い行を抜...
-
Accessで日付が変わると番号が...
-
質問です。 下記のテーブルとデ...
-
Recordset.FindFirstについて
-
Access 文字+年ごとの自動採番
-
アクセスで「空き番」の確認
-
Accessの色番号について
-
access2003で学籍番号から生徒...
-
Access:抽出して、色をつけたい。
-
【Access】選択クエリのグルー...
-
access 自動採番 「10-AA-000...
-
電話番号の局番と住所の検索に...
-
sqlで質問です。 Aテーブルの登...
おすすめ情報