[ Okram_marko @ 12.04.2010. 12:22 ] @
Pozdravljam,

Imam odrađenu bazu sa jednom tabelom i formom putem koje se ta tabela popunjava. Mene zanima na koji način mogu napraviti da kada se jednom unese jedna vrijednost jednog polja u tu tabelu putem forme, da se više ne može mjenjati. ??

Želim zabraniti izmjene putem samo te forme. Imam admin formu i user formu tako da user ne može mjenjati ništa, a admin može sve.
Znaći, samo da na tu user formu negdje u cod-u dodam da se vrijednost jednog input box-a nakon unosa i spremanja više ne može mjenjati.

Nadam se da ima riješenje.

[ zliki @ 12.04.2010. 13:13 ] @
Otvori prozor "Properties" te zeljene forme, idi na tab "Data" pa setuj:

Allow Edits............No
Allow Deletions......No
Allow Additions......Yes


Pri ovakvom setovanju ne mozes da editujes niti da brises unete recorde, samo mozes da dodajes novi rekord preko te forme.

Ovo sve vazi za USER formu.

Za ADMIN formu postavi gornje osobine na YES.

Pozdrav

[ Okram_marko @ 12.04.2010. 14:45 ] @
Pozdrav!

Gledao sam ranije tamo te postavke ali nemam toga sto si ti naveo. Hmh... cudno. Aplikaciju sam radio sa access 2007, a sad ga otvaram sa 2010.
Sumnjam da je to problem.

Sta bi jos mogao pokusati?
[ Zoran.Eremija @ 12.04.2010. 14:51 ] @
Pogledajte da li ovo radi?
[ Okram_marko @ 12.04.2010. 15:07 ] @
Ispravka: Vidim te opcije kada kliknem van forme :). Hajde dobro to, ali meni treba samo za jedno input polje. Ostalo moram imati otkljucano.
Kako bi to mogao rijesiti?

Evo mozes staviti primjer na ovaj file koji si prikacio na predhodni post.

Zahvaljujem unaprijed! Ovo ce mi mnogo znaciti jer trenutno imam problem. Korisnici mjenjaju stvari a nebi smjeli :).

[ Zoran.Eremija @ 12.04.2010. 15:10 ] @
Kod mene radi, ali nazalost nisam jos presao na novu verziju 2007...
[ Trtko @ 12.04.2010. 15:40 ] @
E sad ovisi kako upisujes polja u tablicu

ali mozes na after update onog polja na formi ispitati da li postoji nešto upisano u tablici,
recimo s DLOOKUP funkcijom , pa ako postojis ne dozvoliš mijenjanje itd ...

[ Okram_marko @ 12.04.2010. 15:55 ] @
Pa radim upis direktnom vezom na tablicu (kao primjer koji je gore priložen). Princip je potpuno isti.
Nisam neki expert pa bih te molio da mi malo detaljnije objasnis sta bi i gdje trebao dodati.
Ako mozes, napravi mi primjer na gore prilozenom fajlu pa ga prikaci ovdje.

Ja cu dalje gledati sta da uradim sa svojom bazom.
[ Zidar @ 12.04.2010. 20:18 ] @
Marko, moras da okacis tvoju bazu. Pomoc treba tebi a ne Zoranu i nije fer da radimo na njegovoj bazi. Sacuvaj svoju bazu kao MDB, to se moze iz Accesa 2007, i vec ce se neko naci da ti pomogne. Nje bas jasno sta hoces da uradis, nisam te shvatio na isti nacin kao Zoran, pa bi bilo zgodno da vidimo konkretnu bazu i konkretnu formu itd. Svedi sev na 2003 ili 2007 format, 2010 se jos nigde ne koristi.

Ona verzija 2010 mi je sumnjiva rabota, 2010 je jos uvek beta verzija i stim se ne radi ozbiljan posao. Sto nas dovodi do pitanja - sta u stvari pokusavas da uradis?
[ galac1968 @ 12.04.2010. 22:54 ] @
Mozda ti ovo pomogne. Zakljucas odredjeno polje ili kao uranijem postu na formi odredis,sta ona radi a sta ne.

[Ovu poruku je menjao galac1968 dana 13.04.2010. u 00:10 GMT+1]
[ Catch 22 @ 13.04.2010. 00:46 ] @
Ovo bi trebalo da reši problem na najjednostavniji način


Code:
Private Sub NekoPolje_Enter()
Me.NekoPolje.Locked = Not IsNull(Me.NekoPolje)
End Sub


[Ovu poruku je menjao Catch 22 dana 13.04.2010. u 01:59 GMT+1]
[ Okram_marko @ 13.04.2010. 08:55 ] @
@ Catch

Bravo legendo! Upravo mi je ovo trebalo. To je to! Supericka!
E sad idem da nabacim na svoju bazu. Ako sta zapne, javim se.

HVALA!
[ srdrazic @ 13.04.2010. 09:49 ] @
Šta ćeš legendo ako "user" pogriješi u unosu podataka, može samo plakati?!
[ Okram_marko @ 13.04.2010. 10:46 ] @
Pa ne baš.
Svaki korisnik se može logirati i zatim dobija formu sa ili bez privilegije.
Imam 3 grupe korisnika. Admin, manager i operator.

Operator nema privilegije nista mjenjati, samo unositi. Manager ima privilegije unosa i izmjene. Admin ima sve privilegije (dodavanje korisnika i sl).

E sada, samo imam jedan problemcic koji moram rijesiti.
Koristim ovaj code na mojoj formi da bi provjerio koja grupa je u pitanju:

Code:

If Grupa = "Operater" Then
Me.Serial_Number.Locked = Not IsNull(Me.Serial_Number)
End If
End Sub



Ako se logiram kao Manager, mogu da mjenjam vrijednost polja ili da upisujem novi unos u bazu.
Ako se logiram kao Operater, ne mogu da mjenjam vrijednost polja ALI ne mogu ni da upisem novi unos.
Znaci, ovo djelomicno radi kako treba :).

Kako bi mogao ovo rijesiti i sto bi mogao biti problem?

[ Catch 22 @ 13.04.2010. 16:06 ] @
@srdrazic: Sve je stvar dalje razrade, npr. doda se kontrola za otključavanje zaključanih polja u svrhu ISPRAVKE podataka (button / dedicated F Key), već po ličnoj zamisli autora...


@Okram_marko: Možeš da ubaciš taj kod u javnu proceduru (funkciju), koju ćeš da pozivaš iz druge (sub)procedure, po potrebi i prema zadatim uslovima...
Razmisli malo...


PS
Za gore napisani uslov nije bilo neophodno da se koristi sintaksa iz više redova.
Tek ako koristiš sintaksu If.. Then.. Else... onda to ide u više redova.
[ Okram_marko @ 13.04.2010. 16:35 ] @
Poz!

Hvala na odgovoru. Svasta sam nesto pokusao ali nikako da proradi. Obicni korisnik ne moze da mjenja, ali ne moze ni da unosi nove podatke.
Neznam kako da ovo rijesim. Ne poznajem vba, a tako mi je potreban :(.

Mozes li mi staviti primjer sa tom funkcijom pa da tako pokusam rijesiti, ili ako ima neko else if else rijesenje koje bi mi pomoglo.

Ovo me sada pravo koci u svemu jer su korisnici vec nesto zeznuli.
[ golic @ 13.04.2010. 16:59 ] @
Mozes npr. da user formu uvijek otvaras u add new record
[ Okram_marko @ 13.04.2010. 18:34 ] @
I na to sam racunao ali mi ne odgovara jer je forma dosta kompleksna i ima dosta parametara.
Pokusat cu nesto izvesti. Imam par ideja pa cu vidjeti.

Jedna od njih je mali "popup" za unos vrijednosti koji bi zaobisao lock nad poljem u glavnoj formi.
Pokusat cu pa cu javiti. Ali mi rijesenje za ovakvu stvar treba i za druga polje i sl.

Tako da ovo pitanje jos uvjek ostaje otvoreno.

btw: moze li mi samo netko reci kako da na neki button stavim da mi formu otvara u malom popup prozorcicu (ostale forme idu u tabove, po default).
Ovo bi mi isto pomoglo.

Hvala!
[ Catch 22 @ 13.04.2010. 19:34 ] @
Npr. ovako (korisiš: acDialog za definisanje svojstva forme koju otvaraš)

Code:

...
    Dim stDocName As String
    Dim stLinkCriteria As String

    stDocName = "frmTEST"
    DoCmd.OpenForm stDocName, , , , , acDialog, stLinkCriteria
...
[ Catch 22 @ 13.04.2010. 20:59 ] @
Evo ti ponovo jedan primer, pa malo pogledaj kako to funkcioniše (dugme ISPRAVKA radi samo za jedno polje na formi).
Dalje bi trebao da se snađeš i sam.
Ako zapne pitaj...


PS
Običnom korisniku ("Operater" ?) sakriješ dugme ISPRAVKA (... .Visible = False)


[Ovu poruku je menjao Catch 22 dana 13.04.2010. u 22:14 GMT+1]
[ Okram_marko @ 13.04.2010. 21:44 ] @
Eeejjjjj ma legenda si!

Svaka ti dala! :P hehehehe Svaka cast, ovo ce da mi ulijepsa zivot. To je upravo ono sto mi treba. EEEEEEExxxtraaa! Fantasticno!
E sad cu da procackam i da iskoristim na svojoj bazi. Nadam se da ce sve lijepo raditi. Vidjet cemo.

Thanks man!
[ Miki2013 @ 06.05.2013. 22:44 ] @
Citat:
 Evo ti ponovo jedan primer, pa malo pogledaj kako to funkcioniše (dugme ISPRAVKA radi samo za jedno polje na formi).
Dalje bi trebao da se snađeš i sam.
Ako zapne pitaj...


Svaka cast!
Obzirom da i moja baza treba da radi u visekorisnickom okruzenju, ova mjera zastite od "slucajne" greske je potpuno rijesena.

Citat:
Običnom korisniku ("Operater" ?) sakriješ dugme ISPRAVKA (... .Visible = False)


Ovaj PS sam odlucio da ne koristim, vec sam to rijesio eventom On_change da mi zabiljezi ko je "krivac" u posebnoj tabeli i to se smatra "namjernom" greskom zahvaljujuci ovom tvom primjeru.

P.S. Imam nacina da ispravim "gresku" jer se ovi isti podaci vode na drugom mjestu u pisanoj formi, dovoljan je samo jedan telefonski poziv

Hvala mnogo!