Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: liederstern am Juni 13, 2012, 08:59:56

Titel: Importspezifikation greift nicht unter Access 2010
Beitrag von: liederstern am Juni 13, 2012, 08:59:56
Hallo Community,
hier im Hause gibt es eine Datenbank, mittels der txt-Dateien importiert und dann ausgewertet werden können.
Leider funktioniert das Ganze seit dem Umstieg von Office 2003 auf Office 2010 nicht mehr.
Mein Vorgänger hat die Datei schlichtweg über ein Makro und die darin enthaltene Importfunktion importieren lassen. Diesen Befehl gibt es ja nun aber nicht mehr und ich habe im Internet für mich verwirrende Angaben gefunden, wie es denn nun richtig geht.
Weg 1 wäre für mich, ich bekomme den Hinweis, welcher Befehl richtig ist, und Weg 2, ich bekomme einen Tipp, was an  meiner VBA-Programmierung falsch ist.
Bei einem händischen Import mit Zugriff auf die Importspezifikation funktioniert alles, nur wenn ich den VBA-Code durchlaufen lasse, importiert er nur Daten in die erste Spalte (2 Zeichen) und schneidet die verbliebenen 200 Zeichen ab und wirft diese in einer "..Importfehler.."-Tabelle aus.
Wer kann mir einen Tipp geben, wie ich weitermachen kann?
Vielen Dank schon einmal!

Private Sub Import_Click()

On Error GoTo Import_Err

    Dim fd
    Dim Dateipfad As String
    Dim gewähltedatei As Variant
   
    DoCmd.SetWarnings False
    DoCmd.OpenQuery "Import_DB_löschen", acViewNormal, acEdit
    Beep
    MsgBox "Bitte Import-Assistenten verwenden - TXT-Datei auswählen, Spezifikation angeben und an DATENBASIS_STATISTIK anfügen!", vbExclamation, ""
   
    Set fd = Application.FileDialog(msoFileDialogFilePicker) 'FileDialog starten
   
        With fd
            .AllowMultiSelect = False
            .Show
            Dateipfad = gewähltedatei
        End With
       
        For Each gewähltedatei In fd.SelectedItems
            Dateipfad = gewähltedatei
        Next gewähltedatei

    DoCmd.TransferText acImportDelim, "Importspezifikation_HS", "DATENBASIS_STATISTIK", Dateipfad
    Beep
    MsgBox "Import beendet.", vbInformation, ""
    DoCmd.SetWarnings True


Import_Exit:
    Exit Sub

Import_Err:
    MsgBox Error$
    Resume Import_Exit

End Sub
Titel: Re: Importspezifikation greift nicht unter Access 2010
Beitrag von: DF6GL am Juni 13, 2012, 10:19:04
Hallo,


"..importiert er nur Daten in die erste Spalte (2 Zeichen) und schneidet die verbliebenen 200 Zeichen ab .."


entweder stimmt die Importspezifikation nicht genau(!) und/oder das Zielfeld in der Tabelle hat eine zu kleine Feldgröße....

Am Code sollte u. a. dieses geändert werden:

DoCmd.SetWarnings False   
DoCmd.OpenQuery "Import_DB_löschen", acViewNormal, acEdit


ersetzen durch



Currentdb.Execute "Import_DB_löschen", dbFailOnError
Titel: Re: Importspezifikation greift nicht unter Access 2010
Beitrag von: liederstern am Juni 13, 2012, 10:54:20
Hallo Franz,

vielen Dank für Deinen Hinweis.
Ich habe noch mal eine Hardcopie gezogen.
Spalte 1 ist 2-stellig und nach dem Import mit "02" gefüllt, alle weiteren Spalten sind leer.
Wo soll da ein Fehler sein?
Ich habe an der Importspezifikation ja nichts verändert.
Hatte es schon vor dem Posten hier mit dem Speichern unter einem anderen Namen versucht, aber das brachte mich auch nicht weiter.
Hast Du noch eine andere Idee, außer die Importspezifikation einmal komplett neu zu erstellen?
An meinem restlichen Code scheint es ja nicht zu liegen, oder?

Viele Grüße
Nicole

(http://foto.arcor-online.net/palb/alben/85/3791985/3330323837383933.jpg)
Titel: Re: Importspezifikation greift nicht unter Access 2010
Beitrag von: DF6GL am Juni 13, 2012, 14:58:45
Hallo,


hast Du mal ALLE Tabellen-Felder auf korrekte Länge überprüft?

An der (relevanten) Codezeile  (Docmd.TransferText)  liegt es auch nicht.

Titel: Re: Importspezifikation greift nicht unter Access 2010
Beitrag von: liederstern am Juni 13, 2012, 15:42:51
Hallo Franz,
nein, ich gestehe, das habe ich nicht überprüft, weil beim händischen Importieren in diese Tabelle die Importspezifikation ja auch greift und die Tabelle "Datenbasis_Statistik" hinterher genau so aussieht, wie ich sie erwarte.
Daher vermutete ich den Fehler in meinem Code.
Aber sei's drum. Ich werde mich morgen dran machen und alle Felder / Feldlängen überprüfen. Melde mich dann wieder.
Danke aber schon mal!
Titel: Re: Importspezifikation greift nicht unter Access 2010
Beitrag von: liederstern am Juni 14, 2012, 09:47:39
Guten Morgen in die Runde,

also inzwischen habe ich alle Felder in der Tabelle DATENBASIS_STATISTIK überprüft.
Reihenfolge und Feldlängen stimmen exakt mit der Importspezifikation überein.
Jetzt bin ich echt überfragt, wieso die Importspezifikation beim Importieren via VBA nicht korrekt greift, der beim Import mit dem Assistenten jedoch alles funzt.
Gibt es noch Ideen, was ich tun oder probieren könnte?
Da die Importspezifikation 160 Schritte enthält, zögere ich noch diese "einfach" neu anzulegen...
___________

Zwischenzeitlich habe ich die Importspezifikation erneuert, aber das hat überhaupt nichts gebracht. Sieht alles genauso aus wie mit der alten. Spalte 1 ist gefüllt, alle weiteren sind leer.  :(
Titel: Re: Importspezifikation greift nicht unter Access 2010
Beitrag von: DF6GL am Juni 14, 2012, 11:04:37
Hallo,

vermutlich liegt es doch am Code. Es sind ja fixe Spaltenlängen definiert...


DoCmd.TransferText acImportFixed, "Importspezifikation_HS", "DATENBASIS_STATISTIK", Dateipfad
Titel: Re: Importspezifikation greift nicht unter Access 2010
Beitrag von: liederstern am Juni 14, 2012, 11:12:31
Franz!
Ich schicke Dir im Geiste mal einen Kasten Pralinen!
Das war's - das "fixed".
Vielen, vielen Dank!
Titel: Re: Importspezifikation greift nicht unter Access 2010
Beitrag von: DF6GL am Juni 14, 2012, 11:48:18
Warum nur "im Geiste" ...   ??? :o 8)