Citat:
Na pr. korisnici su KV,MBL i sl. a pri odaberu korisnika KV broj usluge treba da bude KV 001 ili pri odabiru korisnika MBL broj usluge treba da bude MBL 001 i tako redom .
Nije dobra ideja da se ovakao izracunati broj pakuje u tabelu. ako bas mora na izvestajima da stoji KV 027 i KV 032, onda je mnogo bolje da KV i 27 stoje u zasebnim poljima. KV je ionako neka vrsta identifikacionog 'broja' za korisnika. Pretpostavljam da imas tebele
tblUsluga - lista svih raspolozivih usluga, PK=UslugaID
tblKorisnik - lista svih korisnika, PK=KorisnikID - ono KV, MBL itd.
tblKorisnikUsluga - PK po tri polja (UslugaId, KorisnikID, RedniBrojUsluge as long)
Ocekujem da ti je tabela tblKorisnikUsluga u relaciji sa tabelama tblUsluga i tblKorisnik, gde su ove dve polsednje 'parent' tabele. Ono sto tebi treba jeste da izracunas RedniBrojUsluge, kad god dodajses rekord u tabelu tblKorisnikUsluga. UslugaId, KorisnikID su ti poznati.
Napravis funkciju kao na primer (pseudo kod):
Code:
function funNextredniBroj (pKorisnikID as String) as Long
dim varMaxBroj as variant
varMaxBroj = dmax("RedniBrojUsluge ","tblKorisnikUsluga ","KorisnikID=" & Quoted(pKorisnikID )
varMaxBroj =nz(varMaxBroj ,0)
funNextredniBroj =1+varMaxBroj
end function
Funkciju funNextredniBroj pozivas kad kreiras novi rekord u tblKorisnikUsluga.
Funkciju Quoted mozes naci na forumu u top temi Baza Znanja i treba da stoji u nekom nezavisnom modulu da bi bila vidljiva iz celog MDB fajla.
Onda u kverijima i reportima spajas KorisnikID i RedniBrojUsluge po zelji.
Ako upotrebis funkciju funNextredniBroj da izracunas vrednost koju ces da cuvas u tabeli, ne valja ti posao.
:-)