2 velden vullen met drukknop, en programmacode vraag.

Status
Niet open voor verdere reacties.

DigiEdje

Gebruiker
Lid geworden
10 sep 2008
Berichten
11
Hoi forumleden,

Vraag 1:
Ik heb een vraag m.b.t. het vullen van 2 velden, waarvan bij een veld de statussen in een aparte tbl staan.
In mijn formulier heb ik een knop 'aangezuiverd' staan. Als ik deze knop indruk, zullen alle velden in dit record worden geblokkeerd. (lees vergrendeld)

Voordat ik deze actie uitvoer, moet ik (nu) handmatig het veld 'status' op Closed zetten door middel van een keuzeknop. Deze optie staat in tbl_status met daarin 3 opties.
Tevens moet ik handmatig de datum invullen in het veld 'aangezuiverd.

Is er een mogelijkheid om deze 2 velden automatisch te vullen, door het drukken op de knop 'aangezuiverd'.



Afdruk database invoer.JPG

Vraag 2:
Ik heb een formule voor het vergrendelen van alle velden door middel van een drukknop gekoppeld aan een Ja/Nee veld.
Nu zijn dit wel veel regels geworden, en waarschijnlijk kan dit korter en makkelijker?


Sub vergrendelen()
If Me!Vergrendeld = True Then
Me.Opmerking.Enabled = False
Me.Status.Enabled = False
Me.Klantnaam.Enabled = False
Me.ARC_nummer.Enabled = False
Me.Product.Enabled = False
Me.SO_nummer.Enabled = False
Me.Verzend_datum.Enabled = False
Me.Vervaldatum.Enabled = False
Me.Aangezuiverd.Enabled = False
Me.Export.Enabled = False
Me.ARC.Enabled = False
Me.EX_A.Enabled = False
End If
Me.Refresh
If Me!Vergrendeld = False Then
Me.Opmerking.Enabled = True
Me.Status.Enabled = True
Me.Klantnaam.Enabled = True
Me.ARC_nummer.Enabled = True
Me.Product.Enabled = True
Me.SO_nummer.Enabled = True
Me.Verzend_datum.Enabled = True
Me.EX_A.Enabled = True
Me.ARC.Enabled = True
Me.Aangezuiverd.Enabled = True
Me.Export.Enabled = True
Me.Export.Enabled = True
End If
Me.Refresh
End Sub



Alvast super bedankt voor jullie reactie/hulp. ;-)

Edwin
 
. Waar is je voorbeeldbestand?
. Plaats je code tussen codetags. de # knop.
Als lid van 2008 zou je dat ondertussen moeten weten.
Voor je tweede vraag:
Code:
For Each Ctrl In Controls
        If TypeName(Ctrl) = "TextBox" Or TypeName(Ctrl) = "ComboBox" Then Ctrl.Enabled = False
Next Ctrl
of
Code:
For Each Ctrl In Controls
        If TypeName(Ctrl) = "TextBox" Or TypeName(Ctrl) = "ComboBox" Then Ctrl.Enabled = True
Next Ctrl
 
Dank voor je reactie Philiep. Inderdaad bij mij bekend dat de code tussen de codetags moeten. Was te snel ;-)
Dank voor vraag 2 te beantwoorden. Voorbeeldbestand zal ik plaatsen als ik thuis ben.
 
Een voorbeeldje mag best, maar er wordt soms wel erg snel om een voorbeeld gevraagd. Wat mij betreft hoeft dat alleen als de vraag zonder db niet goed te beantwoorden is. Daar is hier geen sprake van.

Om te beginnen met vraag 2: dat kan inderdaad een stuk simpeler:
Code:
Sub vergrendelen()
    Me.Status = "Closed"
    Me.Aangezuiverd = Date
    Me.Opmerking.Enabled = Not Me.Vergrendeld
    Me.Status.Enabled = Not Me.Vergrendeld
    Me.Klantnaam.Enabled = Not Me.Vergrendeld
    Me.ARC_nummer.Enabled = Not Me.Vergrendeld
    Me.Product.Enabled = Not Me.Vergrendeld
    Me.SO_nummer.Enabled = Not Me.Vergrendeld
    Me.Verzend_datum.Enabled = Not Me.Vergrendeld
    Me.Vervaldatum.Enabled = Not Me.Vergrendeld
    Me.Aangezuiverd.Enabled = Not Me.Vergrendeld
    Me.Export.Enabled = Not Me.Vergrendeld
    Me.ARC.Enabled = Not Me.Vergrendeld
    Me.EX_A.Enabled = Not Me.Vergrendeld
    Me.Refresh
End Sub

Of, als je wilt voorkomen dat het record daarna bewerkt kan worden een rigoreuze stap:
Code:
Sub vergrendelen()
    Me.Status = "Closed"
    Me.Aangezuiverd = Date
    Me.AllowEdits = Me.Vergrendeld
End Sub
 
Een voorbeeldje mag best, maar er wordt soms wel erg snel om een voorbeeld gevraagd
Is in andere secties blijkbaar anders? (alleen van vandaag):p;)
Beetje wonderlijke code inderdaad. Maar met een voorbeeldbestandje wordt het vast allemaal duidelijker :).

Met een voorbeeldbestandje gaat het allemaal wat makkelijker, en als je de code tussen de CODE tags zet ([ CODE ] ervoor en [/CODE] erachter, zonder de spaties in de haken) dan is de macro ook een stuk leesbaarder :). Want eerlijk gezegd snap ik de functie van die nummers niet.
 
Laatst bewerkt:
Zoals ik al zei vena: het hangt van de vraag af of een voorbeeldje nodig is of niet. De ene vraag is de andere niet. Philiep vraagt bij elke vraag in het access forum om een voorbeeldbestand. Moet-ie vooral doen, maar meestal is het niet nodig en kan de vraag prima beantwoord worden zonder code :).
Maar fijn dat je wat verwarring wilt zaaien in een verder kristalheldere vraag. We kunnen nog wel wat reacties gebruiken die niets aan de oplossing toevoegen :D.
 
Octafish kickt er nu eenmaalop om zoveel mogelijk commentaar te spuien over mij, het is zielig en belachelijk maar hij is niet slimmer.
 
Octafish kickt er nu eenmaalop om zoveel mogelijk commentaar te spuien over mij, het is zielig en belachelijk maar hij is niet slimmer.
Je schat jezelf veel te hoog in philiep; zo hoog sta je niet op mijn radar. Access is geen Exxcel; een dummy db maken kost heel wat meer tijd als een excel bestandje in elkaar flansen. Dus ik vraag pas om een database als dat echt nodig is. Maar goed, ik ben dan ook niet slim genoeg.
 
Hoi OctaFish,
Dank voor je uitleg.
Indien nodig, is het geen probleem om de database te plaatsen, maar ik dacht zelf ook dat mijn vraag duidelijk genoeg was om hierop een antwoord te krijgen zonder het plaatsen van de database.

Anyway, erg bedankt voor je duidelijke uitleg/oplossing.

Groetjes,
Edwin
 
Ik zie overigens in je formulier geen veld [Vergrendeld], dus je kunt ook met een knop werken die twee functies heeft, afhankelijk van de caption. Dan krijg je iets als:
Code:
Sub vergrendelen()
If me.Vergrendelen.Caption = "Vergrendelen" Then
    Me.Vergrendelen.Caption = "Vrijgeven"
    Me.Status = "Closed"
    Me.Aangezuiverd = Date
    Me.AllowEdits = False
    Me.AllowAdditions = False
ElseIf me.Vergrendelen.Caption = "Vrijgeven" Then
    Me.Vergrendelen.Caption = "Vergrendelen"
    Me.Status = "Edit"
    Me.Aangezuiverd = Null
    Me.AllowEdits = True
    Me.AllowAdditions = True
End If
End Sub
Om maar eens wat te noemen. Dan gebruik je één knop om het bewerken/locken aan of uit te zetten.
 
Hoi Octa,
In het formulier heb ik wel een veld 'vergrendeld' staan hoor. De knop 'Aangezuiverd' is gekoppeld in de tabel aan een Ja/Nee veld. ;-)
Zelf denk ik, dat de optie die je nu aandraagt, een nog makkelijkere optie is.

Ik ga er even mee aan de slag.

Dank voor je snelle reactie.

ps,
mocht het niet lukken, dan plaats ik toch even de database.

Edwin
 
Hoi Octa,
Het werkt perfect met de door u laatst genoemde code.
Draadje kan wat mij betreft gesloten worden!

ps,
Nog even ter info.
Ik heb een database opgezet voor mijn werk, waarmee we een beter overzicht hebben gekregen op afgehandelde zendingen.
Ik heb deze database a.d.h. van de door u geschreven handleiding/cursus in elkaar geknutseld. Ook dank daarvoor natuurlijk.

Misschien tot de volgende vraag maar weer ;-)

Groetjes,
Edwin
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan