• DİKKAT

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

excel 2007 ado uygulaması hatası

Katılım
10 Ocak 2007
Mesajlar
99
Excel Vers. ve Dili
Excel 2003 Prof. english
merhabalar,
excel 2003 de yaptıgım ado kapalı dosya uygulamasını excel 20072de yapmaya çalıştığımda

Run-time error '-2147467259(80004005)':

external table is not in the expected format.

hata mesajını alıyorum. ektede kullandığım kodları bulabilirsiniz. dünden beri sitede cevap aramaya çalışıyorum fakat istediğim cevabı bulamadım. konuyla ilgili yardımlarınızı rica ederim. herkese çok teşekkürler.

Private Sub TextBox1_AfterUpdate()
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset

Set cn = New ADODB.Connection
With cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=D:\users\tr03439\Desktop\x\data_test.xlsx;" & _
"Extended Properties=""Excel 8.0;HDR=Yes"""


.Open
End With
Set rs = cn.Execute("SELECT [adı],[soyadı,[d_tarihi]from [Sheet1$] WHERE [adı]=" & TextBo14.Value)


Do While Not rs1.EOF
TextBox2.Value = rs(1)

TextBox3.Value = rs(2)
TextBox4.Value = rs(3)



rs.MoveNext
Loop
 
konu ile ilgili bir önerisi olan yok mu acaba. yardımlarınızı bekliyorum. teşekkürler.
 
Aşağıdaki şekilde deneyiniz.:cool:
Kod:
Provider = "Microsoft.ACE.OLEDB.12.0"
.ConnectionString = "Data Source=D:\users\tr03439\Desktop\x\data_test.xlsx;" & _
"Extended Properties=""Excel 12.0;HDR=Yes"""
 
evren bey merhaba
kodu sizin söylediğiniz gibi değiştirdiğimde ise;

compile error
user-defined type not defined hata mesajını alıyorum. kod yine aşağıdadır. yardımınızı rica ederim. teşekkürler.

Private Sub TextBox1_AfterUpdate()
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset

Set cn = New ADODB.Connection
With cn
.Provider = "Microsoft.ACE.OLEDB.12.0"

.ConnectionString = "Data Source=D:\users\tr03439\Desktop\x\data_test.xlsx;" & _
"Extended Properties=""Excel 12.0;HDR=Yes"""


.Open
End With
Set rs = cn.Execute("SELECT [adı],[soyadı,[d_tarihi]from [Sheet1$] WHERE [adı]=" & TextBo14.Value)


Do While Not rs1.EOF
TextBox2.Value = rs(1)

TextBox3.Value = rs(2)
TextBox4.Value = rs(3)



rs.MoveNext
Loop
End Sub
 
İlgili cümleyi aşağıdaki ile değiştirip deneyiniz.:cool:
Birde ado ile çalışırken türkçe karakterler kullanmayınız.Mesela adı ,Burada ı türkçe karakterdir.Veri tabanınız ve tablo adınız ve alan adlarınız hep ingilizce karakterler olsun.Aralarındda boşluk olmasın.Yasak karakterler olmasın.Yani ado ile çalışmak excel hücresine veri girmeye benzemez.Onun bir takım katı kuralları vardır.Bunları öğrenmeden yola çıkarsanız habire takılırsınız.:cool:
eğer sorguladığınız alan sayısal ise;
Kod:
Set rs = cn.Execute("SELECT adı,soyadı,d_tarihi from [Sheet1$] WHERE [adı]=" & cdbl(TextBo14.Value))
eğer string ise;
Kod:
Set rs = cn.Execute("SELECT adı,soyadı,d_tarihi from [Sheet1$] WHERE [adı]='" & TextBo14.Value & "'")
 
evren bey tekrar slm,
söylediğiniz türkçe karakter düzeltmelrinide yaptım fakat kodu çalıştırdığımda daha connectionları tanımlarken ;
compile error
user-defined type not defined hata mesajını alıyorum. dosyalarımıda ekliyorum. yardımınız için şimdiden teşekkürler.
 
evren bey tekrar slm,
söylediğiniz türkçe karakter düzeltmelrinide yaptım fakat kodu çalıştırdığımda daha connectionları tanımlarken ;
compile error
user-defined type not defined hata mesajını alıyorum. dosyalarımıda ekliyorum. yardımınız için şimdiden teşekkürler.
Bende 2007 yok.
2003 formatında yükleyin.:cool:
 
Tools ==> reference'den microsoft acitvie-x data object library 2.8
seçip işaretledinizmi?
 
evet active-x data object library 2.8'ide yükledim. desteginiz için teşekkürler.
 
şize hata mesajını gönderdiğimdede seçiliydi zaten. ilk andan beri bu hatayı veriyor.
 
şize hata mesajını gönderdiğimdede seçiliydi zaten. ilk andan beri bu hatayı veriyor.
O zaman 2003 formatında yükleyin dosyayı bir bakayım.Onda normal çalışıyormu.Yoksa bir yerde hatamı var.Görelim.:cool:
 
hayır çalışmıyor. başka önerebileceğiniz birşey var mı?
 
hayır çalışmıyor. başka önerebileceğiniz birşey var mı?
Çalışmıyorsa yolayın bakayım.Dosyayı alanları falan kontrol edeyim.
Yoksa çözülmesini istemiyormusunuz sorununuzun.
Ama 2003 formatında yolayın.:cool:
 
Geri
Üst