If Expressie die Waar of Vals is Then
Doe iets als de expressie Waar is
End If
Const strResultaat As String = "Het resultaat is....."
Sub sAls1()
If MsgBox("Wat kies je ?", vbQuestion + vbOKOnly, "maak keuze") = vbOK Then
MsgBox "u koos OK!", vbInformation, strResultaat
End If
End Sub
If Expressie die Waar of Vals is Then
Doe iets als de expressie Waar is
Else
Doe iets anders indien de Expressie niet waar is
End If
Sub sAls2()
Dim strBoodschap As String
If MsgBox("Wat kies je ?", vbQuestion + vbOKCancel, "maak keuze") = vbOK Then
strBoodschap = "u koos OK!"
Else
strBoodschap = "u koos Cancel"
End If
MsgBox strBoodschap, vbInformation, strResultaat
End Sub
If Eerste Expressie die Waar of Vals is Then
Doe iets als de eerste expressie Waar is en negeer volgende ElseIf
ElseIf Tweede Expressie die Waar of Vals is Then
Doe iets als de tweede expressie waar is en negeer volgende ElseIf
ElseIf Derde Expressie die Waar of Vals is Then
Doe iets als de Derde expressie waar is
End If
Sub sAls3()
Dim intKeuze As Integer
Dim strBoodschap As String
intKeuze = MsgBox("Wat kies je ?", vbQuestion + vbYesNoCancel, "maak keuze")
If intKeuze = vbYes Then
strBoodschap = "u koos Yes!"
ElseIf intKeuze = vbNo Then
strBoodschap = "u koos No"
ElseIf intKeuze = vbCancel Then
strBoodschap = "u koos Cancel"
End If
MsgBox strBoodschap, vbInformation, strResultaat
End Sub
vertoont veel gelijkenis met voorgaande If Then ElseIf Then End If
maar is overzichtelijk en beter als er veel condities moeten getest worden
Select case
Case
voer actie uit indien waar en ga dan naar End Select
Case
voer actie uit indien waar en ga dan naar End Select
Case
voer actie uit indien waar en ga dan naar End Select
........enz
End Select
Sub sSelect()
Dim strBoodschap As String
Dim varGegeven As Variant
varGegeven = InputBox("voer willekeurig getal in", "Select Case voorbeeld")
If IsNumeric(varGegeven) Then
Select Case varGegeven
Case Is < 0
strBoodschap = "Het getal is kleiner dan nul"
Case Is = 0
strBoodschap = "Het getal is gelijk aan nul"
Case Is < 11
strBoodschap = "Het getal is tussen 1 en 10"
Case Is < 101
strBoodschap = "Het getal is tussen 11 en 100"
Case Is < 1001
strBoodschap = "Het getal is tussen 11 en 1000"
Case Is > 1000
strBoodschap = "Het getal is groter dan 1000"
End Select
Else
strBoodschap = "u hebt geen getal ingegeven!"
End If
MsgBox strBoodschap, vbInformation, strResultaat
End Sub
For int = 0 To 1000 (of eender ander geheel getal)
Doe iets, hier wordt een conditie gecontroleerd en herhaal tot aan 1000 (of eender ander geheel getal)
Next int
Men kan zonodig de lus verlaten met een Exit For Statement
Sub sFor1(intTelTot As Integer, intDeelbaarDoor As Integer)
Dim intTel As Integer
Dim intDum As Integer
For intTel = 1 To intTelTot
If intTel Mod intDeelbaarDoor = 0 Then
intDum = intDum + 1
End If
Next intTel
MsgBox " van 1 tot " & intTelTot & " zijn er " & intDum & vbCrLf & " getallen deelbaar door " & intDeelbaarDoor, vbInformation, strResultaat
End Sub
For each
Doe iets
Next
vertoont gelijkenis met voorgaande maar is vooral handig bij objecten en er moet geen limiet getal ingegeven worden
Hier een voorbeeld met formulieren
Sub sFor2()
Dim objAccess As Access.AccessObject
Dim intTel As Integer
For Each objAccess In CurrentProject.AllForms
Debug.Print objAccess.Name
intTel = intTel + 1
Next
MsgBox intTel & " formulieren", vbInformation, strResultaat
End Sub
Do While of Until een bepaalde expressie waar is
Doe iets
Loop
er moet geen limiet getal ingegeven worden en de lus wordt doorlopen
tot de conditie waar is
tussen in kan men bijkomende condities instellen en zonodig de lus verlaten met een Exit Do statement
Sub sDo1()
Dim intIets As Integer
Dim intStap As Integer
intStap = 1000
intIets = 1
Do While intIets > 0
intIets = intIets + 1
If intIets > intStap Then
If MsgBox(" wij zijn aan " & intIets & " Stoppen ?", vbInformation + vbYesNo) = vbNo Then
intStap = intStap + 1000
If intStap > 30000 Then
MsgBox "nu moet je stoppen!", vbCritical + vbOKOnly, strResultaat
Exit Do
End If
Else
intIets = -1
End If
End If
Loop
End Sub
Sub sDo2()
Dim intIets As Integer
Dim intStap As Integer
intStap = 1000
intIets = 1
Do Until intIets > 30000
intIets = intIets + 1
If intIets > intStap Then
If MsgBox(" wij zijn aan " & intIets & " Stoppen ?", vbInformation + vbYesNo) = vbNo Then
intStap = intStap + 1000
If intStap > 29000 Then
MsgBox "nu moet je stoppen, ik verwittig niet meer!", vbCritical + vbOKOnly, strResultaat
intIets = 30001
End If
Else
intIets = 30001
End If
End If
Loop
End Sub
Een variante op Do maar zelfde principe dus
While een voorwaarde is waar
doe iets
Wend
Sub sWhile()
Dim intTel As Integer
While intTel > 30001
intTel = intTel + 1
If intTel = 30000 Then
MsgBox "wij zijn aan " & intTel & vbCrLf & "wij gaan stoppen!", vbCritical, strResultaat
End If
Wend
End Sub
|