
いつもお世話になっております。
早速ですが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
アクセスで複数のレコード情報を1レコードにまとめる方法
Access(アクセス)
-
5
複数のレコードを1つのレコードにまとめる方法
Access(アクセス)
-
6
Accessのフィールド結合について
Access(アクセス)
-
7
ACCESSでの文字と数字の結合について
Access(アクセス)
-
8
ACCESS クエリで重複データを最新の1件だけ表示
Access(アクセス)
-
9
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
10
Access 同じデータをたくさんのレコード(同一列)に一度に入力するには
Access(アクセス)
-
11
アクセス2003 複数の列に分かれたデータを1列にまとめたい
Access(アクセス)
-
12
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
13
Accessのリンク先を相対パスにしたい
その他(データベース)
-
14
Microsoft Access で同じフィールドの文字列の結合
Access(アクセス)
-
15
Access 最後のレコードに到達するまでループ処理を行う方法
Access(アクセス)
-
16
前のレコードの値を自動で入れたい
PowerPoint(パワーポイント)
-
17
Accessでフォーム上に 直前の データを表示させるには
Access(アクセス)
-
18
アクセスのレポートのヘッダーを2ページ以降にもつけるには?
Access(アクセス)
-
19
ACCESS クエリの抽出条件で全てを抽出したい
PowerPoint(パワーポイント)
-
20
アクセス:SQLでフィールドの結合できますか
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
最新の日付とその金額をクエリ...
-
質問です。 下記のテーブルとデ...
-
決定性有限オートマトン
-
DataGridViewの、選択されてい...
-
実績累計の求め方と意味を教え...
-
Oracleでの文字列連結サイズの上限
-
ADO VBA 実行時エラー3021
-
複数テーブルのMAX値の行データ...
-
10営業日前の日付を取得したい...
-
2つのSQL(Access)の結果[時刻,...
-
自己相関サブクエリと自己結合...
-
sqlplusの処理が途中でとまる
-
Oracleの監視。
-
Line Inputで文字化け(助けて...
-
OracleのSQL*PLUSで、デー...
-
Excelで、改行がある場合の条件...
-
固定値を含む結合と複数テーブ...
-
OracleのSQLについて質問があり...
-
時間集計につて
-
枝番と主キーがある複数テーブ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessで別テーブルの値をフォ...
-
最新の日付とその金額をクエリ...
-
アクセスで「空き番」の確認
-
access 自動採番 年が変わる...
-
[Access]異なるレコード間の文...
-
vba 直前の操作はキャンセルさ...
-
【アクセスVBA】テーブルにフィ...
-
Accessでのレコード存在チェック
-
条件をつけて日付の古い行を抜...
-
Accessで日付が変わると番号が...
-
access 自動採番 「10-AA-000...
-
MS Accessで行指定検索の方法
-
Recordset.FindFirstについて
-
サイベースには、オラクルのROW...
-
アクセスで挿入時のVALUES以下...
-
Access:抽出して、色をつけたい。
-
初歩的な表の変換をしたい
-
【SQL】existsでの商演算
-
Access 文字+年ごとの自動採番
-
候補キーの求め方
おすすめ情報