beveiligen wijzigen record

Status
Niet open voor verdere reacties.

arnoderuig

Gebruiker
Lid geworden
8 sep 2000
Berichten
577
In een subformulier kunnen records normaal worden toegevoegd, gewijzigd en verwijderd. Het verwijderen van records waaraan andere records zijn gekoppeld is via de normale weg beveiligd (integriteit).

Ik wil nu voorkomen dat records worden gewijzigd als in de query (waaraan het formulier is gekoppel) het veld "Gefactureerd" de waarde "true" heeft. Ik denk dat dit gaat via een gebeurtenis. Ik weet echter niet hoe ik dit nu moet aanpakken.

Wie helpt mij?

Groet,
Arno.
 
zie voorbeeld in de bijlage
 

Bijlagen

  • db1.zip
    29,9 KB · Weergaven: 37
en nu

Hooya

Bedankt voor je reactie. Het werkt perfect ... maar ... ik kan niet terugvinden hoe je het nu eigenlijk heb geregeld. Waarschijnlijk is het al wat laat geworden waardoor ik het niet meer zie. Nog een korte reactie graag.

Groet,
Arno.
 
op het hoofd formulier zit een gebeurtenis bij oncurrent, hier wordt gekeken of het vinkje wijzigen aan of uit staat en afhankelijk daar van wordt het sub formulier gelockt of vrij gegeven voor wijzigen
 
niet helemaal goed

Het blijkt toch niet helemaal goed te werken. Het gaat namelijk niet om het hoofdformulier doch om het subformulier. Als de waarde van het veld EditieGefactureerd "waar" is mag het record in dit subformulier frmPlaatsing niet worden gewijzgd. In de versie die was bijgevoegd kan geen enkel record worden gewijzigd als een veld in het hoofdformulier een bepaalde waarde heeft.

Ik heb geprobeerd in de programmacode het deel "sub1." weg te halen nadat ik ook de verwijzingen naar velden had gewijzigd maar dat werd niet geaccepteerd. Heb je de juiste code voor me.
 
Private Sub Form_Current()
If Forms!frm1!Sub1!wijzigen Then
Me.Sub1.Locked = True
Else
Me.Sub1.Locked = False
End If
End Sub
 
lastig

Hooija

Ik denk dat ik erg lastig ben als ik nu weer roep dat het me niet lukt. Mijn eerste onduidelijkheid in de code is of deze code nu in het hoofdformulier of in het subformulier moet worden geplaatst.

Ik heb beide geprobeerd, na aanpassing van de verwijzingen naar hoofdformulier, subformulier en veld. Doch het ging niet. Mogelijk heb ik wat vergeten te zeggen dat van belang kan zijn. Het formulier bevat namelijk tabbladen.

Het hoofdformulier heeft de naam frmOrders. Daarop bevinden zich 3 tabbladen waaronder het tabblad Plaatsingen. Op dit tabblad komt het subformulier frmOrdersPlaatsingenSub voor.

Zou je me nu nog 1 keer willen helpen?

Bedankt.
Arno.
 
volgens mij heten mijn formulieren nu hetzelfde

suc6
 

Bijlagen

  • db1.zip
    30 KB · Weergaven: 22
foutieve bijlage?

Hai Hooija,

Heb je wel de juiste bijlage meegestuurd. Ik zie geen gebeurtenissen in deze formulieren.

Groet,
Arno.
 
Je hebt gelijk, dit was voor een ander probleem, nu de juiste hoop ik :eek:
 

Bijlagen

  • db1.zip
    28,1 KB · Weergaven: 21
andere oplossing

Ik weet niet wat ik verkeerd doe maar ik blijf foutmeldingen krijgen. Via andere wegen kreeg ik de volgende oplossing die in het subFormulier bij Current_Form moet worden ingevuld:

If EditieGefactureerd=true then
Me.AllowEdits=false
EndIf

Dit heb ik nu werkend gekregen.

Er is echter nog 1 nadeel. In hetzelfde formulier heb ik een gebeurtenis bij dubbelklikken. In dat geval kan namelijk een nieuwe editie worden toegevoegd. De dubbelklik stuurt een macro mcoToevoegenEditie aan. De medewerker die dus toch probeert een editie te wijzigen, wat niet zal lukken door het nieuwe event, klikt al snel dubbel en komt bij toevoegen editie terecht. Dat zou ik willen voorkomen door het event bij dubbelklikken te wijzigen. De macro zou dan alleen mogen worden aangestuurd als gedubbelklikt wordt EN EditieGefactureerd=false.

Is daar nog een oplossing voor?

Groet,
Arno.
 
Je kunt in een macro een veld voorwaarde zichtbaar maken via view (beeld) als je een macro aan het maken bent, een andere optie is om in een module wat code te zetten die voor het uitvoeren controleerd of aan de gestelde voorwaarde is voldaan if ..... then .... else
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan