Ado bağlantısı Max yazım hatası

Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Kod:
 Sorgu = "SELECT max(FaturaTarihi),FaturaNo FROM Hareketler
Hayırlı akşamlar
Burada nerede hata yapıyorum ki? Hem fatura tarihindeki en büyük değeri bulup yanındakş fatura no alacağım
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,225
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
En büyük fatura tarihi birden fazla ise ne olacak?
 
Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Evet haklısınız onun için iki sütundan da max değeri almak istedim fakat doğru sonuç alamadım.
Amacım;
Accesdeki datada
FaturaTarihi sütunundaki son tarihe denk gelen
FaturaNo sütunundaki en büyük değere ulaşmak.

Sonuç olarak fatura numarasını otomotik olarak 1no yukarı alıp textboxa alacağım.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,225
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Son olarak, silsileye uymayan kullanıcı son kullanılan fatura no'ya max tarihten küçük bir tarih de vermiş olabilir. Bu durumda ne yapacaksınız?
 
Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Hayır oraya faturanın işlendiği zaman (Now) gelecek.
Bu durum seri değiştiğinde doğru noyu cekmek için faydalı olacak. Diğer durumda sadece faturano ile gittiğimde seri değiştiğinde sağlıklı bir numara çekemeyeceğimi düşündüm.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,225
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Şöyle bir şey işinizi görür sanırım...
Fatura no alanının numerik olduğunu yani "A", "B" gibi seri adı yazılmadığını varsayıyorum.

PHP:
select top 1 faturano + 1
from hareketler
where faturatarihi = max(faturatarihi) and faturano = max(faturano)
order by faturano desc
 
Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Çok teşekkür ederim. Akşam deneyeceğim . Evdeki pcde kaldı program. Ama kurgu güzel.
Where den sonra max kullanmamıştım hiç.
Top 1 sanırım Desc den aldığı ilk veriyi alıyor?
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,225
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Tekrar düşündüğümde, aslında "top 1" ve "order by.." kısımlarının gereksiz olduğunu farkettim. Onları silebilirsiniz...
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,225
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
O halde gruplayarak deneyelim...

PHP:
select faturano + 1
from hareketler
group by faturano
having faturatarihi = max(faturatarihi) and faturano = max(faturano)
 
Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Yine aynı hata meydana geldi.
Farklı bir kod ile yaptım gibi. denemeler yaptım hatalı gelmedi;
Kod:
 Sub fatnoçek()

  Set con = CreateObject("Adodb.Connection")
    Set rs = CreateObject("Adodb.RecordSet")
 
On Error Resume Next
 con.Open "provider=microsoft.ace.oledb.12.0;data source=" & ThisWorkbook.Path & "\CariKayıtlar\Hareketler.mdb"
 
 
 Dim dtMaxDate As Date
 
    sorgu = "Select FaturaNo, FaturaTarihi From hareketler"
  
  rs.Open sorgu, con, 1, 3
    If Not (rs.BOF And rs.EOF) Then
        dtMaxDate = rs.Fields("FaturaTarihi")
        rs.MoveNext
        Do While Not rs.EOF
            If rs.Fields("FaturaTarihi") > dtMaxDate Then
                dtMaxDate = rs.Fields("FaturaTarihi")
                fatno = rs.Fields("FaturaNo")
            End If
            rs.MoveNext
        Loop
    
     ' If fatno Is Null Then fatno = 0
      FaturaEkranı.faturano = Format(fatno + 1, "000000")
    End If
    rs.Close
    Set rs = Nothing

 End Sub
 
Üst