Voorwaarden en Lussen.

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
            
        
Begin