Access VBA質問箱 IV

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

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


7463 / 9994 ←次へ | 前へ→

【5721】Re:応答なしの表示がでる。
回答  小僧  - 05/8/2(火) 9:12 -

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

前回のコードと見比べて…フィールド名は「契約者名」? 「契約者」?

Public Function 横並び()

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

  'Application.Echo False
  'DoCmd.Hourglass True

  rs1.Open "list", cn, adOpenStatic, adLockReadOnly
  Set cn = CurrentProject.Connection '接続

  Do Until rs1.EOF
    sql = "SELECT * FROM listyoko WHERE 契約者='" & rs1![契約者] & "'"
    rs2.Open sql, cn, adOpenKeyset, adLockOptimistic
 
  If Not IsNull(rs1![区分].value) Then
  
  
'データなし(新規)
    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 * 3 + 1) = "" Or IsNull(rs2(J * 3 + 1))
        J = J + 1
      Loop
   
      For I = 0 To 2
        rs2(I + J * 3 + 1) = rs1(I + 2)
      Next
    End If
'更新
    rs2.Update
    rs2.Close
  End If
  rs1.MoveNext

  Loop

'オブジェクトの解放
  rs1.Close: Set rs1 = Nothing
  Set rs2 = Nothing
  cn.Close: Set cn = Nothing
End Function

「rs2」は「rs1」のレコードが動く度に開き直す形となります。
当然「Open」「Close」の回数が増える訳で、少量のデータでしたら
前回のコードの方が早い(体感的には変わらないかも…)かと思いますが、
「rs2」のレコード数が増えてくると、こちらの方が早い…と思われ…ます。

3,602 hits

【5613】応答なしの表示がでる。 さつき 05/7/14(木) 15:31 質問
【5614】Re:応答なしの表示がでる。 てっちゃん 05/7/15(金) 8:41 発言
【5617】Re:応答なしの表示がでる。 小僧 05/7/15(金) 9:54 回答
【5627】Re:応答なしの表示がでる。 さつき 05/7/15(金) 17:24 質問
【5628】Re:応答なしの表示がでる。 小僧 05/7/15(金) 17:51 発言
【5639】Re:応答なしの表示がでる。 小僧 05/7/19(火) 14:52 発言
【5716】Re:応答なしの表示がでる。 さつき 05/8/1(月) 18:39 質問
【5721】Re:応答なしの表示がでる。 小僧 05/8/2(火) 9:12 回答
【5759】Re:応答なしの表示がでる。 さつき 05/8/5(金) 10:49 お礼
【5764】Re:応答なしの表示がでる。 さつき 05/8/5(金) 11:56 質問
【5765】Re:応答なしの表示がでる。 小僧 05/8/5(金) 12:00 発言
【5766】Re:応答なしの表示がでる。 さつき 05/8/5(金) 13:27 質問
【5767】Re:応答なしの表示がでる。 小僧 05/8/5(金) 13:48 発言
【5769】Re:応答なしの表示がでる。 さつき 05/8/5(金) 14:09 質問
【5770】Re:応答なしの表示がでる。 小僧 05/8/5(金) 14:33 発言
【5771】Re:応答なしの表示がでる。 さつき 05/8/5(金) 15:13 お礼
【5640】Re:応答なしの表示がでる。 さつき 05/7/19(火) 15:19 お礼

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