Sicher kennen auch Sie die Standard InputBox. Sie ist zwar nicht sonderlich flexibel, aber hin- und wieder lässt sie sich doch sinnvoll einsetzen. Nun fordert man also den Anwender auf, irgendeine Eingabe zu machen - über die InputBox. Die InputBox-Funktion selbst liefert im Rückgabewert den eingegebenen Text. Solange dieser nicht "leer" ist, ist klar: OK wurde gewählt. Was aber, wenn der Rückgabewert eine leere Zeichenfolge ist? Wurde die InputBox nun per OK oder per Abbrechen beendet? Keine Ahnung, denn: Klickt der Anwender auf den Abbrechen-Knopf, so gibt die InputBox-Funktion einen Leerstring zurück. Gibt der Anwender keinen Text ein und klickt auf den OK-Knopf, so wird ebenfalls ein Leerstring zurückgegeben. Wie soll man nun herausfinden, welcher Button tatsächlich gewählt wurde? Klar, in diesem Fall fragen wir den Anwender per MsgBox: "Haben Sie OK oder Abbrechen gewählt?" Nein, Scherz beiseite Es gibt auch eine elegantere Lösung. Und zwar muss man wissen, dass unterschieden wird zwischen leerer Zeichenkette ("") und Null-String. Klickt der Anwender auf Abbrechen, wird eben ein Nullstring (vbNullString) zurückgegeben. Leider ist das Ergebnis der InputBox in beiden Fällen eine leere Zeichenkette ("") - zumindest hat dies den Anschein. Wenn da nicht die StrPtr-Funktion wäre. Mit Hilfe dieser Funktion lässt sich nämlich feststellen, ob es sich um eine Zeichenkette oder einen Null-String handelt. Übergibt man der StrPtr-Funktion den Rückgabewert der InputBox, so liefert diese als Ergebnis 0, wenn es sich um einen Null-String handelt. Somit lässt sich also doch unterscheiden, ob der Anwender auf "Abbrechen" geklickt oder keinen Text in das Eingabefeld eingegeben hat. Dim myInput As String myInput InputBox("Wie alt sind Sie?", "Alter", "") If StrPtr(myInput) = 0 Then MsgBox "Abbrechen wurde gewählt!" Else If myInput = "" Then MsgBox "Keine Angabe bzgl. des Alters!" Else MsgBox "Aha... " & myInput & " Jahre also!" End if End If Dieser Tipp wurde bereits 26.964 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
sevGraph (VB/VBA) Grafische Auswertungen Präsentieren Sie Ihre Daten mit wenig Aufwand in grafischer Form. sevGraph unterstützt hierbei Balken-, Linien- und Stapel-Diagramme (Stacked Bars), sowie 2D- und 3D-Tortendiagramme und arbeitet vollständig datenbankunabhängig! Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 Access-Tools Vol.1 Über 400 MByte Inhalt Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |