Invullen van veld in een formulier beveiligen met een wachtwoord

Status
Niet open voor verdere reacties.

tonp60

Gebruiker
Lid geworden
29 jul 2009
Berichten
136
Kun je een control in een formulier beveiligen met een wachtwoord, zodat je deze control pas kunt bewerken nadat je het wachtwoord hebt ingevuld?
Het formulier zelf dient niet beveiligd te zijn alleen bepaalde velden (controls).Voorbeeld.jpg
Als iemand bijvoorbeeld het veld datum wilt invullen of wijzigen moet er eerst een wachtwoord ingevuld worden.
 
Laatst bewerkt:
Geen idee wat je bedoelt; ik vermoed dat je een tekstvak hebt o.i.d.? Doe er een voorbeeldje bij :).
 
Ik vind het een beetje een vreemde werkwijze; een gebruiker moet je niet elke keer als er in een veld wordt geklikt om een wachtwoord vragen. Goede kans dat je na twee weken ineens ondersteboven uit een raam hangt aan de hand van een gebruiker die nét jeuk heeft.... Ik zou dat risico niet nemen :). Veel beter is het om de rechten van een gebruiker via een rechtenstructuur te regelen. Daarmee geef je een gebruiker rechten om bepaalde zaken wél of niet te mogen doen in een formulier. Die rechten dwing je dan af bij het openen van het formulier. Dus als iemand volledige Bewerkingsrechten heeft, dan staan alle objecten open, en als iemand bepaalde velden níet mag bewerken, dan staan bij het openen van het formulier de eigenschappen Enabled = False en Locked = True voor die objecten. Dat blijft dan zo gedurende de tijd dat het formulier open staat.
Bij jouw werkwijze zou je elke keer als je in dat veld terecht komt, weer een wachtwoord moeten intypen. Moet je niet willen.
 
Ik vind het altijd veel gemakkelijker om de rechten per gebruiker op de tabellen zelf te zetten. In dit geval zou ik de gebruiker select rechten geven op heel de tabel, en alleen update rechten op die kolommen die de gebruiker mag aanpassen. Dat werkt dan in alle gevallen, in alle formulieren van alle verschillende applicaties die naar de database geconnecteerd worden.

Ik weet dat je in de laatste versies van access in de design view data macro's kunt maken op de tabel. Misschien kan je daar iets dergelijks mee bereiken. Anders: back-end upgraden naar SQL server (express = gratis) en dan kan je daar heel eenvoudig de beveiliging die je wenst op de tabellen zelf zetten.
 
Als het goed is zal het betreffende veld in het formulier maar 1x gewijzigd worden. Als het klaar is dan is het klaar en hoeft er verder niets meer te gebeuren met dat veld. Vandaar dat ik wilde kiezen voor een minder uitgebreide weg.
Waar kan ik dan toch informatie vinden waarover jullie spreken in jullie aanbevelingen?
 
Als het goed is zal het betreffende veld in het formulier maar 1x gewijzigd worden. Als het klaar is dan is het klaar en hoeft er verder niets meer te gebeuren met dat veld. Vandaar dat ik wilde kiezen voor een minder uitgebreide weg.
Als je je vraag gelijk goed stelt, krijg je een beter antwoord :). Dit is simpel op te lossen, daar heb je verder geen wachtwoord voor nodig. Probeer deze code eens op je formulier.
Code:
Private Sub Form_Current()
    
    With Me
        If .NewRecord Then
            With .Ingangsdatum
                .Locked = False
                .Enabled = True
                .BackColor = RGB(100, 100, 255)
            End With
        Else
            If IsNull(Me.Ingangsdatum.Value) Then
                With .Ingangsdatum
                    .Locked = False
                    .Enabled = True
                    .BackColor = RGB(200, 200, 255)
                End With
            Else
                With .Ingangsdatum
                    .Locked = True
                    .Enabled = False
                    .BackColor = RGB(255, 255, 255)
                End With
            End If
        End If
    End With
       
End Sub
Wel even uiteraard de naam van je veld aanpassen.
 
Octafish

Wat je aangegeven hebt dat werkt. Als er nu een foute keuze is gemaakt, er zit onder een veld een keuzelijst met invoervak, hoe kan ik dit dan alsnog herstellen/ongedaan maken?
 
Het veld wordt na het invullen vergrendeld. Als iemand iets verkeerd heeft ingevuld, hoe kan ik dat dan herstellen?
 
Tja, je wilt zélf dat het veld vergrendeld wordt :). Da's een beetje in de eigen voet schieten dus :d. Dan moet je dus een extra knop maken op dat formulier waarin je de beveiliging weer uit zet. Of, en dat lijkt mij een stuk makkelijker, laat het aan de gebruiker over. Ik word zelf stapelgek van programmeurs die alles maar dichtspijkeren om 'fouten van gebruikers' te voorkomen. Laat mensen fouten maken, en ze ook verbeteren. Ik zou hooguit bij het sluiten van het formulier checken of alles correct is ingevuld, maar zolang ze bezig zijn: "live and let live".
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan