• DİKKAT

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

ado ile klasördeki dosyalardan veri alırken hata

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,677
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Merhaba,

Aşağıdaki kod ile kapalı dosyadan veri çekebiliyorum ama klasör yolunda bulunan dosyalardan biri açıksa kod o dosyayı açıyor ve ona kayıt yapıyor, bazende hata verip kapanıyor.Eklediğim kodda değil ama çoğu zaman dosyaları ağdan çekiyorum. Dosya açma olayını nasıl aşabilirim.

Connection nesnesinin bağlantı tipini değiştirmek gerekir diye düşünüyorum, yardımcı olabilirmisiniz?

Kod:
Sub a2()

Cells.Clear

Dim con As Object
Set con = VBA.CreateObject("adodb.connection")
Set rs = VBA.CreateObject("adodb.recordset")


Set fso = VBA.CreateObject("scripting.filesystemobject")

For Each dosya In fso.getfolder("C:\Users\a001\Desktop\Mizan\2014\").Files

'MsgBox dosya

con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
dosya & ";extended properties=""Excel 12.0;hdr=yes"""

sorgu = "select top 10 Anahesap,[Anahesap Tanımı],Bakiye from [Sheet1$] where uzunluk=3 and anahesap like'6%' or uzunluk=3 and anahesap like '7%'"
On Error Resume Next
rs.Open sorgu, con, 1, 1
son = Cells(Rows.Count, "a").End(3)(2, 1).Row
Range("D" & son) = dosya.Name
Cells(Rows.Count, "a").End(3)(2, 1).CopyFromRecordset rs
Range("d" & son & ":d" & son - 1 + rs.RecordCount).Value = dosya.Name
rs.Close
con.Close
Next



End Sub

Aşağıdaki hatayı veriyor.

Kod:
Sorun imzası:
  Sorunlu Olay Adı:	APPCRASH
  Uygulama Adı:	EXCEL.EXE
  Uygulama Sürümü:	15.0.4420.1017
  Uygulama Zaman Damgası:	506741b5
  Hata Modülü Adı:	StackHash_3a13
  Hata Modülü Sürümü:	6.1.7601.18247
  Hata Modülü Zaman Damgası:	521eaf24
  Özel Durum Kodu:	c0000374
  Özel Durum Uzaklığı:	00000000000c4102
  OS Sürümü:	6.1.7601.2.1.0.256.48
  Yerel Kimlik:	1055
  Ek Bilgiler 1:	3a13
  Ek Bilgiler 2:	3a137807b6e9ae4e31d03f42d7b46b74
  Ek Bilgiler 3:	0891
  Ek Bilgiler 4:	08917c89ef3cbda5208b4f5621e15257

Çevrimiçi gizlilik bildirimimizi okuyun:
  http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x041f

Çevrimiçi gizlilik bildirimi yoksa, lütfen çevrimdışı gizlilik bildirimimizi okuyun:
  C:\Windows\system32\tr-TR\erofflps.txt
 
Son düzenleme:
Merhaba,

Bağlantı metnini aşağıdaki gibi değiştirince sorun çözüldü.Eski kodda neden hatalı yaptığını bulamadım.

Kod:
con.Open "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" & dosya
 
Son düzenleme:
Herkese merhaba,

Aşağıdaki sorguda klasör seçimi yaparken bir yere kadar default getirdim ama bazen bir üst dizindeki klasöre yada C'deki klasöre ulaşmak gerekecek ama kod buna izin vermiyor.

Bunu nasıl aşabilirim.
 
Arkadaşlar merhaba,

Tekrardan konuyu canlandırıyorum, ağdaki dosya bende açıksa con.Open "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" & dosya bağlatısı ile veriyi çekebiliyorum ama başkasının bilgisayarında açıksa, bende de salt okunur açıyor ve kodun çalışması duruyor. Kodu nasıl düzenlemek gerekir.
 
Veritabanı için Excel dosyası kullanmayın bence. ADO konusuna ilgi duyduğunuza göre Excel & Access konusunda uzmanlaşın artık.
 
Veritabanı için Excel dosyası kullanmayın bence. ADO konusuna ilgi duyduğunuza göre Excel & Access konusunda uzmanlaşın artık.

Zeki üstad hayırlı akşamlar.Benim elimde olsa kesinlikle kullanmam ama excel bu çalışmada mecburi olarak işin içinde.Hocam bildiğiniz varsa Ado ile ilgili Türkçe kaynak önerebilir misiniz?
 
benzer soruya buradada cevap yok..demekki sıkıntılı bir konu ADO konusu
 
Geri
Üst