Access VBA質問箱 IV

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

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


7787 / 9994 ←次へ | 前へ→

【5392】Re:縦方向(レコード)のデータを横方向(...
回答  小僧  - 05/6/16(木) 9:49 -

引用なし
パスワード
   ▼さつき さん:
おはようございます。

下テーブルのフィールド数に変更がないのであれば
ワーク用のテーブルとして使うのもありだと思われますが、
上テーブルの結果によって可変するものであると
下テーブルに伴うクエリ・フォーム・レポート・モジュールと
大幅な変更が必要となってしまいます。

ご提示されたのは例としてあげているとの事で実際どのようなデータが
入るかは解りませんが、そのワークテーブルを何に使うのかによっては
もうちょっと良い方法があるかもしれません。

下記コードについてですが、

>  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

今のままですとうまくいかないと思いますので、

「rs2」に対して「FindFirst」メソッドを使い、
結果が「Nomatch」プロパティの値が「True」でしたら「AddNew」で
「False」でしたら「Edit」で開いて「Update」すれば良いと思われます。

1,272 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 お礼

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