Pozdrav svima.
Iz tabele pokretni treba da nadjem sve slogove koji se pojavljuju zadnja 2 datuma u bazi(2 "najmladja datuma").
Private Sub cmdPok2mj_Click()
Dim datZad As Date
Dim datPred As Date
Dim strSql1 As String
Dim strSql2 As String
Dim rst1 As Recordset
Dim rst2 As Recordset
Dim db As Database
Set db = CurrentDb
Set rst1 = db.OpenRecordset("select distinct pokretni.datum from pokretni;") 'dobijem sve datume koji se pojavljuju
rst1.MoveLast 'odlazim na zadnji tj.najveci
datZad = rst1!datum 'dodjeljujem ga promjenljivoj
rst1.MovePrevious 'odlazim na prethodni odnosno predzadnji
datPred = rst1!datum 'dodjeljujem ga promjenljivoj
strSql1 = "select pokretni.* from pokretni where pokretni.datum = #" & Format(datZad, "mm-dd-yyyy") & "# 'gradim upit-svi slogovi koji imaju max datum
Set rst2 = db.OpenRecordset(strSql1) 'otvaram recordset
strSql2 = "select pokretni.* from pokretni where pokretni.datum = #" & Format(datPred, "mm-dd-yyyy") & "# and pokretni.add= " & rst2!add & ";" 'trazim one koji imaju drugi najmladji datum i kod kojih je pole add=add iz rst2 tj. onih koji imaju najmladji datum
Me.RecordSource = strSql2 'taj select mi je sad recordSource i poslije osvjezavam prikaz unutar forme da bi dobio slogove koji se pojavljuju i u jednom i u drugom datumu
Me.Refresh
Me.Requery
rst1.Close
rst2.Close
End Sub
Iz debug moda sam zakljucio zasto kao rezultat dobijam 0 slogova. Pozicionirao se na polje add=235 koji sadrzi najmladji datum a add se ne pojavljuje u slogu koji ima drugi najmladji datum.
Iako mi je jasno zbog cega dobijam nula slogova nakon Me.RecordSource = strSql2, ne polazi mi za rukom da izgradim upit u kojem cu dobiti add-ove i sa najmladjim i sa drugim najmladjim datumom. Pokusao sam mnoge varijante na upitima sa recordsetovima ali ne mogu da izgradim korektnu sintaksu.
Vjerovatno bi mi neko mogao pomoci sa jednostavnijim rjesenjem...