ADODB.Recordset hatası (sütun sayısına göre değiştirme)

1 2
30/04/2010, 00:09

myAccess

Merhaba,
Örnek dosyadaki gibi alt forma aktarma işlemi yaptırmak istiyorum. Ama bendeki veri tabanında 19 sütun var. Aşağıdaki kodu nasıl değiştirirsem aktarma işlemini yaptırabilirim.
Yardımlarınız için teşekkürler.


Dim strPoz As String
Dim row As Integer
Dim rst As New ADODB.Recordset
Dim x As Integer

rst.Open "tblTemp", CurrentProject.Connection, adOpenDynamic, adLockOptimistic

For x = 0 To Me.Liste0.ItemsSelected.Count - 1
row = Me.Liste0.ItemsSelected(x)
rst.AddNew
rst(0) = Nz(Me.Liste0.Column(0, row), "")
rst(1) = Nz(Me.Liste0.Column(1, row), "")
rst(2) = Nz(Me.Liste0.Column(2, row), "")
rst(3) = Nz(Me.Liste0.Column(3, row), "")
rst(4) = Nz(Me.Liste0.Column(4, row), "")
If Me.Liste0.Column(5, row) <> "" Then
rst(5) = Me.Liste0.Column(5, row)
End If
If Me.Liste0.Column(6, row) <> "" Then
rst(6) = Me.Liste0.Column(6, row)
End If
rst(7) = Nz(Me.Liste0.Column(7, row), "")
rst(8) = Nz(Me.Liste0.Column(8, row), "")
rst.Update
Next x

rst.Close

Me.Alt54.Form.Requery
End Sub
30/04/2010, 06:02

ozanakkaya

doğru yanıt verilebilmesi için sendeki veritabanını görmemiz gerekiyor.
30/04/2010, 10:41

myAccess

Sn sledgeab

Veritabanını ekledim. Daha önceki örnekte 8 sütun vardı. Benim çalıştığıma uyarladım. Benim uygulamamda 19 sütun var. Bu nedenle olacak herhalde, aktarma işleminde Temp. tablosuna tüm filtrelenen veriler aktarılamıyor.
Yardımlarınız için teşekkür ederim.
30/04/2010, 13:26

ozanakkaya

aktar butonuna aşağıdaki kodu ekle
Kod:
Dim strPoz As String
Dim row As Integer
Dim rst As New ADODB.Recordset
Dim x As Integer

rst.Open "tblTemp", CurrentProject.Connection, adOpenDynamic, adLockOptimistic

For x = 0 To Me.Liste0.ItemsSelected.Count - 1
    row = Me.Liste0.ItemsSelected(x)
        rst.AddNew
            rst(0) = Nz(Me.Liste0.Column(0, row), "")
            rst(1) = Nz(Me.Liste0.Column(1, row), "")
            rst(2) = Nz(Me.Liste0.Column(2, row), "")
            rst(3) = Nz(Me.Liste0.Column(3, row), "")
            rst(4) = Nz(Me.Liste0.Column(4, row), "")
            rst(5) = Nz(Me.Liste0.Column(7, row), "")
            rst(6) = Nz(Me.Liste0.Column(7, row), "")
            rst(7) = Nz(Me.Liste0.Column(7, row), "")
            rst(8) = Nz(Me.Liste0.Column(8, row), "")
            rst(9) = Nz(Me.Liste0.Column(9, row), "")
            rst(10) = Nz(Me.Liste0.Column(10, row), "")
            rst(11) = Nz(Me.Liste0.Column(11, row), "")
            rst(12) = Nz(Me.Liste0.Column(12, row), "")
            rst(13) = Nz(Me.Liste0.Column(13, row), "")
            rst(14) = Nz(Me.Liste0.Column(14, row), "")
            rst(15) = Nz(Me.Liste0.Column(15, row), "")
            rst(16) = Nz(Me.Liste0.Column(16, row), "")
            rst(17) = Nz(Me.Liste0.Column(17, row), "")
            rst(18) = Nz(Me.Liste0.Column(18, row), "")
        rst.Update
Next x

rst.Close

Me.Alt54.Form.Requery
30/04/2010, 13:50

myAccess

Hocam, çok teşekkür ederim. uyguladım (ekte) elinize sağlık.
İlave forma: Akratılan-Temp tablosu sürekli dolu kalıyordu, bunun için; form açıldığında sorguyu otomatik çalıştır ve her yeni arama başlangıcında silteyi otomatik temizle ekledim.
Saygılarımla.
30/04/2010, 17:15

assenucler

Emek ve katkılarınız için teşekkürler...
1 2