select na recordsetu?
01.04.2004. u 20:18 · pre 274 meseci
#1
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...
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...