Access VBA質問箱 IV

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

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


7783 / 9994 ←次へ | 前へ→

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

引用なし
パスワード
   ▼さつき さん:
ごめんなさい。ADOでしたね。

ADOには「FindFirst」メソッドがないので「Find」メソッドを使うか
「Filter」で新規か更新か判断する事になります。

以下参考にして下さい。

Public Function 横並び()

Dim cn As ADODB.Connection
Dim rs1 As ADODB.Recordset
Dim rs2 As ADODB.Recordset
Dim cr As String
Dim I As Long
Dim J As Long

  Application.Echo False
  DoCmd.Hourglass True

  Set cn = Application.CurrentProject.Connection
  Set rs1 = New ADODB.Recordset
  Set rs2 = New ADODB.Recordset
 
  rs1.Open "list", cn, adOpenStatic, adLockReadOnly
  rs2.Open "listyoko", cn, adOpenKeyset, adLockOptimistic

  Do Until rs1.EOF
  
  If Not IsNull(rs1![区分].Value) Then
    
'フィルタを掛けて新規か追加か判断
    rs2.Filter = "契約者 ='" & rs1![契約者] & "'"
    
'データなし(新規)
    If rs2.EOF Then
      rs2.AddNew
      For I = 1 To 4
        rs2(I - 1) = rs1(I)
      Next I
'データあり(追加)
     Else
      J = 0
'空のフィールドを検索
      Do Until rs2(J) = "" Or IsNull(rs2(J))
        J = J + 1
      Loop
      
      For I = 0 To 2
        rs2(I + J) = rs1(I + 2)
      Next
    End If
'更新
    rs2.Update
  End If
  rs1.MoveNext
  Loop

'オブジェクトの解放
  rs1.Close: Set rs1 = Nothing
  rs2.Close: Set rs2 = Nothing
  cn.Close: Set cn = Nothing
End Function
1,312 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 お礼

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