• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Kapalı dosyaya kayıt yaparken hata

Katılım
26 Mayıs 2005
Mesajlar
609
Excel Vers. ve Dili
Office 2022 - Türkçe
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
 
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

"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.
 
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
 
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
 
Sayın Levent Menteşoğlu yardımınız için teşekkür ederim kodlar gayet güzel çalışıyor
 
Geri
Üst