Sql Sorguda veri alma problemi

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,043
Excel Vers. ve Dili
Office 2013 İngilizce
Merhabalar
Ekli dosyada Sorgu sayfasından veri çekerken;
hücrede yazan bilgilerinin tamamını getiremiyor, çok az bir kısmını getiriyor. Yalnız aradan herhangi bir satır silersem (Sorgu2 sayfası) veriler eksiksiz tüm olarak gelmekte;
sorunun kaynağını bir türlü çözemedim.

yardımcı olabilirseniz sevinirim.

iyi akşamlar.

Kod:
Sub sorguu()
Dim Con As Object
Dim RS As Object
Dim yol As String

Sayfa2.Cells.ClearContents

Set Con = VBA.CreateObject("adodb.Connection")

yol = ThisWorkbook.FullName

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

sorgu = "Select [Föy No], [Bilgileriniz] From [Sorgu$]" & _
        " Where [Föy No]='13' "

Set RS = Con.Execute(sorgu)

Sayfa2.Range("A2").CopyFromRecordset RS

End Sub
 

Ekli dosyalar

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,642
Excel Vers. ve Dili
Pro Plus 2021
249748



249750

ADO da veri türü belirlenirken ilk 8 satıra bakılıyor. Sorgu2 de bir satır sildiğiniz zaman 8. satırdaki açıklama uzun olduğu için veri türü 2.resimdeki gibi adLongVarWChar olarak belirlemiş. Ancak sorgu sayfasındaki ilk 8 satırdaki veriler kısa olduğu için ilk resimdeki gibi adVarWChar olarak belirlenmiş.
Bunu aşmak için başlıksız olarak sorguyu A9 dan başlatarak ve HDR=NO yaparak kullanabilirsiniz.

Aşağıdaki gibi kullanabilirsiniz.
249751
 
Son düzenleme:

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,043
Excel Vers. ve Dili
Office 2013 İngilizce
Ekli dosyayı görüntüle 249748



Ekli dosyayı görüntüle 249750

ADO da veri türü belirlenirken ilk 8 satıra bakılıyor. Sorgu2 de bir satır sildiğiniz zaman 8. satırdaki açıklama uzun olduğu için veri türü 2.resimdeki gibi adLongVarWChar olarak belirlemiş. Ancak sorgu sayfasındaki ilk 8 satırdaki veriler kısa olduğu için ilk resimdeki gibi adVarWChar olarak belirlenmiş.
Bunu aşmak için başlıksız olarak sorguyu A9 dan başlatarak ve HDR=NO yaparak kullanabilirsiniz.

Aşağıdaki gibi kullanabilirsiniz.
Ekli dosyayı görüntüle 249751
Veysel Hocam öncelikle çok teşekkürler,
yalnız ilk 8 satır mevcut, başka bir tabloda "13" nolu föy ilk satırda da olabilir, 1000. satırda da olabilir..
buradaki başlangıç satırını nasıl kontrol edeceğiz?
ayrıca " Where F1='13' " koşulu olmadan tüm listeyi almak istersek nasıl yapacağız?

Örneğin: F2 alanında veri türünü adLongVarWChar olarak dikkate alması için bir çözüm üretilebilir?

tekrar teşekkürler,
iyi hafta sonları..


Kod:
sorgu = "Select F1, F2 From [Sorgu$A1:B]" & _
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,642
Excel Vers. ve Dili
Pro Plus 2021
Kaçıncı satırda olduğunun önemi yok Where ile 13 nolu veriyi sorguluyorsunuz. Sorgulamak istediğiniz verilerin satırını Sorgu$A9:B belirleyerek veri türünün doğru algılanmasını sağlayabilirsiniz. Where kısmını kullanmadığınız takdirde A9:B aralığındaki verileri alabilirsiniz.
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,043
Excel Vers. ve Dili
Office 2013 İngilizce
Kaçıncı satırda olduğunun önemi yok Where ile 13 nolu veriyi sorguluyorsunuz. Sorgulamak istediğiniz verilerin satırını Sorgu$A9:B belirleyerek veri türünün doğru algılanmasını sağlayabilirsiniz. Where kısmını kullanmadığınız takdirde A9:B aralığındaki verileri alabilirsiniz.
Veysel Hocam "Connection String" satırında 'IMEX' ile bir çözüm olmaz mı acaba?

teşekkürler,
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,642
Excel Vers. ve Dili
Pro Plus 2021
İlk başta IMEX ile uğraştım fakat olmuyor.
 
Üst