Access VBA質問箱 IV

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

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


7468 / 9994 ←次へ | 前へ→

【5716】Re:応答なしの表示がでる。
質問  さつき  - 05/8/1(月) 18:39 -

引用なし
パスワード
   前回下記のようなアドバイスを頂いていて、ずっと気になっていたのですが、実際膨大なデータを扱う必要が出てきたので、お教え下さい。

>前回の投稿から色々勉強してみたところ
>「Find」「Filter」等のメソッドは、データ量が多くなると
>パフォーマンスが相当落ちるようです。
>(膨大なデータを業務で扱っている方から情報を頂きました)
>という事で回避方法として、
>>rs2.Open "listyoko", cn, adOpenKeyset, adLockOptimistic
>この時点で全てのレコードをオープンしていますが、
>「rs1」のレコードが動く度に、Where条件をつけて「rs2」をその都度開いた方が
>結果として高速に処理できるかと思われます。

下記のように直してみましたが、「名前または序数に対応する項目がコレクションで見つかりません」と出てしまいます。全くわからないままコードを書いてみましたので、かなり変だと思います。申し訳ありませんが、よろしくお願いいたします。


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
 
  rs1.Open "list", cn, adOpenStatic, adLockReadOnly

  sql = "SELECT * FROM listyoko WHERE 契約者名='" & rs1.Fields("契約者名") & "'"
  Set cn = CurrentProject.Connection '接続
  Set rs2 = New ADODB.Recordset
  rs2.Open sql, cn, adOpenKeyset, adLockOptimistic

  Do Until rs1.EOF
  
  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) = 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

3,776 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 お礼

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