tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル ADOでの実行時のエラー
投稿日: 2008/03/17(Mon) 10:24
投稿者Yamada
以下のコードでのエラーが解消されないのですが、どなたかアドバイスを頂けないでしょうか、
よろしくお願いします

環境
WindowsXP
VB2005
NET Framework 2
Access2000

参照設定
Microsoft ActiveX Data Objects 2.8 Library
Microsoft ADO Ext 2.8 for DDL and Security
Microsoft DAO 3.6 Object Library

インポートされた名前空間
ADODB
ADOX
DAO

Sub syori()
        Dim dbs1 As New ADODB.Connection
        Dim dbs2 As New ADODB.Connection

        Dim workt1 As New ADODB.Recordset
        Dim workt2 As New ADODB.Recordset

        Dim wsql As String

        ' 接続を開く
        dbs1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\DATA1.MDB"
        dbs1.Open()

        wsql = "SELECT * FROM data1;"
        workt1.Open(wsql, dbs1, CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic)

        ' 接続を開く
        dbs2.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\DATA2.MDB"
        dbs2.Open()

        wsql = "SELECT * FROM data2;"
        workt2.Open(wsql, dbs2, CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic)

        Do Until workt1.EOF
            workt2.AddNew()

◆◆◆ここでエラーが発生◆◆◆
'これだと cnt=0 の時から『要求された名前、または序数に対応する項目がコレクションに見つかりません』と実行時エラーが出てしまう。
            For cnt = 0 To 9
                workt2.Fields(cnt).Value = workt1.Fields(cnt).Value
            Next

'これだと問題なし。
            workt2.Fields(0).Value = workt1.Fields(0).Value
            workt2.Fields(1).Value = workt1.Fields(1).Value
            workt2.Fields(2).Value = workt1.Fields(2).Value
            workt2.Fields(3).Value = workt1.Fields(3).Value
            workt2.Fields(4).Value = workt1.Fields(4).Value
            workt2.Fields(5).Value = workt1.Fields(5).Value
            workt2.Fields(6).Value = workt1.Fields(6).Value
            workt2.Fields(7).Value = workt1.Fields(7).Value
            workt2.Fields(8).Value = workt1.Fields(8).Value
            workt2.Fields(9).Value = workt1.Fields(9).Value
            workt2.Update()

            workt1.MoveNext()
        Loop

        workt1.Close()
        workt2.Close()

        dbs1.Close()
        dbs2.Close()
End Sub

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。