Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


7794 / 9994 ←次へ | 前へ→

【5385】縦方向(レコード)のデータを横方向(フィールド)に並べる
質問  さつき  - 05/6/15(水) 16:21 -

引用なし
パスワード
   Access VBA初心者です。よろしくお願いいたします。

下記のように契約者の購入品レコードがあって、
区分  契約者 メーカー     品番    個数
1    佐藤  SONY     T05    10
2    加藤  HITACHI  K23   25
1    佐藤  TOSHIBA  N71   37
4    佐藤  SONY     R03   21
6    加藤  TOSHIBA  M52    8
1    神田  HITACHI  L12    5
2    中川  NATIONAL H95   12
3    神田  SONY     Q46    6

下のように契約者ごとに購入品を横方向に並べるアクセステーブルを作らなければなりません。
佐藤  SONY   T05 10  TOSHIBA  N71 37 SONY R03 21
加藤  HITACHI K23 25  TOSHIBA  M52  8
神田  HITACHI L12 5  SONY   Q46  6
中川  NATIONAL H95 12

下記のようにコードを書いてみましたが、rs2.Updateを実行することによって、行が変わってしまいます。どのようにしたらよいでしょうか。

  Do Until rs1.EOF

    If IsNull(rs1.Fields("区分").Value) = True Then
        rs1.MoveNext
    Else
      If keiyakusha <> rs1.Fields("契約者").Value Then
        j = 1
        rs2.AddNew
        rs2.Fields("契約者") = rs1.Fields("契約者")
        For i = 1 To 3
          rs2.Fields(j) = rs1.Fields(i)
          j = j + 1
        Next i
        rs2.Update
      Else
        j = j + 4
        rs2.AddNew
        For i = 1 To 3
          rs2.Fields(j) = rs1.Fields(i)
          j = j + 1
        Next i
        rs2.Update
      End If
      keiyakusha = rs1.Fields("契約者").Value
    End If
  rs1.MoveNext
  Loop

1,338 hits

【5385】縦方向(レコード)のデータを横方向(フィールド)に並べる さつき 05/6/15(水) 16:21 質問
【5389】Re:縦方向(レコード)のデータを横方向(... 小僧 05/6/15(水) 17:22 発言
【5391】Re:縦方向(レコード)のデータを横方向(... さつき 05/6/15(水) 18:07 質問
【5392】Re:縦方向(レコード)のデータを横方向(... 小僧 05/6/16(木) 9:49 回答
【5395】Re:縦方向(レコード)のデータを横方向(... さつき 05/6/16(木) 17:52 質問
【5396】Re:縦方向(レコード)のデータを横方向(... 小僧 05/6/16(木) 19:30 回答
【5400】Re:縦方向(レコード)のデータを横方向(... さつき 05/6/17(金) 14:31 質問
【5403】Re:縦方向(レコード)のデータを横方向(... 小僧 05/6/17(金) 15:00 回答
【5415】Re:縦方向(レコード)のデータを横方向(... さつき 05/6/20(月) 10:13 お礼

7794 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078264
(SS)C-BOARD v3.8 is Free