- 締切済み
Access VBAで複数行を1行にする方法
いつも参考にさせていただいています。 今回、新規の注文を受けることになり、データフォーマットを見せてもらったのですが、 ヘッダーと明細情報の1:Nになっていました。 これを1行づつにしたいのですが、明細行にヘッダー行とのキーになる項目がありません。 いろいろ試してみましたが、うまくいきませんでした、ご教授していただければ幸いです。 データ 項目1 項目2 項目3 項目4 項目5 1 会社名 送付先住所 担当者名 連絡先 2 品名 数量 備考 上記をこうしたいです。 項目1 項目2 項目3 項目4 項目5 項目6 項目7 項目8 1 会社名 送付先住所 担当者名 連絡先 品名 数量 備考
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
>Access VBAで複数行を1行にする方法 1、やり方は、幾らでもある。問題は、どこで躓いているのか? 2、その前に、なぜ?そんな無意味なことをするのか? >ヘッダーと明細情報の1:Nになっていました。 普通は、そのままにテーブルに反映するのでは?
補足
f_a_007さん レスありがとうございます。 説明不足ですみません。 f_a_007さんの疑問ですが、 1.やり方について 私の思いでは、1のヘッダー部と2の明細部に共通のキーがないので、 紐づけができないのでどうすればよいかと迷っています。 データにも不備がありましたが、1ヘッダー部には注文番号があります。 2明細部には注文番号はありません。 2.無意味なことについて 基幹システムの取り込み口が1行ごとで並びが違うのでその為の変換です。 言われています、「普通はそのままテーブルに反映」はテーブルの正規化と 言われているものだと思いますが、その為1のやり方に戻ると思うのですが 考え方がおかしいのでしょうか。 修正したデータ 項目1 項目2 項目3 項目4 項目5 項目6 ヘッダー部 1 注文番号 会社名 送付先住所 担当者名 連絡先 明細部 2 品名 数量 備考 ヘッダー部 1 注文番号 会社名 送付先住所 担当者名 連絡先 明細部 2 品名 数量 備考 明細部 2 品名 数量 備考 明細部 2 品名 数量 備考 明細部 2 品名 数量 備考
お礼
f_a_007さん ありがとうございます。 私には、難しそうですね。(プロの方の考え方になるんですね。) 1回の注文は1、000件もなく、その都度クリアするので、単純に1と2を繋げれば よいと思っています。 別の方法を検討してみます。
補足
f_a_007さん 昨日1日考えて邪道かもしれませんが、項目1にヘッダー・明細の区分があるので、 項目1がヘッダー:1ならば、項目2の注文番号を取得し、次行に移動し項目5に 書き込むを最終行まで繰り返すで希望が叶いました。 ちなみにコードは Dim rs As Recordset Dim add As String Set rs CurrentDb.OpenRecordset("テーブル名") Do Until rs.EOF If rs!項目1= 1 Then add = rs!項目2 rs.MoveNext rs.Edit rs.!項目5 = add rs.Update Else rs.Edit rs.!項目5 = add rs.Update EndIf rs.MoveNext loop rs.Close Set rs = Nothing