Geçersiz Değişken hatası (Run time error - 2147467259)

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,049
Excel Vers. ve Dili
Office 2013 İngilizce
Merhabalar,
Aşağıdaki kodda bir türlü işinden çıkamadığım bir durum var.

rs.Open SQL, cn, 1, 3
"tblCari" tablosuna eklmeyi yapıyor,

rs2.Open SQL, cn, 1, 3
sıra "tblKontak" tablosuna gelince;
rs2.AddNew satırında geçersiz değişken deme sebebi ne olabilir,

gördüğüm kadarıyla rs2 RecordSet nesnesini açıyor,
a = rs2.RecordCount sonucunu 11 olarak veriyor

desteğiniz için şimdiden teşekkürler,
iyi Hafta Sonları

Kod:
Public cn As ADODB.Connection
Public rs As ADODB.Recordset
Public rs2 As ADODB.Recordset
Sub Connect()

    Set cn = New ADODB.Connection
     
    With cn
        .Provider = "Microsoft.ACE.OLEDB.12.0"
        .ConnectionString = "Data Source = " & ThisWorkbook.Path & "\Db.accdb"
        .Open cn
    End With
    
End Sub

Public Sub CariEkleGuncelle(Optional Action As String, Optional ID As Integer)
Dim SQL As String
                 
    Set rs = New ADODB.Recordset
    
    Connect
    
        SQL = "Select * from tblCari"
            rs.Open SQL, cn, 1, 3
            
                With frmCariEkle
                    rs.AddNew
                    
                    rs.Fields("CariId") = .sira2
                    rs.Fields("Cari Adı") = .unvanbox
                    rs.Fields("Cari Unvan") = .musteribox
                    rs.Fields("Vergi Dairesi") = .vdbox
                    rs.Fields("Vergi No") = .vnbox
                    rs.Fields("Adres") = .adresbox

                    rs.Update
               
                End With
                
             rs.Close
             SQL = ""
             Set rs = Nothing
  ' ' - - - - - - - - - - - - - - - - - - - - - - - - - -
            Set rs2 = New ADODB.Recordset
             
            SQL = "Select * from tblKontak"
             
            rs2.Open SQL, cn, 1, 3
            
            a = rs2.RecordCount
            
                With frmCariEkle
                
                    rs2.AddNew
                    
                    rs2.Fields("CariId") = .sira2
                    rs2.Fields("ilgili Kisi-1") = Trim(.il1box)
                    rs2.Fields("ilgili Kisi-1_Mail") = Trim(.em1)
                    rs2.Fields("ilgili Kisi-1_Telefon") = Replace(.Tel1, " ", "")

                    rs2.Fields("ilgili Kisi-2") = Trim(.il2box)
                    rs2.Fields("ilgili Kisi-2_Mail") = Trim(.em2)
                    rs2.Fields("ilgili Kisi-2_Telefon") = Replace(.Tel2, " ", "")
                    
                    rs2.Update
               
                End With
             
             rs2.Close
             SQL = ""
            Set rs2 = Nothing
                    
   MsgBox "Cari Eklendi!!!", vbOKOnly, "Başarılı!!"
      
End Sub
 

Ekli dosyalar

skaan

Altın Üye
Katılım
11 Mart 2005
Mesajlar
257
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
30-10-2024
Aşağıdaki kodları deneyin ltf..

Public cn As ADODB.Connection
Public rs As ADODB.Recordset
Public rs2 As ADODB.Recordset

Sub Connect()
Set cn = New ADODB.Connection
With cn
.Provider = "Microsoft.ACE.OLEDB.12.0"
.ConnectionString = "Data Source=" & ThisWorkbook.Path & "\Db.accdb"
.Open
End With
End Sub

Public Sub CariEkleGuncelle(Optional Action As String, Optional ID As Integer)
Dim SQL As String
Connect

SQL = "SELECT * FROM tblCari"
Set rs = New ADODB.Recordset
rs.Open SQL, cn, adOpenKeyset, adLockOptimistic

With frmCariEkle
rs.AddNew
rs.Fields("CariId") = .sira2
rs.Fields("Cari Adı") = .unvanbox
rs.Fields("Cari Unvan") = .musteribox
rs.Fields("Vergi Dairesi") = .vdbox
rs.Fields("Vergi No") = .vnbox
rs.Fields("Adres") = .adresbox
rs.Update
End With

rs.Close
Set rs = Nothing

' ' - - - - - - - - - - - - - - - - - - - - - - - - - -

SQL = "SELECT * FROM tblKontak"
Set rs2 = New ADODB.Recordset
rs2.Open SQL, cn, adOpenKeyset, adLockOptimistic

With frmCariEkle
rs2.AddNew
rs2.Fields("CariId") = .sira2
rs2.Fields("ilgili Kisi-1") = Trim(.il1box)
rs2.Fields("ilgili Kisi-1_Mail") = Trim(.em1)
rs2.Fields("ilgili Kisi-1_Telefon") = Replace(.Tel1, " ", "")
rs2.Fields("ilgili Kisi-2") = Trim(.il2box)
rs2.Fields("ilgili Kisi-2_Mail") = Trim(.em2)
rs2.Fields("ilgili Kisi-2_Telefon") = Replace(.Tel2, " ", "")
rs2.Update
End With

rs2.Close
Set rs2 = Nothing

MsgBox "Cari Eklendi!!!", vbOKOnly, "Başarılı!!"
End Sub
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,049
Excel Vers. ve Dili
Office 2013 İngilizce
Aşağıdaki kodları deneyin ltf..

Public cn As ADODB.Connection
Public rs As ADODB.Recordset
Public rs2 As ADODB.Recordset

Sub Connect()
Set cn = New ADODB.Connection
With cn
.Provider = "Microsoft.ACE.OLEDB.12.0"
.ConnectionString = "Data Source=" & ThisWorkbook.Path & "\Db.accdb"
.Open
End With
End Sub

Public Sub CariEkleGuncelle(Optional Action As String, Optional ID As Integer)
Dim SQL As String
Connect

SQL = "SELECT * FROM tblCari"
Set rs = New ADODB.Recordset
rs.Open SQL, cn, adOpenKeyset, adLockOptimistic

With frmCariEkle
rs.AddNew
rs.Fields("CariId") = .sira2
rs.Fields("Cari Adı") = .unvanbox
rs.Fields("Cari Unvan") = .musteribox
rs.Fields("Vergi Dairesi") = .vdbox
rs.Fields("Vergi No") = .vnbox
rs.Fields("Adres") = .adresbox
rs.Update
End With

rs.Close
Set rs = Nothing

' ' - - - - - - - - - - - - - - - - - - - - - - - - - -

SQL = "SELECT * FROM tblKontak"
Set rs2 = New ADODB.Recordset
rs2.Open SQL, cn, adOpenKeyset, adLockOptimistic

With frmCariEkle
rs2.AddNew
rs2.Fields("CariId") = .sira2
rs2.Fields("ilgili Kisi-1") = Trim(.il1box)
rs2.Fields("ilgili Kisi-1_Mail") = Trim(.em1)
rs2.Fields("ilgili Kisi-1_Telefon") = Replace(.Tel1, " ", "")
rs2.Fields("ilgili Kisi-2") = Trim(.il2box)
rs2.Fields("ilgili Kisi-2_Mail") = Trim(.em2)
rs2.Fields("ilgili Kisi-2_Telefon") = Replace(.Tel2, " ", "")
rs2.Update
End With

rs2.Close
Set rs2 = Nothing

MsgBox "Cari Eklendi!!!", vbOKOnly, "Başarılı!!"
End Sub
Hocam teşekkürler,
değişen bir şey olmadı

rs2.Open SQL, cn, adOpenKeyset, adLockOptimistic

gördüğüm kadarıyla sadece bu satırı değiştirmişsiniz,
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,049
Excel Vers. ve Dili
Office 2013 İngilizce
Hocam teşekkürler,
değişen bir şey olmadı

rs2.Open SQL, cn, adOpenKeyset, adLockOptimistic

gördüğüm kadarıyla sadece bu satırı değiştirmişsiniz,
Access te tabloyu silip yeniden oluşturdum sorun çözüldü,
her şey için teşekkürler...
 
Üst