Spezifikationen nutzen

Fehlerbehandlung weglassen

Die Fehlerbehandlung ist völlig überflüssig, weil sie erstens Objekte aus der Access-Frühzeit einsetzt wie Error$, dessen modernes Pendant aber seit Access 97 die Eigenschaft eines Objekts ist und vernünftigerweise Err.Description heißt.

Zweitens beschränkt sich diese Fehlerbehandlung darauf, die Beschreibung des Fehlers anzuzeigen. Dasselbe haben Sie allerdings auch, wenn Sie gar keine Fehlerbehandlung vornehmen, außerdem steht Ihnen dann sogar noch ein Debuggen- Button zu Verfügung, der Sie zur fehlerhaften Codezeile hinführt. Auch dieser Vorteil wäre verloren. In Listing 2 sehen Sie, wie Sie den VBA-Code erst einmal auf die einzig notwendige Zeile kürzen.

Function Import01()
DoCmd.TransferText acImportDelim, _
"TblPersonen_01 Importspezifikation", "Tabelle1", _
"C:\Daten\tblPersonen_01.txt", _
True, "", 1250
End Function

Dateiauswahl anzeigen

Da bei regelmäßigem Import davon auszugehen ist, dass die Dateien immer wieder im gleichen Verzeichnis stehen, wäre es am einfachsten, dem Benutzer eine Liste aller vorgefundenen Textdateien direkt anzubieten. Um diese Dateiauswahl brauchbar anzeigen zu können, erstellen Sie ein Formular mit zwei Listboxen.

Mit dem Code aus Listing 3 können Sie aus diesem vorgegebenen Verzeichnis alle Textdateien in der linken Listbox lstDateien anzeigen lassen. Das ist praktisch, damit der Benutzer sich nicht erst durch Verzeichnisbäume hindurchsuchen muss

Bild 3: Abfrage zum Ermitteln der Spezifikationsnamen.
Bild 3: Abfrage zum Ermitteln der Spezifikationsnamen.

Option Compare Database
Option Explicit
Private Sub btnAbbrechen_Click()
DoCmd.Close
End Sub
Private Sub btnImportieren_Click()
DoCmd.TransferText acImportDelim, _
lstSpezifikationen.Value, "Tabelle1", _
"C:\Daten\" & lstDateien.Value, True
End Sub
Private Sub Form_Load()
Dim strDatei As String
strDatei = Dir("C:\Daten\*.txt")
Do Until strDatei = ""
lstDateien.AddItem strDatei
strDatei = Dir()
Loop
End Sub.