sql >> Database >  >> RDS >> Access

Hoe te controleren of een gebruiker op [Annuleren] heeft geklikt op een InputBox in VBA

Wist u dat het mogelijk is om onderscheid te maken tussen een gebruiker die op "OK" klikt op een InputBox en op "Annuleren", zelfs als hij geen tekst heeft ingevoerd?

Bekijk de volgende voorbeeldcode:

Sub InputBoxTest()
    Dim Result As String
    
    Result = InputBox("Leave this box blank")
    If StrPtr(Result) = 0 Then
        Debug.Print "User clicked [Cancel]"
    ElseIf Len(Result) = 0 Then
        Debug.Print "User clicked [OK]"
    Else
        Debug.Print "User can't follow instructions"
    End If
    
End Sub

Hier is de testcode in actie:

Als je geïnteresseerd bent in waarom dit werkt, raad ik de volgende vraag aan over stackoverflow:Wat zijn de voordelen en risico's van het gebruik van StrPtr in VBA? Beide best gestemde antwoorden (van gebruikers Comintern en GSerg) zijn het lezen waard voor achtergrondkennis.

Externe referenties

InputBox-functie (Visual Basic for Applications) Microsoft Docso365devx Wat zijn de voordelen en risico's van het gebruik van de StrPtr-functie in VBA? Terwijl ik op zoek was naar een manier om te testen wanneer een gebruiker een InputBox annuleert, stuitte ik op de StrPtr-functie. Ik geloof dat het controleert of een variabele ooit een waarde heeft gekregen en nul retourneert als het nooit is geweest Stack OverflowChrisB


  1. PostgreSQL:parallellisme opvragen in actie

  2. SQL-query om kolomgegevens in rijen te splitsen

  3. waarde te lang voor type karakter variërend (N)

  4. Het uitvoeren van SQL-script via psql geeft syntaxisfouten die niet voorkomen in PgAdmin