drepturi diferite pentru utilizatori diferiti

Informatii despre cum se utilizeaza Microsoft Access 2007. Baze de date, Interogari, Formulare, Rapoarte, etc
Închis
Daniela
Mesaje: 7
Membru din: Lun Aug 31, 2009 3:12 pm

drepturi diferite pentru utilizatori diferiti

Mesaj de Daniela » Lun Sep 07, 2009 10:22 am

Am o baza de date Access 2007 pentru care trebuie sa dau drepturi depline (inclusiv editare) pentru 2 utilizatori si drept de utilizare (numai interogari si rapoarte fara a face modificari in date, dar sa poata modifica parametrii interogarilor) altor utilizatori, mai multi la numar. Spuneti-mi va rog daca se poate face si cum. Multumesc.

valy

Re: drepturi diferite pentru utilizatori diferiti

Mesaj de valy » Lun Sep 07, 2009 8:14 pm

Din cate inteleg eu aplicatia ta este o aplicatie multiuser. Asa cum spuneam si cu alte ocazii, firma Microsoft a lasat posibilitatea ca la acelasi rezultat sa se ajunga prin mai multe cai. Ce iti recomand eu, este sa faci formulare de introducere, de vizualizare si de modificare a informatiilor. In pagina de proprietati a fiecarui formular, in tabul ''Date'', Access-ul permite proiectantului, ma rog, programatorului sa seteze ca formularul, spre exemplu sa fie doar de introducere date (''Intrare date'', se seteaza pe ''Da''), de vizualizare, din acelasi tab, adica ''Date'', se alege optiunea "Se permit stergeri'' si se seteaza pe ''Nu'', ''Se permit adaugari'' si se seteaza pe ''Nu'',''Se permit editari'' si se seteaza pe ''Nu'', iar la cel de modificare se seteaza optiunile amintite mai sus, exact invers. Acum, pentru a da drepturi de editare unui utilizator, spre exemplu, cand apasa, eu stiu, butonul de deschidere al unui formular de introducere date, se poate prin functia ''InputBox'' sa-i solicite utilizatorului introducerea unei parole, presetate de proiectantul aplicatiei. Pentru utilizatorul care are dreptul doar de a le vizualiza, i se va permite prin apasarea unui buton, sa zicem dupa un ''Switchboard - tablou principal'' sa deschida un formular de vizualizare, care sa nu permita conform setarilor aratate mai sus sa stearga, sa introduca date sau sa le modifice (evident lucrul acesta se poate face si prin cod VBA, dar inteleg ca iti e mai greu asa), si ce este acum extrem de important, din formularul de vizualizare, proiectantul, obligatoriu, trebuie sa permita utilizatorului cu drepturi desemnate pt modificare, prin intermediul unui buton sa faca legatura cu un fomular de modificare a datelor. Bineanteles ca si aici va trebui sa fie introdusa o parola, dar atentie, formularul de modificare trebuie sa permita intotdeauna modificarea acelei inregistrari care initial era doar vizualizata.

Nu stiu cat vei intelege din toate astea, dar mai jos iti voi da si niste proceduri care sa te ajute, daca nu intelegi, o sa fac o baza de date model, dar nu acum ca sunt extrem de obosita.

Cod: Selectaţi tot

Private Sub cmdModificare_Click
On Error Resume Next

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = "frmFormularModificare''       ' variabila de tip sir de caractere stDocName va fi de fapt numele formularului de modificare
stlinkCriteria = '' [NumeCehiePrimara] = '' & Me![NumeCheiePrimara]
' legatura dintre formularul de vizualizare si cel de modificare se face prin intermediul cheii primare a sursei, care pt ambele
' formulare trebuie sa fie, cum e si firesc, aceeasi

DoCmd.OpenForm stDocName, , , stLinkCriteria
DoCmd.Close acForm, Me.Name     ' pentru a inchide formularul de vizualizare (reamprospatarea datelor dupa redeschidere)
End Sub
Aceasta procedura va fi utilizata pentru accesarea formularului de modificare.

Acum procedura (un model) pt introducerea de parola

Cod: Selectaţi tot

Private Sub Form_Open(Cancel As Integer)
Dim strPwd As String
strPwd = InputBox("Va rugam sa introduceti parola pt a avea access la modificarea datelor", "Parola")
If strPwd <> "modificare" Then
MsgBox "Regret, dar nu aveti acces la modificarea datelor!", vbCritical, "Actiune respinsa!"
Cancel = True
End If

End Sub
Aceeasi procedura poate fi utilizata si pentru deschiderea unui formular de introducere date, cu singurul amendament ca in loc de ''....modificarea datelor'', se va scrie ''introducerea datelor''.

Cat priveste chestiunea cu modificarea parametrilor la interogari, ei bine, in primul rand trebuie sa stiu ce fel de aplicatie este, adica este *.accdb, *.accde sau de tip runtime. in orice caz, in general, lucrul acesta presupune niste formulare care nu se deschid decat prin intermediul unor butoane, iar interogariile cu pricina sunt de regula sursa de inregistrari a unor rapoarte.

Marin Zanfir
Mesaje: 88
Membru din: Vin Sep 04, 2009 7:45 am
Localitate: Slatina

Re: drepturi diferite pentru utilizatori diferiti

Mesaj de Marin Zanfir » Mar Sep 08, 2009 8:04 am

In mod normal intr-o aplicatie multiuser este bine de stiut, cel putin, ce utilizator a adaugat/modificat ultima data o inregistrare dintr-o tabela.
In caz contrar daca anumite informatii din tabele nu sunt corecte nu stii pe cine sa tragi la raspundere.
Din aceasta cauza eu am in fiecare tabela un camp Operator text 30.

Am o tabela tblPersonal cu urmatoarea structura:
- OperatorID autonumber, cheie primara;
- Operator text 30 Indexed No Duplicates;
- Parola text 15.
Aplicatia dispune de o interfata astfel incat fiecare utilizator sa aiba intr-un meniu (Switchboard) toate formularele si rapoartele de care are nevoie.
La startare am un formular LogIn prin care preiau utilizatorul si-i validez parola. Daca sunt corecte merge mai departe daca nu Quit.

Am o tabela tblFormulare cu numele formularelor si rapoartelor aplicatiei.
- FazaID autonumber, cheie primara;
- NumeFaza text 50 Indexed No Duplicates;
- NumeFORM text 50.
De obicei rapoartele le apelez tot prin intermediul unor formulare intrucat interogarile aferente rapoartelor au nevoie de niste parametrii.
Am o tabela tblFazeOperator cu ce poate face un utilizator.
- OperatorID;
- FazaID;
- TipAccess text 2 (RW sa RO)
RW - utilizatorul cu aceasta faza poate aduga/edita/sterge inregistrari.
RO - utilizatorul cu aceasta faza poate decat vizualiza datele.
Daca o anumita inregistrare din tblFormulare nu apare in aceasta tabela inseamna ca utilizatorul nu are dreptul la ea.

Formularul LogIn (daca validarile sunt Ok) imi starteaza un formular de tip Switchboard cu fazele aferente utilizatorului specificat.
Aceste faze pot fi puse, de exemplu intr-un ListBox, sau mai elegant intr-un treeview.
OperatorID si Operator sunt memorate in niste variabile publice.

Am o functie de genul:

Cod: Selectaţi tot

Public Function CePotFace(OperatorID As Long, NumeFORM As String) As String
    CePotFace = "ER"
    Dim FazaID As Long
    
    FazaID = Nz(DFirst("[FazaID]", "tblFormulare", "[NumeFORM]='" & Trim(NumeFORM) & "'"), 0)
    CePotFace = Nz(DFirst("[TipAccess]", "tblFazeOperator", "[OperatorID]=" & OperatorID & " AND [FazaID]=" & FazaID), "ER")
End Function

Cand deschid fiecare formular fac ceva de genul:

Cod: Selectaţi tot

Private Sub Form_Open(Cancel As Integer)
    Dim strACC As String
    strACC = CePotFace(pub_OperatorID, Me.Name)
    If strACC = "ER" Then
        MsgBox "Nu aveti dreptul la aceasta faza.", vbCritical, "Mesaj operator"
        Cancel = True
        Exit Sub
    End If
    If strACC = "RW" Then
        Me.AllowAdditions = True
    Else
        Me.AllowAdditions = False
    End If
    Me.AllowEdits = Me.AllowAdditions
    Me.AllowDeletions = Me.AllowAdditions
End Sub


Daniela
Mesaje: 7
Membru din: Lun Aug 31, 2009 3:12 pm

Re: drepturi diferite pentru utilizatori diferiti

Mesaj de Daniela » Mie Sep 09, 2009 2:56 pm

Multumesc Ady, multumesc Marin. Am reusit sa aranjez multe lucruri in baza mea de date inclusiv sa creez un switchboard dragut si util (zic eu). Problema accesului o las pe mai tarziu. Luni intru in concediu si am o multime de alte treburi. Pastram legatura.

Daniela
Mesaje: 7
Membru din: Lun Aug 31, 2009 3:12 pm

Re: drepturi diferite pentru utilizatori diferiti

Mesaj de Daniela » Joi Sep 10, 2009 10:19 am

Valy iti datorez un miel de Paste. Scuze si inca o data multumesc. Am reusit sa parolez editarea si chiar functioneaza baza de date multuiser asa cum mi-am dorit. Ar mai fi un mic amanunt de rezolvat si nu stiu cum: la tastarea parolei sa se afiseze * nu caracterele respective. Poate cineva sa-mi spuna cum fac asta?

Marin Zanfir
Mesaje: 88
Membru din: Vin Sep 04, 2009 7:45 am
Localitate: Slatina

Re: drepturi diferite pentru utilizatori diferiti

Mesaj de Marin Zanfir » Joi Sep 10, 2009 11:25 am

Cu InputBox nu se poate face asa ceva.
Trebuie sa-ti construiesti un formular propriu care sa faca ceva de genul InputBox.
Pentru a afisa * in loc de caraterul tastat la Input Mask pui Password

Daca tot spui ca ai creat un switchboard (sa zicem cu numele frmMain) poti sa pui in el un Check Box (PotModifica cu valoarea implicita False),
sa mai pui un button carea sa apeleze un formular prin care sa ceri parola. Daca stie parola atunci Forms!frmMain!PotModifica=True.

In acest caz formularele care permit modificare vor avea, in loc de codul scris de valy, ceva de genul:

Cod: Selectaţi tot

Private Sub Form_Open(Cancel As Integer)
            If Forms!frmMain!PotModifica=False Then
                     MsgBox "Regret, dar nu aveti acces la modificarea datelor!", vbCritical, "Actiune respinsa!"
                     Cancel = True
             End If
End Sub

Formularul frmMain trebuie sa se inchida numai cand se inchide aplicatia.

valy

Re: drepturi diferite pentru utilizatori diferiti

Mesaj de valy » Joi Sep 10, 2009 10:54 pm

Daniela scrie:Valy iti datorez un miel de Paste. Scuze si inca o data multumesc. Am reusit sa parolez editarea si chiar functioneaza baza de date multuiser asa cum mi-am dorit. Ar mai fi un mic amanunt de rezolvat si nu stiu cum: la tastarea parolei sa se afiseze * nu caracterele respective. Poate cineva sa-mi spuna cum fac asta?
Wow, abia astept sa vina Pastele,.... :lol: Mai jos o sa gasesti "celebrul" de acum, model de baza de date, care are la formularul de vizualizare, in coltul din dreapta sus, un buton de comanda ce face legatura cu un formular de introducere/ modificare date, tocmai printr-un gen de formular amintit si de Marin Zanfir... Spor la "succesuri"!... :lol:
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

Adrian
Mesaje: 984
Membru din: Joi Sep 03, 2009 12:49 pm

Re: drepturi diferite pentru utilizatori diferiti

Mesaj de Adrian » Joi Iun 23, 2011 11:32 am

desi este un topic mai vechi este totusi de actualitate.
Sunt interesat si eu de o astfel de posibilitate de atribuire de roluri diferite pentru utilizatori diferiti (am initiat, pe forum chiar si dicutii pe aceasta tema dar nu am obtinut rezultatele scontate). Am inteles partea cu setarea formularului (atribuirea de roluri0 insa nu am reusit sa realizez partea de logare, asa ca atasez alaturat tentativa mea de LogInDB in speranta ca voi primi un raspuns care sa ma scoata din impas
Multumesc
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

Adrian
Mesaje: 984
Membru din: Joi Sep 03, 2009 12:49 pm

Re: drepturi diferite pentru utilizatori diferiti

Mesaj de Adrian » Joi Iun 30, 2011 1:24 pm

din aplicatia prezentata mai lipseste o categorie de utilizator> ADMINISTRATORUL
El se poate loga fara parola? Sau trebuie si el trecut in tabelul cu operatori si atribuita o anumita/anumite operatii?

Închis

Înapoi la “Intrebari despre Access 2007”