Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: leli am April 01, 2014, 08:36:38

Titel: Import ohne führende Null
Beitrag von: leli am April 01, 2014, 08:36:38
Hallo alle zusammen,
ich habe folgendes Problem: Ich habe unsere Datenbank aus Access 2003 in 2010 konvertiert.
In die Datenbank importieren wir Textdateien (aus SAP ) über Importspezifikationen in bestehende Tabellen, aus denen dann verschiedene Auswertungen gezogen werden. Die Textdatei enthält zwei Felder die führende Nullen vor den Zahlen als Platzhalter haben ( die Daten in der Textdatei sind über Tabulatoren getrennt ). Die Importspez. hat diese Felder im Datentyp als LongInteger definiert. Beim ausführen des Imports in Access 2003 werden die Nullen für diese Felder nicht übernommen.  Jedoch in Access 2010 übernimmt er mir die Nullen in die bestehende Tabelle. Das Problem konnte ich ein bisschen lokalieseren; und zwar sind die besagten Felder in der Tabelle, in die importiert wird, als Datentyp "Text" definiert. Wenn ich diese vor dem Import auf "Zahl" setze, erfolgt der Import ohne führede Nullen wie gewünscht. Ich muss aber dann bei der Tabelle den Datentyp wieder auf "Text" zurück setzen sonst funkt. die Auswertungen nicht. Kennt jemand einen besseren Weg um diese führende Nullen nicht zu importieren.

Im Internet konnte ich auch nichts finden.

Danke schonmal vorab für eure Hilfe.
Titel: Re: Import ohne führende Null
Beitrag von: DF6GL am April 01, 2014, 09:03:58
Hallo,

definiere halt auch beim A2010-Import die Importspezifikation entspr.....
Titel: Re: Import ohne führende Null
Beitrag von: leli am April 01, 2014, 10:00:08
Hallo,
die Importspez. ist gleich definiert, sowohl in Access2003 als auch in Access2010.
Das habe ich bereits überprüft, nur das es in der Access 2003  wie gewünscht ohne die
Nullen importiert und in Access 2010 mit den führenden Nullen.  :-\
Wie gesagt ich habe die Datenbank hoch konvertiert, und so auch die Importspez., alles andere
fkt. Reibungslos nur der Import in eine bestehen Tabelle der Datenbank (Daten werden angehängt an eine Tabelle in der Datenbank),
weil der Datentyp der Tabell wie gesagt als "Text" definiert ist. Aber warum fkt. das in Access 2003 und in Access 2010 nicht???
Auch habe ich schon versucht die Importspez. nochmal neu anzulegen, nur das gleiche Ergebnis.  :-\

VG
Titel: Re: Import ohne führende Null
Beitrag von: DF6GL am April 01, 2014, 13:04:31
Hallo,

ich versteh die Situation nicht ganz...


Hast Du schon eine Tabelle, in die importiert werden soll?
Welchen Datentyp hat das entspr. Tabellenfeld und warum?
Wenn TEXT und es soll eine Zahl(!, nicht Ziffern) importiert werden, liegt ein Konstruktionsfehler vor.

Wenn das Tabellenfeld den Datentyp "Text" besitzt und es soll eine Ziffernfolge mit führenden Nullen (keine Zahl!) importiert werden, so kann das in der Importspezifikation definiert werden. (Neu anlegen, nicht konvertieren)

Titel: Re: Import ohne führende Null
Beitrag von: leli am April 02, 2014, 11:03:21
Hallo DF6GL,
sorry, aber ich bin ein ACCESS-Neuling und manche Dinge sind für mich nicht immer ganz klar.

Ja ich importiere in eine bereits in der Datenbank vorhandene Tabelle (also füge Datensätze über Import an).  Und ja das Tabellenfeld ist mit Datentyp "Text" definiert. Muss so auch bleiben, da aus dieser Tabelle weitere Auswertungen (über Verknüpfungen) gezogen werden. Denn Datentyp im Tabellenfeld auf "Zahl" gesetzt, habe ich auch schon ausprobiert,dann klappt es mit dem Import der Textdatei ohne die führenden Nullen jedoch funktion. die Auswertungen dann nicht.

Leider verstehe ich nicht, was du mir mit Zahl und Ziffenfolge sagen willst. Könntest du das bitte genauer beschreiben.

Also meine Textdatei ist wie folgt aufgebaut:

Feld1         Feld2   F3      F4  F5
00001234   23,89   23,8   0   0

(Feld1 hat die führenden Nullen, die einzelnen Felder sind über Tabulatoren getrennt )

Die dazugehörige Importsezifikation hat für Feld1
den Datentyp "LongInteger" definiert.
Die Tabelle in die impotiert wird, hat für Feld1 den Datentyp "Text" definiert.
Wenn ich den Import durchführe, nimmt er die
führenden Nullen des Feld1 mit. Ich verstehe ja auf warum, weil ja das Feld1 in der Tabelle als "Text" definiert ist.
Mein Ziel ist es aber im Tabellefeld 1 die Nullen nicht mit zu übernehmen, ohne den Datentyp dieses Feldes ändern zu müssen.
(Was für mich unlogisch ist,  dass der Import genauso mit den gleichen Einstellungen/Definitionen  in Access 2003 ohne die übernahme der Nullen fukt. hat. Es muss sich doch da was bei Access2010 geändert haben)


Vielleicht noch zur Info; beim Feld1 sind es immer die
ersten 4 Positionen mit den führende Nullen, ich brauche nur die letzten 4 Zahlen vom Feld1. Muss ich die Importspez. vielleicht anders definieren, aber wie genau?
An "feste Breiten" bei der Importspezif. habe ich auch schon gedacht, aber ich habe dann ein Problem bei den darauf folgenden Felder, da diese über Tabulatoren getrennt sind. Oder habe ich einen anderen Denkfehler?

Danke und
viele Grüße
leli
Titel: Re: Import ohne führende Null
Beitrag von: DF6GL am April 02, 2014, 14:47:37
Hallo,

die führenden Nullen beim Import in ein Tabellenfeld (-spalte) mit Datentyp Text sind über die Importspezifikation wohl nicht zu eliminieren..

Führe nach dem Import eine Aktualisierungsabfrage aus, die die führenden Nullen im entspr. Feld in der gesamten Tabelle abschneidet...

PS:

0001234  => Ziffernfolge (keine "Zahl")  == Datentyp Text
1234 =>  Zahl (könnte aber auch als Ziffernfolge d. h.  TEXT interpretiert werden) == Datentyp (Long) Integer