Hoe een funktie IF als VBA toepassen?

Status
Niet open voor verdere reacties.

Vuurbok

Gebruiker
Lid geworden
20 feb 2010
Berichten
65
Hoi luitjes,

Hopelijk kunnen jullie mij helpen met mijn vraag. Heb ik wel goed aan gedaan om de funktie IF als VBA-code te gebruiken? Want wat ik ook doe en welke tips op de internet ik ook toepas, niks werkt bij mij. :confused:

Ik ben bezig om een formulier te maken met "Check Box" en daarnaast een tekstvak. Ze hebben direkt met elkaar te maken. txt_MRD_Material_DNA is een naam van die "Check Box" die aan- of uitgevinkt kan worden en txt_MRD_Material_Auto_Number is een naam van de tekstvak die nodig is om een nummer toe te kennen wanneer de "Check Box" aangevinkt wordt door mij. Hieronder wil ik een VBA-formule toepassen om ervoor te zorgen dat als die "Check Box" aangevinkt wordt, er naar de hoogste getal gezocht wordt in een kolom [MRD_Material_Auto_Number] en dan die met 1 optellen voor een nieuwe record. Maar als ik "Check Box" uitgevinkt heb, dan moet txt_MRD_Material_Auto_Number weer leegstaan. Ik heb hieronder een VBA-code neergezet die ik gemaakt had:

Private Sub txt_MRD_Material_Auto_Number_AfterUpdate()
If [txt_MRD_Material_DNA] = "-1" Then
[txt_MRD_Material_Auto_Number] = SELECT MAX(tbl_Patients_Materials].[MRD_Material_Auto_Number])+1
ElseIf [txt_MRD_Material_DNA] = "0" Then
[txt_MRD_Material_Auto_Number] = ""
End If
End Function

Hopelijk hebben jullie misschien een oplossing voor me of dat jullie al zien dat ik niet goed gedaan heb met he ttoepassen van de bovengenoemde VBA-code. :)

Groeten van Vuurbok! :thumb:
 
Mag ik je eerst wijzen op de hoogst ongelukkige naam die je hebt gebruikt voor je checkbox? De prefix 'txt' wordt doorgaans alleen gebruikt voor tekstvakken. Voor selectievakjes gebruik je liefst 'chk' o.i.d. Als een buitenstaander (zoals ik) alleen die code zou zien, dan ga ik er blindelings vanuit dat je een actie maakt op basis van een tekstvak, en niet van een selectievakje. en die hebben toch echt andere eigenschappen! Ik zou daar nog eens rustig naar kijken, als ik jou was!

Je code zal nooit kunnen werken, omdat er al een vette fout in zit: een SUB procedure sluit je af met END SUB, en niet met END FUNCTION. Knap dat je dat zo voor elkaar krijgt, want als je een functie of sub maakt, krijg je van Access al automatisch de Private Sub en End sub regel cadeau. En waarom zou je zo'n gift willen veranderen :)

Code:
Private Sub chkMRD_Material_Auto_Number_AfterUpdate()
    If chkMRD_Material_DNA = True Then
        Me.txt_MRD_Material_Auto_Number = DMax("MRD_Material_Auto_Number", "tbl_Patients_Materials") + 1
    Else
        Me.txt_MRD_Material_Auto_Number = ""
    End If
End Sub
 
Hoi OctaFish,

Bedankt voor je snelle antwoord en sorry voor mijn trage antwoord, want was op weg naar huis. En bedankt voor je leerzame attentie dat ik beter in het vervolg een prefix "chk" moet gebruiken als aanduiding voor checkbox. Weer wat van geleerd zoals txt, mcr, tbl en qry als voorbeeld. :D

Jeetje, dat foutje met het afsluiten van SUB-procedure heb ik totaal overheen gekeken! :o Je voorgestelde oplossing werkt jammer niet in mijn database. Ik heb een paar uurtjes naar de mogelijke fouten gezocht die door mij achtergelaten zijn. Maar ik kan het echt niks vinden wat de reden zou moeten zijn dat je oplossing niet werkt. :(

Ik heb je oplossing in mijn database (die ontdaan is van alle gevoelige informatie) gestopt en deze database heb ik hier geupload om die aan je te kunnen laten zien wat er precies aan de hand is. Alvast hartelijk bedankt dat je mij graag wilt helpen! :D

Alvast een fijn weekend toegewenst! :thumb:
 
Je code doet het prima, zonder enige aanpassingen. Alleen: hij staat bij het verkeerde object. Als je de code verplaatst naar de <Bij klikken> gebeurtenis van de checkbox, zul je zien dat hij het doet.
 
Hoi OctaFish,

Ik zie het al hoe het komt dat die funktie niet werkt, het kwam doordat de kolom "MRD_Material_Auto_Number" als tekst afgesteld staat. Nu is dat probleem ook verholpen door die kolom in nummer af te stellen. Alsnog hartelijk bedankt om mij een wegwijs te maken! :D

Groeten van Vuurbok! :thumb:
 
Kan deze ook weer op Opgelost :)
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan