[ rribaric @ 12.09.2004. 17:36 ] @
U jednoj tabeli unosim različite podatke.Obrađujem ih i brišem nasumce(po potrebi).Na kraju obrade bi ih trebao sortirat po polju(datum unosa).Na koji način da to napravim tako da oni i «fizički u tablici» ostanu sortirani po datumu.
Ima ko kakvu ideju ili primjer.

[ lampica @ 13.09.2004. 12:45 ] @
Citat:
rribaric: Na koji način da to napravim tako da oni i «fizički u tablici» ostanu sortirani po datumu.

Pa, ja mislim da to neces moci, jer je poenta u modelu relacione baze podataka da nije bitno kako su podaci smesteni u bazi, sve manipulacije sa njima vrsis preko upita i izvestaja. Znaci, totalno je nepotrebni "fizicki" ih sortirati po bilo kakvom redosledu, kad takav raspored podataka uvek mozes da dobijes preko upita.

Ako ti je to bitno za samu bazu, onda izgleda da ona nije dobro "teorijski" postavljena.
[ JogyII @ 13.09.2004. 13:13 ] @
lampica je u pravu (sto kaze da nebi trebalo da ti je vazan raspored)
ali postoji nacin, polja se u tabeli fizicki sortiraju po primarnom kljucu, znaci samo napravis primarni kljuc/index (koji moze da obuhvata i vise polja naravno) i podaci ce biti tim redmo sortirani
[ rribaric @ 13.09.2004. 21:52 ] @
Shvatio sam kako su podaci smješteni i kako to funkcionira.Vidim da nije bitan redosljed unosa a sortiranje sam riješio na sljedeći način.
click na command buton pooziva proceduru sort().
Prvo sam sortirao tablicu "strana" gdje su mi podaci(razlicito uneseni-datumi).Zatim sam klonirao tako sortirani tablicu set tb1=me.recordsetclone .
Zati sam unutar petlje do..while napravio upit koji uspoređuje ID u tb1(sortiranoj tablici)i tb3(unesenoj tablici) ,kad naiđe na jednakost mjenja redni broj u tablici .edit .update,uvećava redni broj za jedan i prelazi na sljedeći zapis u tb1(kloniranoj sortiranoj tablici).
Kad se upit izvrši dobivam sortirane podatke po "datumu izdavanja" i pridodane redne brojeve od najmanjeg prema najvećem.
A brojčanik postavlja na zadnji,tako da prilikom novog unosa uzima sljedeći iz tablice "parameteri".
Na kraju radi requery(ne znam dali može refresh)podataka!
STO JE BOLJE I KAD KORISTIT REFRESH A KADA REQUERY!
Hvala svima na trudu a ako tko može neka iskoristi i ovaj kod.Nije nešto ali funkcionira i može ga se još nadogradit


Public Function fsort()
Dim db3 As DAO.Database, tb1, tb3, tb As DAO.Recordset, br As Integer
rem definiranje tablica
Set db3 = CurrentDb
Set tb3 = db3.OpenRecordset("StranaA")
Set tb = db3.OpenRecordset("parametri")

Rem prvo sortira po datumu izdavanja
Me.OrderBy = "datum_izdavanja"
Me.OrderByOn = True
Rem klonira sortiranu tabelu
Set tb1 = Me.RecordsetClone
tb3.MoveFirst
tb.MoveFirst
tb1.MoveFirst

Rem dodijeljivanje rednog broja kloniranoj tablici i
Rem zapisivanje u postojeæu iz me u tb3
br = 0
Do While Not tb1.EOF
br = br + 1
Rem MsgBox "ovo je broj u tb1 " & tb1!ID
Do While Not tb3.EOF
Rem MsgBox "ovo je broj u tb3 " & tb3!ID
If tb1!ID = tb3!ID Then
With tb3
tb3.Edit
tb3!broj = br
tb3.Update
End With
End If
tb3.MoveNext
Loop
tb3.MoveFirst
tb1.MoveNext
Loop
tb3.Close
Rem postavka brojaèa na najveæi trenutni broj
tb.Edit
tb!redbr = br
tb.Update
tb.Close
db3.Close
tb1.Close
Forms![GMASKA].Requery
End Function