Kapalı dosyaya kayıt yaparken hata

programer

Altın Üye
Katılım
26 Mayıs 2005
Mesajlar
607
Excel Vers. ve Dili
Office 2022 - Türkçe
Altın Üyelik Bitiş Tarihi
16-03-2025
Herkese iyi akşamlar arkadaşlar kapalı bir excel dosyasına aşağıdaki kodla kayıt yapmaya çalışırken "wrong number of arguments or invalid property assignment" hatası alıyorum nedenini bende anlayamadım ama yardımcı olursanız sevinirim.

Kod:
Private Sub Yazdir_Click()
  Dim baglan As ADODB.Connection
  Dim kayit As ADODB.Recordset
  Dim Nsql As String
  Dim TT As String
  
  Set baglan = New ADODB.Connection
  
  baglan.Open "Driver={Microsoft Excel Driver (*.xls)}; DBQ=" & "C:\RAPOR.xls;Readonly=True"

  Set kayit = New ADODB.Recordset
  Nsql = "SELECT * FROM [Satis_Ftr_Rpt$]"
  kayit.Open Nsql, baglan, 1, 3
  kayit.AddNew
  
  For b = 1 To 25
    If Controls("STK" & b) = "" Then GoTo Cikis
       TT = WorksheetFunction.CountA(s1.[a1:a60000]) + 1
       kayit(TT, "A") = TT - 1
       TT = WorksheetFunction.CountA(s1.[A1:A65000])
       kayit(TT, "B") = (Satis_Ftr_Frm.BN1)
       kayit(TT, "C") = CDbl(Satis_Ftr_Frm.BN2)
       kayit(TT, "D") = CLng(CDate(FATTAR.Value))
       kayit(TT, "E") = Satis_Ftr_Frm.FK.Value
       kayit(TT, "F") = Satis_Ftr_Frm.OSRT.Value
       kayit(TT, "G") = Satis_Ftr_Frm.PCNS.Value
       kayit(TT, "H") = Satis_Ftr_Frm.FTRNO.Value
       kayit(TT, "I") = Controls("STK" & b)
       kayit(TT, "J") = Controls("SMIK" & b)
       kayit(TT, "K") = Controls("BFYT" & b)
       kayit(TT, "L") = Satis_Ftr_Frm.FRMISK.Value
       kayit(TT, "M") = Satis_Ftr_Frm.FRMISK1.Value
       kayit(TT, "N") = Satis_Ftr_Frm.KDV.Value
Next
Cikis:
kayit.Update
baglan.Close
End Sub
 

programer

Altın Üye
Katılım
26 Mayıs 2005
Mesajlar
607
Excel Vers. ve Dili
Office 2022 - Türkçe
Altın Üyelik Bitiş Tarihi
16-03-2025
Konuya örnek dosya ekliyorum daha net anlaşılması için. Kayıt dosyasında Açılan formda yazdır butonuna basınca RAPOR dosyasına verileri yazmak istiyorum
 

Ekli dosyalar

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
"s1" değişkenine kod içinde sayfa adı ataması yapmamışsınız. Birde "Dim TT As String" tanımnlaması hatalı "Dim TT As integer" olması gerekir.
 

programer

Altın Üye
Katılım
26 Mayıs 2005
Mesajlar
607
Excel Vers. ve Dili
Office 2022 - Türkçe
Altın Üyelik Bitiş Tarihi
16-03-2025
Sayın Levent Menteşoğlu aslında orda da bir hata var sayfa adını yazsam gene olmayacak çünkü kapalı olan dosyada sıra numarasını arttırarak yazmam lazım orayı nasıl yapacam bende bilmiyorum
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
RAPOR.xls dosyasındaki verileri 2. satırdan itibaren silin. Daha sonra ilgili kodu aşağıdaki ile değiştirerek deneyin.

Kod:
Dim Nsql As String
Dim TT As Integer

Private Sub Yazdir_Click()
On Error Resume Next
  Dim baglan As ADODB.Connection
  Dim kayit As ADODB.Recordset
  Dim Nsql As String
  Dim TT As String
  klasor = ThisWorkbook.Path
  'C:\
  Set baglan = New ADODB.Connection
  
  baglan.Open "Driver={Microsoft Excel Driver (*.xls)}; DBQ=" & klasor & "\RAPOR.xls;Readonly=True"
  Set kayit = New ADODB.Recordset
  Nsql = "SELECT * FROM [Satis_Ftr_Rpt$]"
  kayit.Open Nsql, baglan, 1, 3
  
  say = kayit.RecordCount
  
  For b = 1 To 25
    If Controls("STK" & b) = "" Then GoTo Cikis
  
  say = say + 1
  
       kayit.AddNew
       
       
       
       kayit(0) = say
       kayit(1) = (Satis_Ftr_Frm.BN1)
       kayit(2) = CDbl(Satis_Ftr_Frm.BN2)
       kayit(3) = CLng(CDate(FATTAR.Value))
       kayit(4) = Satis_Ftr_Frm.FK.Value
       kayit(5) = Satis_Ftr_Frm.OSRT.Value
       kayit(6) = Satis_Ftr_Frm.PCNS.Value
       kayit(7) = Satis_Ftr_Frm.FTRNO.Value
       kayit(8) = Controls("STK" & b)
       kayit(9) = Controls("SMIK" & b)
       kayit(10) = Controls("BFYT" & b)
       kayit(11) = Satis_Ftr_Frm.FRMISK.Value
       kayit(12) = Satis_Ftr_Frm.FRMISK1.Value
       kayit(13) = Satis_Ftr_Frm.KDV.Value
       
Next
say = 0
Cikis:
kayit.Update
baglan.Close
End Sub
 

programer

Altın Üye
Katılım
26 Mayıs 2005
Mesajlar
607
Excel Vers. ve Dili
Office 2022 - Türkçe
Altın Üyelik Bitiş Tarihi
16-03-2025
Sayın Levent Menteşoğlu yardımınız için teşekkür ederim kodlar gayet güzel çalışıyor
 
Üst