Avatar billede mikkelk Nybegynder
02. maj 2005 - 16:04 Der er 11 kommentarer og
1 løsning

Problem med rettigheder

Jeg har en database, hvor brugeren undervejs skal have mulighed for at slå redigering til og fra, uden at skulle logge ind og ud osv.
Jeg har lavet det med en global variabel, der sættes til false eller true afhængigt af om brugeren har slået redigering til eller fra.
Ved load af de forskellige formularer laver jeg så følgende tjek:
    If bDataRedigering Then
        Me.AllowAdditions = True
        Me.AllowDeletions = True
        Me.AllowEdits = True
    Else
        Me.AllowAdditions = False
        Me.AllowDeletions = False
        Me.AllowEdits = False
    End If

Nogle steder fungerer det også fint, men andre steder bruger jeg f.eks. en listboks til at give brugeren mulighed for at manøvrere rundt imellem data og denne bliver jo så også låst...
Hvordan sætter jeg lås på redigering - med undtagelse af enkelte elementer?
Avatar billede terry Ekspert
02. maj 2005 - 16:13 #1
You open the form and then disable the field
Avatar billede terry Ekspert
02. maj 2005 - 16:13 #2
.
Avatar billede mikkelk Nybegynder
02. maj 2005 - 16:16 #3
Ja, men der er tale om ret mange felter, på ret mange formularer - er det ikke muligt at gøre det enklere end at skulle disable hvert eneste felt?
Avatar billede terry Ekspert
02. maj 2005 - 16:18 #4
You could have information in a table which is used to keep track of which fields you want to open. Then make a function which loops through the fields.
Ther than thant I dont think there is any easy method
Avatar billede terry Ekspert
02. maj 2005 - 16:30 #5
another method was to set the fields TAG property to some value, 0 or 1 maybe,. Then loop through all cotrols on the form and set them to enabaled/disabled dpending on the value of the TAG
Avatar billede terry Ekspert
02. maj 2005 - 16:30 #6
either way there will be a need for code
Avatar billede mikkelk Nybegynder
02. maj 2005 - 18:59 #7
Hvordan looper man så igennem alle felter?
Avatar billede terry Ekspert
02. maj 2005 - 19:57 #8
You can use something like this


Set the tag to 0 if you want to disable it.

Then in the forms On Open Event call thefunction like this
SetPermissions Me


'Put this in a module
Public Function SetPermissions(frm As Form)
Dim Ctrl As Control

    On Error Resume Next
   
    For Each Ctrl In frm.Controls
        Select Case Ctrl.Tag
            Case 0
                Ctrl.Enabled = False
                Ctrl.Locked = True
           
           
        End Select
    Next Ctrl

End Function
Avatar billede mikkelk Nybegynder
02. maj 2005 - 20:00 #9
Jeg takker mange gange for svaret Terry - jeg arbejder lidt videre med det, men er ret sikker på at det her kan bruges.
Avatar billede terry Ekspert
02. maj 2005 - 20:03 #10
I hope you can use it, and thanks
Avatar billede mikkelk Nybegynder
03. maj 2005 - 09:07 #11
Det virker jo perfekt! Endnu engang mange tak!

Jeg endte med følgende funktion:

Public Function SetPermissions(frm As Form)
Dim Ctrl As Control

    On Error Resume Next
     
    For Each Ctrl In frm.Controls
        If Not bDataRedigering Then
            Select Case Ctrl.Tag
                Case 1
                    Ctrl.Enabled = True
                    Ctrl.Locked = False
                Case Else
                    Ctrl.Enabled = False
                    Ctrl.Locked = True
            End Select
        Else
            Ctrl.Enabled = True
            Ctrl.Locked = False
        End If
    Next Ctrl

End Function
Avatar billede terry Ekspert
03. maj 2005 - 11:54 #12
tak
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester