Access
 sql >> Datenbank >  >> RDS >> Access

So überprüfen Sie, ob ein Benutzer in VBA in einer InputBox auf [Abbrechen] geklickt hat

Wussten Sie, dass es möglich ist, zu unterscheiden, ob ein Benutzer in einer InputBox auf "OK" klickt oder auf "Abbrechen", selbst wenn er keinen Text eingegeben hat?

Betrachten Sie den folgenden Beispielcode:

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 ist der Testcode in Aktion:

Wenn Sie daran interessiert sind, warum das funktioniert, empfehle ich die folgende Frage zu Stackoverflow:Was sind die Vorteile und Risiken der Verwendung von StrPtr in VBA? Die beiden am besten bewerteten Antworten (von den Benutzern Comintern und GSerg) sind für Hintergrundwissen lesenswert.

Externe Referenzen

InputBox-Funktion (Visual Basic for Applications)Microsoft Docso365devxWas sind die Vorteile und Risiken der Verwendung der StrPtr-Funktion in VBA?Auf der Suche nach einer Möglichkeit, zu testen, wann ein Benutzer eine InputBox abbricht, bin ich auf die StrPtr-Funktion gestoßen. Ich glaube, es prüft, ob einer Variablen jemals ein Wert zugewiesen wurde, und gibt Null zurück, wenn dies nie der Fall war StapelüberlaufChrisB