If En If then ...Else (2x If voorwaarde dus)

Status
Niet open voor verdere reacties.

Anne-Marie

Gebruiker
Lid geworden
8 sep 2000
Berichten
299
In een formulier heb ik een tekstveld (keuze8). Hier moet een 8 cijferige waarde worden ingevoerd die als invoer wordt gebruikt voor queries in meerdere macro’s (macroA en macroB). Op dit moment heb ik achter de knop van macroA staan:
If Len ([Me.keuze8]) = val(8) then DoCmd.RunMacro else msgbox (met een foutmelding). Dit werkt goed.

Om te voorkomen dat men zowel macroA als MacroB kan uitvoeren heb ik selectievakjes toegevoegd (selectieA en selectieB) die aangevinkt moeten worden. Nu wil ik er dus een extra If voorwaarde aan toevoegen zodat macroA alleen maar uitgevoerd kan worden als:
SelectieA = Ja EN Len ([Me.keuze8]) = val(8).
Ondanks een weekend van alles proberen lukt dit mij niet. Meestal is de oplossing dan heel simpel, dus ik ben benieuwd. Alvast bedankt
 
Hoi Anne-Marie,

Ik denk zoiets:

Code:
If Len ([Me.keuze8]) = 8 AND SelectieA.Value = -1  then 
DoCmd.RunMacro 
ELSE msgbox (met een foutmelding).


SelectieA is dan je Selectievakje (ik neem aan een checkbox of een optionbox).
-1 is aangevinkt
0 = uitgevinkt

Suc6
 
Deze werkte niet

Deze had ik als eerste geprobeerd maar kreeg een foutmelding op de tweede if. Hoewel ik nu zie dat ik de waarde true gebruikte ipv (-1) dus dat zou nog de fout kunnen zijn. Vanmiddag kan ik bij de database dus ga ik het nog met de waarde -1 proberen. Wat ook niet werkte:
If Len ([Me.keuze8]) = 8 then
If SelectieA.Value = true then DoCmd.RunMacro
ELSE msgbox (met een foutmelding).
end if
end if.
Alvast bedankt
 
Inderdaad value -1

Blijkt inderdaad dat ik ipv true de waarde (-1) had moeten gebruiken. Toch nog een kleine aanvullende vraag. Bij een keuzevakje heb je eigenlijk drie mogelijkheden: 1. grijs, 2 aangevinkt (-1) en 3. leeg (0). Standaard staan mijn vakjes op grijs. Als men dan toch op het knopje van de querie klikt zou ik ook een ms box willen laten opkomen.

If Len ([Me.keuze8]) = 8 AND SelectieA.Value =0 then msgbox (nummer juist maar vakje niet aangevinkt enz.) dekt deze optie niet. Is daar een andere waarde voor?.
 
Hoi Anne-Marie,

Ik snap je vraag niet helemaal, maar ik denk dat je zoiets bedoeld
Het beste kun je trapgewijs werken (is het meest overzichtelijk)


Bijvoorbeeld:

Code:
IF BlaBla=BoeBoe THEN
    De code die je wilt uitvoeren als de waarde juist is
    Je kunt hier tussen zoveel regels zetten als je nodig hebt
ELSE
    De code die je wilt uitvoeren als de waarde niet juist is
    Ook hier kun je zoveel regels zetten als je nodig hebt
END IF

Suc6
 
Dit bedoel ik

Ik had een onafhankelijk formulier met daarop de selectievakjes. Als je het formulier opent zien de vakjes er grijs uit. Klik je ze aan krijg je een vinkje (waarde -1). Vink je weer uit is het vakje wit (waarde 0). Nu krijg je geen messagebox als men het formulier opent en gelijk de knop van de macro activeert. Dat bedoelde ik met drie waarden.
Inmiddels heb ik het opgelost door de standaardwaarde van de selectievakjes op nee te zetten en bij eigenschappen 2 keuzes in te stellen. Nu werkt het wel. Bedankt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan