Exceltabelle in Access importieren
Exceltabelle in Access importieren klappt nur teilweise
Moin Leute,
ich habe ein Funktion erstellt, mit welcher ich alle Daten aus einer Exceltabelle in eine neue Accesstabelle importiere. Der Import funktioniert auch. Es wird mir jedoch jedesmal eine Fehlertabelle erstellt mit dem Name Gesamt$_Importfehler und in dieser Tabelle steht dann:
Fehler Feld Zeile
Fehler bei Typumwandlung F2 123
Fehler bei Typumwandlung F2 124
Fehler bei Typumwandlung F2 125
Fehler bei Typumwandlung F2 126
Fehler bei Typumwandlung F2 127
Fehler bei Typumwandlung F2 128
Fehler bei Typumwandlung F2 129
...
In der importierten Tabelle wird die Spalte F2 jedesmal als Typ Datum/Uhrzeit angegeben, obwohl dort kein einziges Datum eingetragen ist. Deshalb wird ja dann auch die Tabelle Gesamt$_Importfehler erstellt. Wie kann ich den Fehler beheben? Die Spalte F2 ist zwar unwichtig, jedoch soll es nicht jedesmal eine neue Fehlertabelle erstellen. Beim nächsten aufruf wird ja dann die Tabelle Gesamt$_1Importfehler erstellt...
Hier noch der Quellcode
Existiert die Tabelle tbl_importPlannung nicht, kommt eine Fehlermeldung, ist mir klar. Ich werde auch später kontrollieren ob die Tabelle vorhanden ist, bevor ich sie lösche. Aber ein Schritt nach dem anderen
Moin Leute,
ich habe ein Funktion erstellt, mit welcher ich alle Daten aus einer Exceltabelle in eine neue Accesstabelle importiere. Der Import funktioniert auch. Es wird mir jedoch jedesmal eine Fehlertabelle erstellt mit dem Name Gesamt$_Importfehler und in dieser Tabelle steht dann:
Fehler Feld Zeile
Fehler bei Typumwandlung F2 123
Fehler bei Typumwandlung F2 124
Fehler bei Typumwandlung F2 125
Fehler bei Typumwandlung F2 126
Fehler bei Typumwandlung F2 127
Fehler bei Typumwandlung F2 128
Fehler bei Typumwandlung F2 129
...
In der importierten Tabelle wird die Spalte F2 jedesmal als Typ Datum/Uhrzeit angegeben, obwohl dort kein einziges Datum eingetragen ist. Deshalb wird ja dann auch die Tabelle Gesamt$_Importfehler erstellt. Wie kann ich den Fehler beheben? Die Spalte F2 ist zwar unwichtig, jedoch soll es nicht jedesmal eine neue Fehlertabelle erstellen. Beim nächsten aufruf wird ja dann die Tabelle Gesamt$_1Importfehler erstellt...
Hier noch der Quellcode
Public Sub updatePlannung()
Dim db As Database
Set db = CurrentDb
CurrentDb.Execute "DROP TABLE tbl_importPlannung"
'Set db = Nothing
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "tbl_importPlannung", "Plannung.xls", True, strRangeToImport
End Sub
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 123419
Url: https://administrator.de/contentid/123419
Ausgedruckt am: 15.11.2024 um 11:11 Uhr
3 Kommentare
Neuester Kommentar
Moin wydy,
Da hätte ich aber noch ein oder zwei Rückfragen...
Grüße
Biber
In der importierten Tabelle wird die Spalte F2 jedesmal als Typ Datum/Uhrzeit angegeben, obwohl dort kein einziges Datum eingetragen ist.
Die Spalte F2 ist zwar unwichtig,
Die Spalte F2 ist zwar unwichtig,
Da hätte ich aber noch ein oder zwei Rückfragen...
- wiesó Spalte "F2"? Hat Deine tabelle doch keine Header= oder heißt die Spalte in der Importdatei wirklich "F2"?
- was bedeutet "obwohl dort kein einziges Datum eingetragen ist"? Was ist denn eingetragen?
- Wie ist denn die Spalte, die als "F2" ankommt, in Excel formatiert
- Wenn gilt "Die Spalte F2 ist zwar unwichtig", warum übernimmst Du die denn überhaupt?
- und letztendlich: Ist strRangeToImport denn undefiniert oder kommt da durh unsaubere Programmierung irgendwowo anders der Wert her (wenn ja: was)?
- Haben Dein "Excel" und Dein "Access" denn auch einen Nachnamen bzw. eine Versionsnummer und falls Du unter XP agierst mit welchem SP?
Grüße
Biber
Moin wydy,
Der Bereich muss (jedenfalls nach meinen Test) zusammenhängend sein.
Dennoch muss ja diese Information "Spalte F2 ist vom Typ Datum/Uhrzeit" irgendwo herkommen.
Wenn ich Dein Szenario nachstelle und eine Spalte mit per "=Wenn(Bedingung,""; andererWert)" füllen lasse, dann kommt diese Spalte bei Access als TEXT an.
Es sei denn, dummerweise sind ausgerechnet in den ersten 8 Zeilen mindestens 4 Werte, die ungleich "" (Leerstring) sind UND als Datum interpretiert werden.
Das kann aber nur sein, wenn die per SVerweis kopierten Felder
--> Anyhow, die Ursache ist eigentlich nur sinnvoll in der Quell-Exceldatei abzustellen.
Ich würde mich mit denKaspern Kollegen zusammensetzen und um etwas mehr Sorgfalt bzw. Datenstriktheit bitten.
Denn Du kannst diese Import-Unsauberkeiten nur mit Mehraufwand ausräumen.
Grüße
Biber
geändert in A1:AF255;C1:AF255. Jedoch wurde die Eingabe so nicht akzeptiert.
Wenn es Dich tröstet: Selbst die "richtige" Angabe A1:B255;C1:AF255 wäre abgelehnt worden.Der Bereich muss (jedenfalls nach meinen Test) zusammenhängend sein.
Dennoch muss ja diese Information "Spalte F2 ist vom Typ Datum/Uhrzeit" irgendwo herkommen.
Wenn ich Dein Szenario nachstelle und eine Spalte mit per "=Wenn(Bedingung,""; andererWert)" füllen lasse, dann kommt diese Spalte bei Access als TEXT an.
Es sei denn, dummerweise sind ausgerechnet in den ersten 8 Zeilen mindestens 4 Werte, die ungleich "" (Leerstring) sind UND als Datum interpretiert werden.
Das kann aber nur sein, wenn die per SVerweis kopierten Felder
- entweder im Sheet "Feiertage" als Datum formatiert sind
- oder dort nicht, wie ich vermutet hätte, der Text "Tag der Arbeit" steht, sondern "1.Mai". Was wiederum Excel darum bringt, diesen String wieder als Datum aufzufassen.
--> Anyhow, die Ursache ist eigentlich nur sinnvoll in der Quell-Exceldatei abzustellen.
Ich würde mich mit den
Denn Du kannst diese Import-Unsauberkeiten nur mit Mehraufwand ausräumen.
Grüße
Biber