Voorkomen ongewilde input in update-form

Status
Niet open voor verdere reacties.

SA3

Gebruiker
Lid geworden
3 jan 2016
Berichten
127
Ik heb een tabel met adresgegevens en een update formulier. Op dit formulier heb ik een zoekveld waarmee ik op achternaam in de tabel het record kan opzoeken.
Om onbedoelde wijzigingen van het geselecteerde record te voorkomen wil ik het read-only maken en met een Wijzig-knop vrijgeven voor updates.
Ook wil ik een Cancel-knop toevoegen.
Hoe kan ik dit doen in VBA?
 
Net wat je zegt, met knoppen. Aangezien je al een formulier hebt gemaakt, weet je hoe je in het Ontwerpscherm moet komen. Dan kun je denk ik ook wel een knop toevoegen. Die knop moet geen macro hebben, maar een Gebeurtenis. Liefst bij de <Bij klikken> gebeurtenis.
Die geef je dan de juiste actie. Bijvoorbeeld:
Code:
Private Sub cmdBewerken_Click()
    If Me.cmdBewerken.Caption = "Bewerken" Then
        Me.cmdBewerken.Caption = "Beveiligd"
        Me.AllowEdits = False
    Else
        Me.cmdBewerken.Caption = "Bewerken"
        Me.AllowEdits = True
    End If
    MsgBox Me.AllowEdits
End Sub
 
Dank voor zover. Het is echter nog niet helemaal zoals bedoeld.
Als ik de Form-property "Bijwerken toegestaan" op No zet, komt het record als ReadOnly op. Dat is ook de bedoeling. En de knop staat dan op Bewerken. IK moet wel een paar keer klikken op de nieuwe knop voordat de blokkering opgeheven is.

Het zoekveld in het formulier wordt echter gelijktijdig ook geblokkeerd en dat is niet de bedoeling.
Vraag is nu hoe het zoekveld altijd vrij te houden.

Dit is de code van het zoekveld.
Code:
Private Sub Zoekveld_AfterUpdate()
    If Len(Me.Zoekveld.Text) > 0 Then
        Me.Filter = "[Achternaam] Like ""*" & Me.Zoekveld.Text & "*"""
        Me.FilterOn = True
        Me.Zoekveld.SelStart = Me.Zoekveld.SelLength
    Else
        Me.Filter = ""
        Me.FilterOn = False
    End If
End Sub
 
Het is echter nog niet helemaal zoals bedoeld. Als ik de Form-property "Bijwerken toegestaan" op No zet, komt het record als ReadOnly op. Dat is ook de bedoeling.
Ook na een paar borrels snap ik niet wat hier staat :).

IK moet wel een paar keer klikken op de nieuwe knop voordat de blokkering opgeheven is.
En hier heb ik dus zelf helemaal geen last van. Blijft wonderlijk, hoe de ene functie verschillend werkt bij verschillende gebruikers :).

Bij een beveiligd formulier moet je de beveiliging soms uitzetten op gecontroleerde manieren. Bij een zoekveld bijvoorbeeld kun je die prima uitzetten bij de gebeurtenis <On Focus>, en weer aanzetten bij <Lost Focus>. De gebruiker kan in de tussentijds niks verkeerds doen, want alleen de werking van het zoekveld is beschikbaar. En dat wil je dan ook op dat moment.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan