Inputbox für Anwendungen

Datenbank

Die Funktion „InputBox$()“ eignet sich hervorragend dazu, um in VBA-Routinen ohne viel Aufwand Informationen vom Anwender zu erfragen. Allerdings sieht die Eingabebox etwas schmucklos aus und bietet keinen Platz für Zusatzinformationen. Unsere Alternative besteht aus einer individuellen Funktion „InpBox()“, die Sie in Zukunft anstelle von „InputBox$()“ einsetzen können.

„InpBox()“ erwartet zunächst einmal die auch von „InputBox$()“ verwendeten Parameter:

Prompt: Hinweis an den Anwender über die erwartete Eingabe

Title: Text für die Titelleiste

Default: Vorgabe im Textfeld

Die optionalen „InputBox$“-Parameter „XPos“, „YPos“, „HelpFile“ und „Context“ unterstützt „InpBox()“ nicht, da sie erfahrungsgemäß kaum genutzt werden. Dafür kennt „InpBox()“ den Parameter „Help“, über den Sie einen Hilfetext übergeben können, der nach einem Klick auf eine Schaltfläche HILFE per „MsgBox“ angezeigt wird.

Die Aufrufsyntax sieht also folgendermaßen aus:

strX = InpBox(Prompt, [Title],[Default], [Help])

Die Parameter „Title“, „Default“ und „Help“ sind optional, „Prompt“ hingegen muss immer angegeben werden. Neben der bereits erwähnten HILFE-Schaltfläche verfügt „InpBox()“ über eine UNDOSchaltfläche, über die der Anwender bei Bedarf die Vorgabe wiederherstellen kann.

Das Ergebnis von „InpBox()“ ist analog zu „InputBox$()“ eine Zeichenkette (String) mit der Eingabe des Anwenders. Hat dieser auf ABBRECHEN geklickt, ist das Funktionsergebnis eine leere Zeichenkette („“).

Sie können also wie gewohnt den Erfolg einer Eingabe durch eine Ab frage auf den Leerstring feststellen:

…..
strX = InpBox(„Bitte den gesuchten Ort eingeben:“, _
„Ort eingeben:“, _
„Hamburg“)
If strX = „“ Then Exit Sub
…..

Um die neue Funktion „InpBox()“ in eigenen Projekten zu nutzen, übertragen Sie zunächst das Formular „frmInpBox“ und das Modul „modInpBox“ aus der Beispieldatenbank in Ihre Datenbank.

Um den Import direkt zu testen, öffnen Sie über Strg+G das Testfenster bzw. den Direktbereich und geben die folgen de Anweisung ein:

? InpBox(„Bitte etwas eingeben“,“Test“,“Vorgabe“)

Der neue Eingabedialog wird nun an gezeigt, nimmt die Eingabe entgegen und gibt das Ergebnis im Testfenster/Direktbereich aus. Die Schaltflächen OK und ABBRECHEN sind übrigens, wie bei „Input Box$()“, als Standard für die Return-Taste bzw. für die Esc-Taste gesetzt, sodass die Eingabe sofort mit dem Drücken der Return-Taste übernommen oder mit der Esc-Taste abgebrochen werden kann.


Modul: modInpBox