いつもお世話になっております。
早速ですが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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
許せない心理テスト
私は「あなたの目の前にケーキがあります。ろうそくは何本刺さっていますか」と言われ「12本」と答えたら…
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
Access:クエリーにて集計後に文字列結合したい。
その他(データベース)
-
複数のレコードを1つのレコードにまとめる方法
Access(アクセス)
-
アクセス 同じフィールド(テキスト型)のレコードを連結させたい
Access(アクセス)
-
-
4
アクセスで複数のレコード情報を1レコードにまとめる方法
Access(アクセス)
-
5
Accessでテキストが合体できる関数ないですか?
Access(アクセス)
-
6
ACCESS 一つのフィールドに複数レコードの値をセットしたい
その他(データベース)
-
7
Accessでグループ化した結果フィールドをつなげるには?
その他(Microsoft Office)
-
8
Accessのフィールド結合について
Access(アクセス)
-
9
行方向のデータを横に並べる
その他(データベース)
-
10
<ACCESS>別テーブルのレコードのテキストデータが中に含まれるレコードを抽出する方法を教えてください
Access(アクセス)
-
11
ADOで現在のレコードの次のレコードの値も取得
Access(アクセス)
-
12
アクセス 項目毎にデータを横に並べる方法
Access(アクセス)
-
13
ACCESSでの文字と数字の結合について
Access(アクセス)
-
14
Access サブフォームでの選択行の取得
その他(データベース)
-
15
アクセスで追加した項目に全て同じ値を一発で入れたい
Access(アクセス)
-
16
Access 同じデータをたくさんのレコード(同一列)に一度に入力するには
Access(アクセス)
-
17
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
18
ACCESS 「パラメータの入力」を消したい!!
Access(アクセス)
-
19
アクセス:SQLでフィールドの結合できますか
Access(アクセス)
-
20
Access VBAで行ラベルが定義されていないというエラーが出ます
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessで別テーブルの値をフォ...
-
Accessで日付が変わると番号が...
-
最新の日付とその金額をクエリ...
-
【SQL】existsでの商演算
-
Accessでのレコード存在チェック
-
access 自動採番 年が変わる...
-
主キーの選び方
-
条件をつけて日付の古い行を抜...
-
最大レコード数について
-
〜のような結果を出すためのSQL...
-
select insertで複数テーブルか...
-
Oracleでの文字列連結サイズの上限
-
GROUP BYを行った後に結合した...
-
SELECTで1件のみ取得するには?
-
Access終了時の最適化が失敗?
-
外部結合とor条件混在の記述方法
-
ワードの差込印刷で教えて下さ...
-
カレントレコードが無い事を判...
-
OracleのSQL*PLUSで、デー...
-
Accessのクエリでフィールドの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessで別テーブルの値をフォ...
-
最新の日付とその金額をクエリ...
-
Accessでのレコード存在チェック
-
[Access]異なるレコード間の文...
-
【SQL】existsでの商演算
-
access 自動採番 「10-AA-000...
-
Recordset.FindFirstについて
-
access 自動採番 年が変わる...
-
【アクセスVBA】テーブルにフィ...
-
質問です。 下記のテーブルとデ...
-
access 請求番号の自動採番
-
Accessで日付が変わると番号が...
-
アクセスで「空き番」の確認
-
【Access】選択クエリのグルー...
-
Access 文字+年ごとの自動採番
-
Access:抽出して、色をつけたい。
-
vba 直前の操作はキャンセルさ...
-
SELECT * FROM `生徒名簿` INNE...
-
サイベースには、オラクルのROW...
-
条件をつけて日付の古い行を抜...
おすすめ情報