いつもお世話になっております。
早速ですが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も見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
Access:クエリーにて集計後に文字列結合したい。
その他(データベース)
-
複数のレコードを1つのレコードにまとめる方法
Access(アクセス)
-
アクセス 同じフィールド(テキスト型)のレコードを連結させたい
Access(アクセス)
-
-
4
アクセスで複数のレコード情報を1レコードにまとめる方法
Access(アクセス)
-
5
Accessのフィールド結合について
Access(アクセス)
-
6
Accessでテキストが合体できる関数ないですか?
Access(アクセス)
-
7
ACCESS 一つのフィールドに複数レコードの値をセットしたい
その他(データベース)
-
8
行方向のデータを横に並べる
その他(データベース)
-
9
Accessでグループ化した結果フィールドをつなげるには?
その他(Microsoft Office)
-
10
<ACCESS>別テーブルのレコードのテキストデータが中に含まれるレコードを抽出する方法を教えてください
Access(アクセス)
-
11
ADOで現在のレコードの次のレコードの値も取得
Access(アクセス)
-
12
Access サブフォームでの選択行の取得
その他(データベース)
-
13
アクセス 項目毎にデータを横に並べる方法
Access(アクセス)
-
14
Access 同じデータをたくさんのレコード(同一列)に一度に入力するには
Access(アクセス)
-
15
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
16
ACCESS 「パラメータの入力」を消したい!!
Access(アクセス)
-
17
ACCESSでの文字と数字の結合について
Access(アクセス)
-
18
Access VBAで行ラベルが定義されていないというエラーが出ます
Access(アクセス)
-
19
アクセスで追加した項目に全て同じ値を一発で入れたい
Access(アクセス)
-
20
ACCESSで2つフィールドの日付を比較して新しい日付を表示するには。
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessで別テーブルの値をフォ...
-
アクセスで「空き番」の確認
-
Accessでのレコード存在チェック
-
Accessで日付が変わると番号が...
-
条件をつけて日付の古い行を抜...
-
主キーの選び方
-
社員DBを作る
-
最新の日付とその金額をクエリ...
-
Oracleでの文字列連結サイズの上限
-
GROUP BYを行った後に結合した...
-
ADO VBA 実行時エラー3021
-
Excelで、改行がある場合の条件...
-
DATE型にNULLをセットするには?
-
GROUP BYを使ったSELECT文の総...
-
JSPのNULLレコード表示について...
-
Excelでセルの書式設定を使用し...
-
Access終了時の最適化が失敗?
-
SQL文で右から1文字だけ削除す...
-
select insertで複数テーブルか...
-
MERGE文を単体テーブルに対して...
マンスリーランキングこのカテゴリの人気マンスリー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...
-
条件をつけて日付の古い行を抜...
おすすめ情報