Frontend-Alternativen für Datenbanklösung 2 - HTA-Dateien als Benutzeroberfläche

Besonderheiten gegenüber der VBA-Programmierung

Besonderheiten gegenüber der VBA-Programmierung gibt es nur wenige. Statt das Objektmodell der Anwendung zu nutzen, die den Code ausführt, nutzen Sie hier das FileSystemObject- Objekt sowie bei Bedarf auch das WSH-Objektmodell. Variablen haben in VBScript keine Datentypen, sodass nur die Angabe des Datentyps Variant möglich ist, die daher auch ganz entfallen kann.

Letzteres wird allerdings im Beispiel nicht verwendet. Damit die Datenbank im gleichen Verzeichnis wie die HTA-Datei gesucht werden kann, ermittelt die Prozedur verbinden zunächst über die CommandLine-Eigenschaft der HTADatei deren vollständigen Pfad und dann daraus mit der GetParentFoldername-Eigenschaft des FileSystemObject-Objekts den übergeordneten Order. Den so ermittelten Pfad können Sie dann um den Wert der Konstanten DBName ergänzen und mit der BuildPath-Methode zu einem neuen Pfad zusammensetzen.

Der Verbindungsaufbau erfolgt dann prinzipiell wie in Excel oder Access auch, indem ein Connection-Objekt erzeugt wird. Es wird der Variablen objCon zugewiesen, über die dann alle anderen Prozeduren Zugriff auf die Datenbankverbindung haben. Die Prozedur Trennen sorgt dafür, dass die geöffnete Verbindung wieder geschlossen wird.

Bild 2: Das Eingabeformular für die Erfassung der Datensätze.
Bild 2: Das Eingabeformular für die Erfassung der Datensätze.

Mit Hilfe der Prozedur Suchen wird der Suchbegriff, der als Parameter übergeben wird, in der Tabelle gesucht und die ermittelten Datensätze als Array zurückgegeben. Dieses wird dann von der Prozedur Ausgabe durchlaufen, die ihrerseits dafür den HTML-Code für die tabellarische Darstellung der Daten erzeugt und ihn zurückgibt. Nachdem Sie alle Hilfsfunktionen erstellt haben, benötigen Sie noch eine Funktion, die diese Funktionen nacheinander aufruft und den Suchbegriff aus dem Formular ermittelt und übergibt (Listing 4).

Function skriptstarten()
Dim strHTML
strSuchbegriff=trim(document.forms(0).txtName.value)
verbinden
arrDaten=Suchen(strSuchbegriff)
strHTML=Ausgabe(arrDaten)
strHTML="<table>" & strHTML & "</table>"
trennen
document.all("ausgabe").innerHTML=strHTML
End Function

Auf die Steuerelemente des HTML-Formulars greifen Sie über das Objektmodell des Internet Explorer zu, dessen oberstes Objekt das document- Objekt ist. Über document.forms(0) greifen Sie also auf das erste Formular mit dem Index 0 zu. Dahinter geben Sie einfach den Namen des Formularsteuerelements an. Im Feld txtName steht der Suchbegriff, den Sie über die Eigenschaft Value ermitteln können.

Den Rückgabewert der Funktion Suchen übergibt die Funktion dann an die Funktion Ausgabe und fügt deren Rückgabewert in ein <table>-Element ein, das wiederum über die Eigenschaft innerHTML dem Element mit der ID "ausgabe" zugewiesen wird. Diese Funktion rufen Sie auf, wenn der Benutzer auf den Suchen-Button klickt. Diesen und das notwendige Formular müssen Sie noch erstellen, und zwar im <body>-Element der Seite. Die Tabellendefinition mit dem <table>-Element dient lediglich der Anordnung der Seitenelemente. Sie ist nicht für das Funktionieren der Anwendung wesentlich. Die dafür wichtigen Elemente werden daher im Listing fett hervorgehoben.Sie müssen Sie auf jeden Fall in das <body>- Element einfügen.

Damit die Funktion ausgeführt wird, wenn der Benutzer auf den mit <input type="button"> definierten Button klickt, ist das Attribut onclick notwendig. Es legt den Namen der auszuführenden Funktion fest.