Das folgende vba Code Beispiel zeigt, wie man unter Microsoft Access automatisch komplette Excel-Dateien importiert.
Import Formular
Hierzu habe ich ein Access Eingabe Formular mit einem Button in der Access Datenbank vorbereitet.
Der Button importiert mit vba Code dann das Excel Blatt.
Excel-Datei zum Importieren
Beim Excel sollten die Daten in Zelle A1 beginnen und in der ersten Zeile sollten die gleichen Spaltenbezeichnungen vorliegen, wie in der Import-Tabelle unter Access
Access-Import Tabelle
Mit dem vba Import Code werden die Daten direkt in die richtige Interne Tabelle in Access kopiert.
Mit einer definierten Import-Tabelle werden die Strukturen und Felder definiert. Das heißt, dass der Datentyp welcher hier in einem Feld vorliegt, dem Inhalt der Excel Zellen entsprechen sollte.
Ansonsten werden die nicht-passenden Daten als Importfehler unterdrückt und somit entfallen.
Vba Code zum Importieren von Excel Daten
Automatische Importiern.
Im ersten Schritt muss die Import-Tabelle geleert werden.
Hierzu verwendet man die DELETE Transact SQL
CurrentDb.Execute "DELETE * FROM _Import" |
Anschliessend gilt unter Access der Excel Import mit TransferSpreadSheet
DoCmd.TransferSpreadsheet acImport, , TableName:="_Import", FileName:=sPath & "\" & sFilename, HasFieldNames:=True
|
Option Compare Database Option Explicit On
Private Sub BtnImport_Click() '-----------< BtnImport_Click() >----------- '< get Filename > Dim sFilename As String sFilename = tbxFilename.Value
Dim sPath As String sPath = CurrentProject.Path '</ get Filename >
'--< Import_code_vba >-- '*Delete old Import_Data CurrentDb.Execute "DELETE * FROM _Import"
DoCmd.TransferSpreadsheet acImport, , TableName:="_Import", FileName:=sPath & "\" & sFilename, HasFieldNames:=True
'--</ Import_code_vba >--
MsgBox "Excel Data imported to _Import Table" '-----------</ BtnImport_Click() >----------- End Sub
|
Die Datei ist als Beispiel zum Download bereit
Daten Beispiel zum Importieren von Excel Daten.
Dabei ist darauf zu achten, dass die richtigen Spaltenformate angewandt werden.
Das heißt, das Zahlen als Zahlen, Datum, Sonderformate, Text-Formate immer richtig eingelesen werden
Col1_Text |
Col_Number |
col_Date |
col_Empty |
col_Number_Text |
ABC |
1 |
01.01.1999 |
1 |
|
DE |
2 |
02.02.1998 |
2 |
|
E |
3 |
31.12.2019 |
3 |
|
F |
3 |
|||
G |
4 |
|||
H |
4 |
|||
xx |
11 |
|||
xx |
9 |
|||
xx |
10 |
|||
xx |
11 |
|||
xxxx |
12 |
|||
13 |
||||
14 |
||||
15 |
||||
16 |
||||
to the End |
17 |
31.12.2020 |
17 |