Citat:
izonic: Evo primjer
Mislim da bi bilo efikasnije kada bi se uradilo sledece (za dati primer):
- izbaciti GetCurrentLine()
- prepraviti Form_Current() da izgleda ovako
Code:
Private Sub Form_Current()
Me!ctlCurrentRecord = Me![ProductID]
End Sub
- prepraviti TextBox ctlBack Control Source na sledece:
Code:
ctlBack.ControlSource =IIf([ctlCurrentRecord]=[ProductID];"ŰŰ....ŰŰ";Null)
- posto vise nema funkcije GetCurrentLine() prepraviti TextBox ctlCurrentLine Countrol Source
Code:
ctlCurrentLine.CountrolSource =[ProductID]
Zasto mislim da je efikasnije, pa kada pogledam onu funkciju GetCurrentLine mogu da vidim prvo da je velika, da pravi recordset clone, da poziva metodu Find, sadrzi petlju koja se krece po rezultatima. Sve ovo se izvrsava kada vi kliknete na jedan red. Gore navedena izmena nema nikakav proracun pa je brze.
Za oba navedena slucaja sve je OK dogod postoji jedan jedinstven kljuc. U slucaju da vasa tabela ima kljuc na vise polja postoji jedno resenje.
Recimo da gornja tabela ima kljuc na poljima ProductGroup i ProductID, onda malo modifikujemo RecordSource za formu na sledece:
Code:
Me.RecordSource = "SELECT Products.ProductGroup & '-' & Products.ProductID AS ID, Products.ProductID, ...ostalo je isto..."
Znaci dodali smo ovo polje ID koje se sastoji iz broja grupe i identifikatora proizvoda plus '-' izmedju jer na primer da nema '-' mozemo da dobijemo 111, da li je to grupa 1 i proizvod 11 ili grupa 11 ili proizvod 1, znaci da ne bi smo dobili jedinstven identifikator. Posle ove prepravke gde god ste koristili ProductID za ovo sa bojama sada koristite ID:
Code:
Private Sub Form_Current()
Me!ctlCurrentRecord = Me![ID]
End Sub
ctlBack.ControlSource=IIf([ctlCurrentRecord]=[ID];"ŰŰ....ŰŰ";Null)
ctlCurrentLine.CountrolSource=[ID]
U primeru koji sam ja okacio prosle godine nisam koristio ovaj nacin, ovo sam pronasao nesto kasnije tako da ga nema u mom primeru (mada vidim da kada se pitanje ponovi niko ne uspeva da nadje to sto mu treba pa pnovo pita).
Pozdrav.
[Ovu poruku je menjao DarkMan dana 18.10.2005. u 12:33 GMT+1]