• DİKKAT

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

run tıme error "-2147467259 (80004005) geçersiz boş kullanımı hatası

Katılım
30 Ağustos 2010
Mesajlar
59
Excel Vers. ve Dili
2013
Merhaba arkadaşlar.
Aşağıdaki kodlarda "run tıme error "-2147467259 (80004005) geçersiz boş kullanımı hatası alıyorum. sebebi ne olabilir.

Private Sub CommandButton1_Click()
Dim con As Object, rs As Object, s As String
Dim yol As String, bas As Date, son As Date
Dim bugun As Date, formul As Variant, i As Long
Set con = CreateObject("adodb.connection")
Set rs = CreateObject("adodb.recordset")
yol = "P:\FIRAT\ORTAK\KADRO.xlsx"
bugun = CDate(Date)
Range("b5:ı90").ClearContents
Range("k5:r90").ClearContents
deneme = (bugun - 60) + 5
formul = Split(Range("h2").Value, "-")
bas = formul(0): son = formul(1)
con.Open "provider=microsoft.ace.oledb.12.0;data source=" & yol & ";extended properties=""excel 12.0;hdr=yes"""
rs.Open "select [SİCİL NO],[ADI-SOYADI],[FİRMA],[ŞUBE],[İŞ BAŞI],[İL],CDATE([İŞ BAŞI])+60 from [eleman$] where clng(cdate([İŞ BAŞI]))<=" & CLng(CDate(deneme)), con, 1, 1
If rs.RecordCount > 0 Then
Range("l5").CopyFromRecordset rs
End If
For i = 5 To Range("m65536").End(3).Row
Cells(i, "k").Value = i - 4
Next i
rs.Close
rs.Open "select [SİCİL NO],[ADI-SOYADI],[FİRMA],[ŞUBE],[İŞ BAŞI],[İL] from [eleman$] where clng(cdate([İŞ BAŞI])) between " & CLng(CDate(bas)) & " and " & CLng(CDate(son)), con, 1, 1
If rs.RecordCount > 0 Then
Range("c5").CopyFromRecordset rs
End If
For i = 5 To Range("c65536").End(3).Row
Cells(i, "b").Value = i - 4
Next i
Set rs = Nothing
Set con = Nothing
yol = vbNullString: deneme = Empty: Erase formul
bas = Empty: son = Empty: bugun = Empty: i = Empty
End Sub
 
Hangi satırda hata alıyorsunuz
 
Aşağıdaki satırda hata alıyorum

Range("l5").CopyFromRecordset rs
 
Dosyalarınızı paylaşırsanız test etme şansımız olabilir.
 
Dosyalarınızı paylaşırsanız test etme şansımız olabilir.
Merhaba,
Ekli dosyada aldığım;
"geçersiz boş kullanımı hatası"
neden kaynaklanıyor olabilir?

Veri = RS.getRows

satırında veriyor bu hatayı

desteğiniz için şimdiden teşekkürler,


Kod:
Sub SorguSaat(tarih As Double, saat1 As Double, saat2 As Double)
    Dim RS As Object
    Dim Veri() As Variant
    Dim i As Long, ub As Long
    
      sorgu = "Select * From [Data$] Where Cdbl(CDate([Tarih])) = " & tarih & _
                " And Cdbl(CDate([Saat])) >= " & Replace(saat1, ",", ".") & _
                 " And Cdbl(CDate([Saat])) <= " & Replace(saat2, ",", ".")
    
    Set RS = CreateObject("ADODB.Recordset")
    RS.CursorType = 1
    
    RS.Open sorgu, Con

    Veri = RS.getRows
    
    ub = UBound(Veri, 2)
RS.Close
Set RS = Nothing

End Sub
 

Ekli dosyalar

  • 123.jpg
    123.jpg
    14.7 KB · Görüntüleme: 2
  • Örnek2.xlsb
    Örnek2.xlsb
    2.5 MB · Görüntüleme: 0
  • Örnek2.rar
    Örnek2.rar
    191 KB · Görüntüleme: 2
Recordset boş ise getrows hata verir. Recordsetin boş olup olmadığı kontrol edilmeli.
 
Verdiği hata mesajı özetle; getRows fonksiyonunu parametresiz kullandığınızı söylüyor.....

.
 
@tamer42,

Dosyanızı incelediğimde Data sayfasında 271 satır veri var. Fakat boyutu çok yüksek. Sonra Data sayfasında CTRL+END yaptığımda cursor 1048576. satıra konumlandı.

Null değerler sorguda sorun çıkarıyor.

2. alternatifiniz var...

1- Boş bir sayfa ekleyip Data sayfasındaki 271 satırı bu sayfaya kopyalayabilirsiniz. Eski sayfayı silip yeni eklediğiniz sayfanın adını Data olarak ayarlayabilirsiniz. (Bu sayede dosyanızın boyutuda epey küçülecektir.)

2- Sorgu satırınızı aşağıdaki gibi düzenleyebilirsiniz.

C++:
sorgu = "Select * From [Data$] Where Cdbl(CDate([Tarih])) = " & tarih & _
        " And Cdbl(CDate([Saat])) >= " & Replace(saat1, ",", ".") & _
        " And Cdbl(CDate([Saat])) <= " & Replace(saat2, ",", ".") & " And Not IsNull([Saat])"
 
Hocam ben de benzer hata alıyorum hata şu şekilde oluyor tablonun altından verileri siliyorum hata alıyorum satırları seçip komple sildiğimde hata almıyorum

Kodlarım şu şekilde
C++:
kisitc = CStr(kisitc)
sql = "SELECT [STOK NU], [MALZEME ADI], [SERİ NU], [MIKTARI] FROM [" & aralik & "] " & _
          "WHERE  [TC KİMLİK NO] = '" & kisitc & "'" & " And Not IsNull([STOK NU])"


SELECT [STOK NU], [MALZEME ADI], [SERİ NU], [MIKTARI] FROM [DagitimYapilan$Q16:AB] WHERE  [TC KİMLİK NO] = '1111111' And Not IsNull([STOK NU])
 
Çözümü yok sanırım
 
Geri
Üst