Spezifikationen nutzen

Spezifikationen ermitteln

Jetzt müssen Sie nur noch in der zweiten Listbox lstSpezifikationen alle Spezifikationsnamen dieser Datenbank anzeigen, damit der Benutzer eventuell eine passende auswählt.

Aber woher nehmen? Irgendwie scheinen beim Access-Design die Spezifikationen so spät hinzugebastelt worden zu sein, dass es keine Auflistung dazu gibt, weder eine direkte Auflistung noch ein VBA-Objekt, welches die Spezifikationen enthält. Also müssen wir auf die Interna von Access zurückgreifen.

Da Access alle Inhalte einer Datenbank jeweils vollständig in den MSys-Tabellen gespeichert hat, ist nur eine kurze Suche notwendig, um die Spezifikationsnamen in MSysIMEXSpecs wieder zu erkennen. Diese Tabelle kriegen Sie natürlich nur zu Gesicht, wenn Sie in Extras/Optionen/Ansicht die Systemtabellen anzeigen lassen. Aber dann können Sie eine Abfrage wie in Bild 4 erstellen, welche diese Liste anzeigt. Diese Abfrage lässt sich dann als Datenquelle für die lstSpezifikationen- Listbox im Formular einsetzen.

Spezifikationsname prüfen

Häufig wird es zu genau einer Datei immer genau eine ähnlich benannte Spezifikation geben. Sie können also beim Import nach Auswahl des Dateinamens immer direkt die passende Spezifikation im Code angeben.

Allerdings sollten Sie sicherheitshalber dabei prüfen, ob nicht ein neuer Dateiname noch ohne zugehörige Spezifikation ist. Dazu eignet sich die Funktion aus Listing 4, welche direkt auf die MSysIMEXSpecs-Tabelle zugreift. Dabei ist es unerheblich, ob Sie die Systemtabellen wieder ausgeblendet haben, denn sowohl die Abfrage als auch die Funktion kann trotzdem darauf zugreifen.

Function IstSpezifikationDa(strName As String) As Boolean
IstSpezifikationDa = (DCount("*", "MSysIMEXSpecs", _
"[SpecName] = '" & strName & "'") > 0)
End Function