Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Importspezifikation greift nicht unter Access 2010

Begonnen von liederstern, Juni 13, 2012, 08:59:56

⏪ vorheriges - nächstes ⏩

liederstern

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
Viele Grüße,
Nicole

DF6GL

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

liederstern

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

Viele Grüße,
Nicole

DF6GL

Hallo,


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

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


liederstern

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!
Viele Grüße,
Nicole

liederstern

#5
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.  :(
Viele Grüße,
Nicole

DF6GL

Hallo,

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


DoCmd.TransferText acImportFixed, "Importspezifikation_HS", "DATENBASIS_STATISTIK", Dateipfad

liederstern

Franz!
Ich schicke Dir im Geiste mal einen Kasten Pralinen!
Das war's - das "fixed".
Vielen, vielen Dank!
Viele Grüße,
Nicole