sql >> Database teknologi >  >> RDS >> Access

Sådan kontrolleres, om en bruger klikkede på [Annuller] på en inputboks i VBA

Vidste du, at det er muligt at skelne mellem en bruger, der klikker på "OK" på en InputBox og "Annuller", selvom de ikke har indtastet nogen tekst?

Overvej følgende eksempelkode:

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

Her er testkoden i aktion:

Hvis du er interesseret i, hvorfor dette virker, anbefaler jeg følgende spørgsmål om stackoverflow:Hvad er fordelene og risiciene ved at bruge StrPtr i VBA? Begge top-stemte svar (fra brugere Comintern og GSerg) er værd at læse for baggrundsviden.

Eksterne referencer

InputBox-funktion (Visual Basic for Applications)Microsoft Docso365devxHvad er fordelene og risiciene ved at bruge StrPtr-funktionen i VBA? Mens jeg ledte efter en måde at teste, hvornår en bruger annullerer en InputBox, faldt jeg over StrPtr-funktionen. Jeg tror, ​​den kontrollerer, om en variabel nogensinde er blevet tildelt en værdi, og returnerer nul, hvis den aldrig blev tildelt Stack OverflowChrisB


  1. Sådan opretter du forbindelse til MySQL fra kommandolinjen

  2. JSON_STORAGE_FREE() – Find ud af, hvor meget lagerplads der blev frigivet efter en opdatering af et JSON-dokument i MySQL

  3. Sådan installeres Lighttpd med PHP, MariaDB og PhpMyAdmin i Ubuntu

  4. Fejl ved installation af Psychopg2 på MacOS 10.9.5