Kod xls uzanltılı dosyadan veri almıyor

Katılım
23 Nisan 2005
Mesajlar
34
Excel Vers. ve Dili
Office 2010-2016
Altın Üyelik Bitiş Tarihi
07.05.2018
Merhaba,

Aşağıdaki "kapalı dosyadan veri alma" kodu xls uzantılı dosyadan veri almıyor.
Kod nasıl düzenlenmeli ki xls uzantılı dosyaları alsın.

yardımlarınız için teşekkürler.

Kod:
Option Explicit

Global Con As Object, Rec As Object

Function BaglanExcel(VeriTabani As String, Sorgu As String)
 Set Con = CreateObject("AdoDB.Connection")
 On Error GoTo hata:
 Con.Open "Provider=Microsoft.Ace.OLEDB.12.0;" & _
 "Data Source= '" & VeriTabani & "'" & ";" & _
 "Extended Properties=""Excel 12.0;HDR=yes;IMEX=1"";"
 Set Rec = Con.Execute(Sorgu)
hata:
If Err Then Exit Function
End Function
'Fonsiyon adını teknisyen adı yap
Sub av2_1()
 Set Rec = CreateObject("AdoDB.Recordset")
 Call BaglanExcel("C:\Users\ilker.sandikci\Downloads\" & Range("H1") & ".xlsx", "Select * From [Sayfa1$A2:b100]")
'Teknisyen sayfasını yaz
Sayfa2.Range("A19").CopyFromRecordset Rec
Rec.Close
Con.Close
End Sub
 
Katılım
24 Nisan 2005
Mesajlar
3,669
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
Aşağıdaki şekilde deneyiniz.


Kod:
'Excel e bağlan
Option Explicit
Global Con As Object, Rec As Object
Dim baglan As String

Function BaglanExcel(VeriTabani As String, Sorgu As String)
  Set Con = CreateObject("AdoDB.Connection")
  On Error GoTo hata:
  
  baglan = "Provider=Microsoft.Ace.OLEDB.12.0;Data Source=" & VeriTabani & ";Extended Properties=""Excel 8.0;HDR=YES;IMEX=1"";"
  Con.Open baglan
  Set Rec = Con.Execute(Sorgu)
hata:
  If Err Then Exit Function
End Function

'Fonsiyon adını teknisyen adı yap
Sub av2_1()
  Set Rec = CreateObject("AdoDB.Recordset")
  Call BaglanExcel("C:\Users\ilker.sandikci\Downloads\" & Range("H1") & ".xls", "Select * From [Sayfa1$A2:b100]")
  'Teknisyen sayfasını yaz
  Sayfa1.Range("A1").CopyFromRecordset Rec
  Rec.Close
  Con.Close
End Sub
 
Katılım
23 Nisan 2005
Mesajlar
34
Excel Vers. ve Dili
Office 2010-2016
Altın Üyelik Bitiş Tarihi
07.05.2018
selam,

Desteğiniz için teşekkürler.Kodları çalışma sayfamda deneyince aşağıdaki hatayı aldım.

"nesne kapalı olduğunda işleme izin verilmez"



Debug tuşuna basınca aşağıdaki kod satırını gösteriyor.
Kod:
Sayfa1.Range("A1").CopyFromRecordset Rec
 
Katılım
24 Nisan 2005
Mesajlar
3,669
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
selam,

Desteğiniz için teşekkürler.Kodları çalışma sayfamda deneyince aşağıdaki hatayı aldım.

"nesne kapalı olduğunda işleme izin verilmez"



Debug tuşuna basınca aşağıdaki kod satırını gösteriyor.
Kod:
Sayfa1.Range("A1").CopyFromRecordset Rec
Bu şekilde dener misiniz?
Sorgulanacak dosyayı aşağıdaki klasöre kopyalayın.

Klasör c:\deneme2

Sorgu dosyası
http://dosya.co/rno0vteaw7sr/sorgu.xlsm.html


Sorgulanacak dosya
http://dosya.co/bqqliju0qz83/deneme.xls.html
 
Katılım
23 Nisan 2005
Mesajlar
34
Excel Vers. ve Dili
Office 2010-2016
Altın Üyelik Bitiş Tarihi
07.05.2018
Dosyaları indirip bahsettiğiniz şekilde denedim yine aynı hatayı aldım.

Konuyu başlattığım mesajdaki kodları xlsx den xlsx aktarmada sıkıntı yaşamadan kullandım.
 

Merhum İdris SERDAR

Moderatör
Yönetici
Katılım
21 Ekim 2005
Mesajlar
17,094
Excel Vers. ve Dili
Excel, 365 - İngilizce
.

Sayın Asri'nin son verdiği dosyaları denedim. Problem görünmüyor.

.
 
Katılım
23 Nisan 2005
Mesajlar
34
Excel Vers. ve Dili
Office 2010-2016
Altın Üyelik Bitiş Tarihi
07.05.2018
Kod:
Call BaglanExcel("C:\deneme\" & Range("H1") & ".xls", "Select * From [Sayfa1$A2:b100]")
Yukarıdaki kodu aşagıdaki şekilde değiştirince çalıştı.
Kod:
Call BaglanExcel("C:\deneme.xls", "Select * From [Sayfa1$A2:b100]")
Range("h1") deki çalışma kitabı adını okumuyor, anlamadım.

Bu şekilde de işinmi görür.

Çok teşekkür ederim.

Hayırlı geceler.
 

Merhum İdris SERDAR

Moderatör
Yönetici
Katılım
21 Ekim 2005
Mesajlar
17,094
Excel Vers. ve Dili
Excel, 365 - İngilizce
.

Sayın asri'nin kullandığı kod:

Call BaglanExcel("C:\DENEME2\" & Range("H1") & ".xls", "Select * From [Sayfa1$A2:b100]")

"Sorgulanacak dosyayı aşağıdaki klasöre kopyalayın.

Klasör c:\deneme2" demiş.

Siz bunlara dikkat etmediniz herhalde.

.
 
Katılım
23 Nisan 2005
Mesajlar
34
Excel Vers. ve Dili
Office 2010-2016
Altın Üyelik Bitiş Tarihi
07.05.2018
Kapalı dosya veri örnek dosya

Sayın Asri ve İdris bey,

Yaptığım çalışmayı ekliyorum. Çalışma sayfamdaki kodlar çalışıyor. İnceleme imkanınız olursa eğer yapmak istediğimi daha iyi anlatmış olurum.Sadece xls uzantılı kapalı dosyadan veri alamıyorum, ekli dosyamdaki koda ne gibi bir değişiklik yapmalıyım.

Bilgilerinize,

İyi günler.
 

Ekli dosyalar

Merhum İdris SERDAR

Moderatör
Yönetici
Katılım
21 Ekim 2005
Mesajlar
17,094
Excel Vers. ve Dili
Excel, 365 - İngilizce
.

Dosya yolu daha sade olsun. Sonra değiştirirsiniz.

Örnek: ben C:\Deneme2\ klasörüne dosyalarınızı koydum. Ve Av1 için makro:

Kod:
Option Explicit

Global Con As Object, Rec As Object

Function BaglanExcel(VeriTabani As String, Sorgu As String)
 Set Con = CreateObject("AdoDB.Connection")
 On Error GoTo hata:
 Con.Open "Provider=Microsoft.Ace.OLEDB.12.0;" & _
 "Data Source= '" & VeriTabani & "'" & ";" & _
 "Extended Properties=""Excel 12.0;HDR=yes;IMEX=1"";"
 Set Rec = Con.Execute(Sorgu)
hata:
If Err Then Exit Function
End Function

Sub av1_1()
 Set Rec = CreateObject("AdoDB.Recordset")
 Call BaglanExcel("C:\Deneme2\" & Range("H1") & ".xlsx", "Select * From [Sayfa1$A2:b44]")
Sayfa1.Range("A19").CopyFromRecordset Rec
Rec.Close
Con.Close
End Sub
olarak değiştirdim. Çalışıyor.

Diğerlerini de buna göre yapın.

.
 

Ekli dosyalar

Merhum İdris SERDAR

Moderatör
Yönetici
Katılım
21 Ekim 2005
Mesajlar
17,094
Excel Vers. ve Dili
Excel, 365 - İngilizce
İdris Bey,


Sizin ve benim yazdığım kodlar veri alıyor. Benim istediğim veri almak.
.

Kodu aşağıdaki gibi değiştirin ve veri aldığınız dosyanın,
"veri alınan dosya.xls" şeklinde xls uzantılı olması gerekir.

Kod:
Call BaglanExcel("C:\DENEME2\" & Range("H1") & ".[COLOR="Red"]xls[/COLOR]", "Select * From [Sayfa1$c2:c44]")
.
 
Üst