temel mantık aşağıdaki gibidir
önce referanslardan
mirosoft ActiveX Data Object x.x library eklenmeli
ADO_CN.ConnectionString = "provider=Microsoft.ACE.OLEDB.12.0;data source=" &
veri alınacak excel dosyasının yolu ve adı & _
";extended properties=""excel 8.0;hdr=No"""
hdr=No bu kısım veri alınacak aralıkta başlık var mı yok mu onu gösterir
Sql="select....." bu kısım normal sorgulardaki gibidir alan isimleri olarak alan nolar kullanılabilir
ilk alan için [F1], ikinci için [F2] gibi
bu sıralama seçtiğiniz sutun aralığı için geçerli mesela
FROM [Personel$B2:N] burada
Personel sayfanın adı
B2:N ise verilerin B2:N aralığında olduğunu söyler -aralık girmezseniz excel veri alanını kendi belirler- mesela siz sadece
C, E ve F sütunlarındaki verilerin alınmasını istiyorsanız
B=[F1], C=[F2], D=[F3], E=[F4], F=[F5], G=[F6].......
select [F2], [F4], [F5] from...... şeklinde yazabilirsiniz
eldeki verileri bir sayfaya aktaracaksanız =>
Sheets("SayfaAdı").Range("A3").CopyFromRecordset ADO_RS
combo yada listeye aktaracaksanız =>
ComboBox1.Column = ADO_RS.GetRows
HTML: