• DİKKAT

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

İki Tarih Arası Fiyat Bulma

Katılım
4 Ocak 2010
Mesajlar
2,074
Excel Vers. ve Dili
OFFICE 2007 PRO TR - Win7 X64
Merhabalar,

Adoyla yapmış olduğum işlemimde birim fiyat kısmı Max() şeklinde belirttiğimde birim fiyatı en büyük olanını veriyo. Benim istediğimi o tarih aralığına denk gelen son birim fiyat.

Kullandığım Kod;

Kod:
Sub Test()
    Range("b3:h50000").ClearContents
    Set con = CreateObject("adodb.connection")
    con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
    ThisWorkbook.FullName & ";extended properties=""excel 12.0;hdr=no"""
    Set rs = con.Execute("Select (f3),(f4),max(f7), max(f16), max(f17) from [liste$] group by f3,f4 having count(f4)>0 ")
    Range("b3").CopyFromRecordset rs
    rs.Close: con.Close
    Set rs = Nothing: Set con = Nothing
    MsgBox " İşleminiz Tamamlanmıştır.", vbInformation
End Sub
 

Ekli dosyalar

Selam
Aşağıdaki sorguyu denermisiniz
Kod:
Select Last(f7)from [liste$] Where F16>=#01/01/2005# And  F17<=#12/31/2020#"
 
Selamlar,


Öncelikle ilginiz için teşekkür ederim.

Sorgunuzu denedim. Fakat sonuç olarak veri sayfasında brim fiyat kısmında gelen son değeri getiriyo buna kodu ve açıklama kısmını ekledim sonuca ulaştım.

Sizin sorgunuzda kullanmış olduğunuzu Last() kendi sorgulamamın içine ekleyip deneyince sonuca ulaştım.

Benim kodum düzeltilmiş hali;
Kod:
Sub Test1()
    Range("b3:h50000").ClearContents
    Set con = CreateObject("adodb.connection")
    con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
    ThisWorkbook.FullName & ";extended properties=""excel 12.0;hdr=no"""
    Set rs = con.Execute("Select (f3),(f4),last(f7), max(f16), max(f17) from[liste$] group by f3,f4 having count(f4)>0 ")
    Range("b3").CopyFromRecordset rs
    rs.Close: con.Close
    Set rs = Nothing: Set con = Nothing
    MsgBox " İşleminiz Tamamlanmıştır.", vbInformation
End Sub

Sizin kodunuz küçük bir ekleme;
Kod:
Sub Test()
    Range("b3:h50000").ClearContents
    Set con = CreateObject("adodb.connection")
    con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
    ThisWorkbook.FullName & ";extended properties=""excel 12.0;hdr=no"""
    Set rs = con.Execute("Select f3,f4,Last(f7)from[liste$] Where F16>=#01/01/2005# And  F17<=#31/12/2020# group by f3,f4")
    Range("b3").CopyFromRecordset rs
    rs.Close: con.Close
    Set rs = Nothing: Set con = Nothing
    MsgBox " İşleminiz Tamamlanmıştır.", vbInformation
End Sub
 
Geri
Üst