• DİKKAT

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

ADO ile son kayıt bilgisine ulaşma hk.

Katılım
12 Ekim 2004
Mesajlar
220
Excel Vers. ve Dili
365 Türkçe
Merhaba,

Son kayda ulaşmak için sorgum nasıl olmalı ve hücreye nasıl aktarabiliriz?
Tablo başlıkları "A1", "A2", "A3", "A4", "A5", "A6" şeklinde ve 6 sütun.

Yardımcı olur musunuz?

Saygılarımla...

Kod:
Sub oku()
Set con = CreateObject("Adodb.Connection")
Set rs = CreateObject("Adodb.Recordset")
con.Open "Provider=Microsoft.ace.OLEDB.12.0;Data Source=" & ThisWorkbook.Path & "\1.xlsx;" & "Extended Properties=""Excel 8.0;HDR=Yes"""

sorgu = ??? ' Son kayıt

rs.Open sorgu, con, 1, 3

MsgBox rs.??? ' Son kayıt

Set rs = Nothing: Set con = Nothing

End Sub
 
Merhaba,

Tablolarınıza 1'den başlayarak sıra numarası verirseniz sorgu kodlaması açısından çok rahat olur.
Tablonuzun en başına SIRA NO alanı eklerseniz aşağıdaki sorgu ile son kayıta ulaşırsınız.

Kod:
sorgu = "select top 1 * from[Sheet1$] order by [SIRA NO] desc
 
Veya; "rs.MoveLast" gibi bir komut da işe yarayabilir ....

Örnek dosya ektedir.

.
 

Ekli dosyalar

Son düzenleme:
Haluk bey,

DAO yada ADO kullanmanın avantajları nelerdir.
 
Alternatif olarak aşağıdaki sorgu'da olabilir.

Kod:
Sub ddd()

Cells.Clear

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

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

sorgu = "select last(A1),last(a2) from[Sheet1$] "
Set RS = con.Execute(sorgu)

Range("A1").CopyFromRecordset RS

End Sub
 
Merhaba,

Erdem bey ilk cevabınızı uyarlayamadım yardımcı olur musunuz?
 
Örnek dosya ekleyebilir misiniz.
 
Aşağıdaki kodu kullanabilirsiniz.
HDR= YES dediğimiz için Ankara yazan satırı komple silin.

Kod:
Sub oku()

Set con = CreateObject("Adodb.Connection")
con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
ThisWorkbook.FullName & ";extended properties=""Excel 12.0;hdr=yes"""

sorgu = "select last(A6) from[Sayfa1$]"
Set rs = con.Execute(sorgu)

MsgBox rs.Fields.Item(0)

Set rs = Nothing: Set con = Nothing

End Sub
 
Teşekkürler...:)
 
Geri
Üst