Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Fehler beim Import von Excel-Tabellen
zurück: Dateiinfos in DB sammeln weiter: CSV-Editor / Datenkonvertierer Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Tutorial Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
JörgG
Access-Team


Verfasst am:
24. März 2007, 16:38
Rufname:
Wohnort: b. Dresden

Fehler beim Import von Excel-Tabellen - Fehler beim Import von Excel-Tabellen

Nach oben
       Version: (keine Angabe möglich)

Hallo liebe Hilfesuchenden,

ein regelmässig wiederkehrendes Problem, beim importieren von XL-Tabellen, sind Überlaufmeldungen und Typkonflikte.
Der folgende Beitrag ist ein Auszug aus diesem Forumsbeitrag Überlauf beim Import von Excel-Tabellen

Woher kommt der Fehler? (gesucht und gefunden von Steffen0815)

Microsoft hat folgendes geschrieben:
Zitat:
Microsoft Access legt den Datentyp bei der Verknüpfung für jedes Feld auf der Grundlage der Daten in den ersten acht Zeilen fest.

ANMERKUNG: Wenn Sie das Excel Tabellenblatt importieren anstatt es zu verknüpfen, wird der Datentyp "Text" durch den Importalgorithmus bevorzugt behandelt. Wenn in einer Stichprobe der numerische Datentyp überwiegt, aber dennoch zumindest ein Textwert für das Feld enthalten ist, dann importiert Microsoft Access das gesamte Feld als Text.
Besitzen also die ersten Zeilen der XL-Tabelle keine eindeutigen formatierten Werte kann ein Fehler auftreten.

Hier befindet sich die Stichprobeninformation in der Registry: (von Nouba)
Code:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel]
"win32"="C:\\Programme\\Microsoft Office\\OFFICE11\\msaexp30.dll"
"DisabledExtensions"="!xls"
"ImportMixedTypes"="Text"
"FirstRowHasNames"=hex:01
"AppendBlankRows"=dword:00000001
"TypeGuessRows"=dword:00000008
"win32old"="C:\\WINDOWS\\system32\\msexcl40.dll"
{TypeGuessRows von 19 auf 8 geaendert by Willi Wipp}

Lösungsbeispiele:

von Microsoft
Zitat:
  1. Öffnen Sie das Tabellenblatt in Microsoft Excel 7.0 oder 97.
  2. Formatieren Sie die Zellen im Tabellenblatt, die vermischte Daten enthalten als "Text". Sie können dies über das Menü FORMAT in Microsoft Excel einstellen.
  3. Erzeugen Sie ein Makro in Microsoft Excel mit der folgenden Prozedur:
    Code:
    Sub Addspace()
        For Each cell in Selection
            cell.value = " " & cell.Value
            cell.value = Right(cell.Value, Len(cell.Value) - 1)
        Next cell
    End Sub
  4. Markieren Sie die Zellen im Tabellenblatt, die vermischte Daten enthalten.
  5. Führen Sie das Makro aus und speichern das Tabellenblatt.
  6. Öffnen Sie Ihre Datenbank in Microsoft Access.
  7. Erstellen Sie eine Tabellenverknüpfung zu dem Tabellenblatt, das Sie unter Microsoft Excel erstellt haben. Ihre Daten werden nun im richtigen Format angezeigt.
von Steffen0815 kopiere den Code in ein öffentliches Modul (Datenbankfenster - Module)
Code:
Option Compare Database
Option Explicit

Sub BeispielImportierenUndLinken()
' Testweiser Import und Verknüpfung mit einer Exceldatei
' erstes Tabellenblatt einer Kopie der Exceldatei wird auf Text formatiert
' http://support.microsoft.com/default.aspx?scid=kb;de;208414
    Const ImportDatNam = "C:\tar\mytest.xls"   ' umzuwendende Exceldatei
    Const TmpImportDatNam = _
                      "C:\temp\importtemp.xls" ' (Temporär) erzeugte Exceldatei
    Const TmpLinkDatNam = _
                      "C:\temp\linktemp.xls"   ' (Temporär) erzeugte Exceldatei
    Const ACImportTabName = "ACImportTab"      ' Name der importierten Accesstabelle
    Const ACLinkTabName = "ACLinkTab"          ' Name der verlinkten Accesstabelle
    Const ExcelTabName = "Tabelle3"            ' Exceltabellenblatt
   
    ' -------------------
    ' 0) evtl. Löschen der schon vorhandenen (alten) Acesstabelle
    On Error Resume Next
    DoCmd.DeleteObject acTable, ACImportTabName
    DoCmd.DeleteObject acTable, ACLinkTabName
    On Error GoTo 0
    ' -------------------
    ' 1) Kopieren der Testdatei
    FileCopy ImportDatNam, TmpImportDatNam
    FileCopy ImportDatNam, TmpLinkDatNam
    ' -------------------
    ' 2) Umwandlung der Kopie
    ' Beispiel 1:  10 Zeilen umwandeln
    ExcelDatAlsTextFormatieren TmpImportDatNam, ExcelTabName, 10
    ' Beispiel 2:  alle Zeilen umwandeln
    ExcelDatAlsTextFormatieren TmpLinkDatNam, ExcelTabName
    ' -------------------
    ' 3) Importieren/Verknüpfen der Exceltabelle
    ' Beispiel 1: Importieren der Kopie
    DoCmd.TransferSpreadsheet acImport, , ACImportTabName, TmpImportDatNam, _
                              True, ExcelTabName & "!"
'   Kill TmpDatNam ' löschen der Excelkopie
    ' Beispiel 2: Verknüpfen der Kopie
    DoCmd.TransferSpreadsheet acLink, , ACLinkTabName, TmpLinkDatNam, True, _
                              ExcelTabName & "!"
End Sub

Sub ExcelDatAlsTextFormatieren(ExcelFullDatNam As String, _
              Optional TabellenBlattname As String, _
              Optional AnzahlKonvertierungZeilen As Long = 0)
' Excel 2002 und 2007 getestet
' wird kein Tabellenblattname angegeben, wird das Blatt verändert, was beim Öffnen
' aktuell ist
' wird die Datei importiert, reicht es (normalerweise) die ersten Zeilen umzuwandeln
    Dim xlApp   As Object ' Excel.Application
    Dim xlBook  As Object ' Excel.Workbook
    Dim xlSheet As Object ' Excel.sheet
    Dim xlCell  As Object ' Excel.cells
   
    ' Excel starten
    On Error Resume Next
    Set xlApp = GetObject(, "Excel.Application")
    If xlApp Is Nothing Then Set xlApp = CreateObject("Excel.Application")
    On Error GoTo 0
    ' Exceltabellenblatt setzen
    Set xlBook = xlApp.Workbooks.Open(ExcelFullDatNam)
    If Len(TabellenBlattname) <> 0 Then
        Set xlSheet = xlBook.sheets(TabellenBlattname)
      Else
        Set xlSheet = xlBook.ActiveSheet
    End If
    xlApp.Visible = True ' falls man was sehen will
    xlSheet.Activate     ' falls man was sehen will
    ' Excel Zellen bearbeiten
    With xlSheet
        For Each xlCell In xlSheet.UsedRange
            xlCell.NumberFormat = "@"
            xlCell.Value = " " & xlCell.Value
            xlCell.Value = Right(xlCell.Value, Len(xlCell.Value) - 1)
            ' Ausstieg, wenn  Maximale Zeilenanzahl erreicht
            If AnzahlKonvertierungZeilen <> 0 Then _
              If xlCell.row = AnzahlKonvertierungZeilen Then Exit For
        Next xlCell
        Debug.Print "In Datei:'" & ExcelFullDatNam & "' Tabelle:'" & _
                    .Name & "' bearbeitet!"
    End With
    ' Speichern und aufräumen
    xlBook.Save
    xlBook.Close
    xlApp.Quit
    Set xlSheet = Nothing
    Set xlBook = Nothing
    Set xlApp = Nothing
End Sub
(Code: edit 25.03.2007)

Eine weitere Lösungsmöglichkeit wäre der Einsatz von sauber formatierten/gefüllten Dummyzeilen in der XL-Tabelle, die nach dem Import gelöscht werden können.
von Andrea
Zitat:
Habe . . . mein "Überlauf in numerischem Feld"-Problem mit einem Trick gelöst. Bis jetzt funktioniert es ganz gut, ich hoffe nur es holt mich nicht irgendwann wieder ein
Was ich gemacht habe ... Habe eine Zeile in die Exceltabelle eingefügt, in der in jeder Spalte ein Wert mit genau dem Datentyp drinsteht, wie ich es brauche. Also bei PLZ habe ich reingeschrieben D-12345, das ist eindeutig ein String und das sieht Access bisher zum Glück genauso
Dann habe ich diese Zeile ausgeblendet, damit meine Kollegen sie nicht versehentlich löschen. Access liest sie trotzdem jedes Mal mit und weis dadurch welche Datentypen ich will.

_________________
MfG, Jörg Very Happy

Bitte das Feedback nicht vergessen.


Zuletzt bearbeitet von JörgG am 25. März 2007, 15:42, insgesamt einmal bearbeitet
Willi Wipp
Moderator


Verfasst am:
24. März 2007, 16:51
Rufname:
Wohnort: Raum Wiesbaden


Re: Fehler beim Import von Excel-Tabellen - Re: Fehler beim Import von Excel-Tabellen

Nach oben
       Version: (keine Angabe möglich)

Hi JörgG,

schoene Zusammenfassung des Themas!
Nachfragen bitte im Thema Fehler beim Import von Excel-Tabellen {Nachgefragt} stellen!

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)


Zuletzt bearbeitet von Willi Wipp am 20. Jun 2007, 23:32, insgesamt einmal bearbeitet
Nouba
nicht ganz unwissend :)


Verfasst am:
25. März 2007, 00:45
Rufname:
Wohnort: Berlin

AW: Fehler beim Import von Excel-Tabellen - AW: Fehler beim Import von Excel-Tabellen

Nach oben
       Version: (keine Angabe möglich)

Hallo,

ich kann noch anmerken, dass der Registry-Schlüssel TypeGuessRows laut Microsoft zwischen 0 und 16 liegen sollte - ich weiß auch nicht, wie ich auf die 19 gekommen bin. Bei einer Wertzuweisung von 0 soll der komplette Tabellenbereich gescannt werden, was je nach Tabellengröße viel Zeit in Anspruch nehmen kann. Als Standardwert wird die 8 vorgegeben.

_________________
mit freundlichen Grüssen Nouba

Wenn beim Lesen eines Beitrags der Eindruck entsteht, dass sich der Fragesteller wenig Mühe gegeben hat, so erhöht das nicht unbedingt die Motivation, eine Antwort zu verfassen.
MissPh!
Office-VBA-Programmiererin


Verfasst am:
14. Feb 2011, 17:19
Rufname:
Wohnort: NRW

AW: Fehler beim Import von Excel-Tabellen - AW: Fehler beim Import von Excel-Tabellen

Nach oben
       Version: (keine Angabe möglich)

Nur zur Ergänzung:
Zitat:
ich weiß auch nicht, wie ich auf die 19 gekommen bin
unter Jet 3.5 steht der Standardwert auf 8, unter Jet 4.0 steht er auf 25 (Hex 19) - vielleicht kommt es daher. Wink
_________________
Gruß MissPh!
Sonneschein
AC97-Entwicklung, AC2003-2010 nur Test


Verfasst am:
14. Okt 2011, 16:28
Rufname: Mike


AW: Fehler beim Import von Excel-Tabellen - AW: Fehler beim Import von Excel-Tabellen

Nach oben
       Version: (keine Angabe möglich)

Hallo,

in Ergänzung habe ich in einem anderen Beitrag noch folgende sichere Variante gefunden:
Code:
' statt
'        xlCell.Value = " " & xlCell.Value
        .xlCell.FormulaR1C1 = "'" & .xlCell.FormulaR1C1

Außerdem kann ab AC2007 beim manuellen Import der Datentyp der Spalte selbst festgelegt werden. Leider entspricht dies aber nicht der Funktionalität "Importspezifikation" bei der Nutzung von Textdateien.
Das heißt ein automatisierter Import mit diesen Einstellungen und variablen Exceldateinamen ist n.m.W. nicht möglich.

_________________
Grüße
Mike
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Wo ist der Fehler???? 1 RobBase 586 16. Aug 2006, 10:09
viny Wo ist der Fehler????
Keine neuen Beiträge Access Tabellen & Abfragen: Bei Import aus "." mach "#" warum?? 3 huk 597 03. Aug 2006, 12:25
Willi Wipp Bei Import aus "." mach "#" warum??
Keine neuen Beiträge Access Tabellen & Abfragen: Fehler in der selectanweisung Hilfe!!!!!!!!!!!!!! 6 vbatobi 891 18. Apr 2006, 13:24
chris1337 Fehler in der selectanweisung Hilfe!!!!!!!!!!!!!!
Keine neuen Beiträge Access Tabellen & Abfragen: Fehler in Löschabfrage!! 4 BorisDieKlinge 1623 12. Apr 2006, 13:17
BorisDieKlinge Fehler in Löschabfrage!!
Keine neuen Beiträge Access Tabellen & Abfragen: Datentypen beim Import aus Exceldatei 1 Gast1 812 21. März 2006, 15:43
stpimi Datentypen beim Import aus Exceldatei
Keine neuen Beiträge Access Tabellen & Abfragen: Access abfrage mittels SQL gibt Fehler... 1 Doris72 692 27. Feb 2006, 20:44
jens05 Access abfrage mittels SQL gibt Fehler...
Keine neuen Beiträge Access Tabellen & Abfragen: Übergabe eine Variable verursacht Fehler 2 blicki 714 16. Feb 2006, 10:42
blicki Übergabe eine Variable verursacht Fehler
Keine neuen Beiträge Access Tabellen & Abfragen: Fehler 2001: Sie haben die vorherige Operation abgebrochen 11 lara123 8387 16. Nov 2005, 12:17
Willi Wipp Fehler 2001: Sie haben die vorherige Operation abgebrochen
Keine neuen Beiträge Access Tabellen & Abfragen: wo ist der fehler (sql) ? 4 Gast 913 26. Okt 2005, 17:59
jens05 wo ist der fehler (sql) ?
Keine neuen Beiträge Access Tabellen & Abfragen: Fehler beim Abfrage Gruppieren 0 hafisch 900 22. Sep 2005, 12:39
hafisch Fehler beim Abfrage Gruppieren
Keine neuen Beiträge Access Tabellen & Abfragen: Excel-tabellen Verknüpfen 1 hans-georg 790 30. Aug 2005, 12:25
Stefanowitsch Excel-tabellen Verknüpfen
Keine neuen Beiträge Access Tabellen & Abfragen: Reservierter Fehler (-1517); es gibt keine Meldung für ... 1 Matthiasmms 2719 27. Apr 2005, 19:08
romu Reservierter Fehler (-1517); es gibt keine Meldung für ...
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Microsoft Excel Tricks