Ja sam to rešio na ovaj način:
-Korisnik na glavnoj login formi ukuca user/pass kombinaciju
-kada pritisne na "login" dugme, proverava se user i pass, i ako je OK onda se zapisuje novi record u login tabelu sa datumom, vremenom i ID-om korisnika (ovo je potrebno radi informacije o loginu, koju koristim za analize)
-u GLOBALNU promenljivu se stavlja ID trenutno logovanog korisnika
-u GLOBALNI modul (modul kome mogu svi da pristupaju) stavlja se funkcija
GetCurrentUserID koja glasi ovako:
Code:
Public Function GetCurrentUserID ()
GetCurrentUserID = plngCurrentUserID
end Function
Kao što vidite, vrlo je trivijalna, samo vraća vrednost promenljive CurrentUserID, koja je
public long (otuda ono "plng"

). Trik je u sledećem: kad god vam treba CurrentUserID (odnosno, ime ili neki drugi podaci o logovanom korisniku) u nekom upitu otkucate sledeće:
Code:
... WHERE UserID=GetCurrentUserID()
Ovo je po meni univerzalno rešenje, jer koliko sam shvatio Access-ov Query Designer ne može da prihvate varijable iz VBA, ali ovako radi perfektno. Ako grešim, neka me neko ispravi.
Inače, koliko sam primetio, public varijable se uredno pamte u Access-ovim projektima, osim ako nastane critical error (dakle, padne baza). Čak i ako nastane običan "Debug" error, i program se posle debug-ovanja pokrene dalje, public promenljive ostaju. Dakle, public promenljive se UREDNO pamte, makar po mom iskustvu. Sve ostalo (korišćenje hidden polja, i druge budževine) po meni nisu dobro rešenje, u programerskom smislu. E sad, to što je M$ radio Access, pa moramo da se snalazimo na razne načine, nismo mi krivi...
Pozdrav!

Bolje 100 godina biti milioner nego nedelju dana siromašak
(c) Alan ford