WinFuture-Forum.de: Access: führende Nullen bei CSV-Export fehlen - WinFuture-Forum.de

Zum Inhalt wechseln

  • 3 Seiten +
  • 1
  • 2
  • 3

Access: führende Nullen bei CSV-Export fehlen

#16 Mitglied ist offline   Holger_N 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.111
  • Beigetreten: 11. September 10
  • Reputation: 458
  • Geschlecht:Männlich

geschrieben 17. November 2016 - 14:18

Ich glaube das geht gerade aneinander vorbei.

Du sollst nicht mit 0000001 anfangen und dann TARG2017-1 als Präfix davorsetzen (dann passiert das nämlich) sondern schon als Zahl statt mit der 1 mit 10000000 anfangen und da dann TARG2017- vorsetzen.

Im Ergebnis wären beide Ausgaben TARG2017-10000000 bzw. TARG2017-10000001, aber wenn die Zahlen erst bei 10000000 starten, gibt es keine führenden Nullen mehr.
Bauernregel: Regnets mächtig im April, passiert irgendwas, was sich auf April reimt.
0

Anzeige



#17 Mitglied ist offline   SuperWolf 

  • Gruppe: aktive Mitglieder
  • Beiträge: 461
  • Beigetreten: 11. September 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Hockenheim

geschrieben 17. November 2016 - 14:21

Im Export wird das Ergebnis so eben nicht angezeigt....
In der Zeitung von heute werden morgen Fische eingepackt!
0

#18 Mitglied ist offline   Gispelmob 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.591
  • Beigetreten: 14. August 15
  • Reputation: 392

geschrieben 17. November 2016 - 14:38

Wenn eine Zahl 10000001 als 1 exportiert wird, gibt es ein ernstes Problem^^

Welchen Datentyp hat das Feld in dem die ID steht?
Mit welcher Länge ist der Datentype definiert?

Dieser Beitrag wurde von Gispelmob bearbeitet: 17. November 2016 - 14:38

AMD Ryzen 9 5950X, Asus ROG Strix X570-F Gaming, 32GB Corsair DDR4-3200, Asus Geforce GTX 3060 12GB, Creative Sound Blaster AE-7, 240GB SSD, 500GB SSD, 3x 1TB SSD, Win11 Home, 4x Acer G246HL Bbid, Logitech MX518 Gaming Mouse, Logitech G440 Mousepad, Logitech K120 Keyboard, Razer Tiamat 7.1 V2 Headset, Creative Inspire 5.1 5300 Soundsystem
0

#19 Mitglied ist offline   SuperWolf 

  • Gruppe: aktive Mitglieder
  • Beiträge: 461
  • Beigetreten: 11. September 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Hockenheim

geschrieben 17. November 2016 - 14:44

Da ich die Zahlen nicht händisch eintippen möchte habe ich einen Autowert genutzt.

Es handelt sich hier um mehrere 1000 Einträge die für Migrationszwecke umgestaltet werden.
In der Zeitung von heute werden morgen Fische eingepackt!
0

#20 Mitglied ist offline   Gispelmob 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.591
  • Beigetreten: 14. August 15
  • Reputation: 392

geschrieben 17. November 2016 - 14:55

Welche Einstellungen hast du denn für Autowert gemacht?

Long Integer oder Replikations-ID?
Neue Werte als Inkrement oder als Zufall?

Nochwas.

Wohin sollen die Daten exportiert werden?
Warum ist es so schlimm wenn die führenden Nullen wegfallen?

Wenn führende Nullen nötig sind, dann werden die durch eine Formatierung der Daten bei der Ausgabe dargestellt aber nicht in der Datenbank.

Dieser Beitrag wurde von Gispelmob bearbeitet: 17. November 2016 - 15:17

AMD Ryzen 9 5950X, Asus ROG Strix X570-F Gaming, 32GB Corsair DDR4-3200, Asus Geforce GTX 3060 12GB, Creative Sound Blaster AE-7, 240GB SSD, 500GB SSD, 3x 1TB SSD, Win11 Home, 4x Acer G246HL Bbid, Logitech MX518 Gaming Mouse, Logitech G440 Mousepad, Logitech K120 Keyboard, Razer Tiamat 7.1 V2 Headset, Creative Inspire 5.1 5300 Soundsystem
0

#21 Mitglied ist offline   SuperWolf 

  • Gruppe: aktive Mitglieder
  • Beiträge: 461
  • Beigetreten: 11. September 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Hockenheim

geschrieben 17. November 2016 - 15:39

Die Daten sollen in ein HR-Cloudsystem exportiert werden, was leider noch veraltet auf CSV basiert.


Definiert habe ich es als Long Integer.

Wie definiere ich die Formatierung in der Ausgabe?

Dieser Beitrag wurde von SuperWolf bearbeitet: 17. November 2016 - 15:41

In der Zeitung von heute werden morgen Fische eingepackt!
0

#22 Mitglied ist offline   Gispelmob 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.591
  • Beigetreten: 14. August 15
  • Reputation: 392

geschrieben 17. November 2016 - 16:17

Die Definierung in der Ausgabe macht man nur wenn die Daten zB in einem Fenster angezeigt werden sollen. In einer Datenbank stehen die Daten unformatiert.

Ist es denn beim Import zwingen notwendig das die Zahlen 8 Stellen haben?
Hast du schon mal probiert einen Datensatz mit einer einstelligen ID zu importieren und wird er dann richtig übernommen?
Und ist es nicht möglich die Daten als SQL zu exportieren und dann in dem Cloudsystem zu importieren?
AMD Ryzen 9 5950X, Asus ROG Strix X570-F Gaming, 32GB Corsair DDR4-3200, Asus Geforce GTX 3060 12GB, Creative Sound Blaster AE-7, 240GB SSD, 500GB SSD, 3x 1TB SSD, Win11 Home, 4x Acer G246HL Bbid, Logitech MX518 Gaming Mouse, Logitech G440 Mousepad, Logitech K120 Keyboard, Razer Tiamat 7.1 V2 Headset, Creative Inspire 5.1 5300 Soundsystem
0

#23 Mitglied ist offline   Holger_N 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.111
  • Beigetreten: 11. September 10
  • Reputation: 458
  • Geschlecht:Männlich

geschrieben 17. November 2016 - 16:51

Ist der Sachverhalt vielleicht so, dass in der Datenbank einfach nur die Zahl »1« steht (und Folgende natürlich) und dann per Formatierung die führenden Nullen und das Präfix nur in einer Datenbankabfrage angezeigt werden? Wenn man dann die Datenbank bzw. die entsprechende Tabelle exportiert, dann kann man die Abfragen formatieren wie man will, das hätte dann gar keinen Einfluß auf den Export und würde zu dem beschriebenen Problem führen. Könnte man nicht eine Abfrage mit dieser gewünschten Formatierung machen, die alle Datensätze betrifft und das Abfrageergebnis in einer CSV exportieren statt der Tabelle?

Dieser Beitrag wurde von Holger_N bearbeitet: 17. November 2016 - 16:52

Bauernregel: Regnets mächtig im April, passiert irgendwas, was sich auf April reimt.
0

#24 Mitglied ist offline   SuperWolf 

  • Gruppe: aktive Mitglieder
  • Beiträge: 461
  • Beigetreten: 11. September 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Hockenheim

geschrieben 17. November 2016 - 17:12

Beitrag anzeigenZitat (Holger_N: 17. November 2016 - 16:51)

... Könnte man nicht eine Abfrage mit dieser gewünschten Formatierung machen, die alle Datensätze betrifft und das Abfrageergebnis in einer CSV exportieren statt der Tabelle?


Genau das dürfte das Problem lösen, habe ich aber bisher nicht hinbekommen.
In der Zeitung von heute werden morgen Fische eingepackt!
0

#25 Mitglied ist offline   Gispelmob 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.591
  • Beigetreten: 14. August 15
  • Reputation: 392

geschrieben 17. November 2016 - 17:14

Soweit ich es verstanden habe stehen die zahlen in der DB als 1, 2, 3 ... und sollen aber in der anderen DB als achtstellige Zahl importiert werden. Ob sie das müssen ist mir noch nicht ganz klar. Eventuell kann man die Zahlen auch so wie sie sind importieren und die Ziel DB macht den Rest automatisch.

Soweit ich es verstanden habe stehen die zahlen in der DB als 1, 2, 3 ... und sollen aber in der anderen DB als achtstellige Zahl importiert werden. Ob sie das müssen ist mir noch nicht ganz klar. Eventuell kann man die Zahlen auch so wie sie sind importieren und die Ziel DB macht den Rest automatisch.

Meine Frage steht immernoch ob man den Import nicht auch per SQL machen kann.

Dieser Beitrag wurde von Gispelmob bearbeitet: 17. November 2016 - 17:33

AMD Ryzen 9 5950X, Asus ROG Strix X570-F Gaming, 32GB Corsair DDR4-3200, Asus Geforce GTX 3060 12GB, Creative Sound Blaster AE-7, 240GB SSD, 500GB SSD, 3x 1TB SSD, Win11 Home, 4x Acer G246HL Bbid, Logitech MX518 Gaming Mouse, Logitech G440 Mousepad, Logitech K120 Keyboard, Razer Tiamat 7.1 V2 Headset, Creative Inspire 5.1 5300 Soundsystem
0

#26 Mitglied ist offline   Holger_N 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.111
  • Beigetreten: 11. September 10
  • Reputation: 458
  • Geschlecht:Männlich

geschrieben 17. November 2016 - 17:27

Oder man legt eine weitere Spalte in der Ausgangstabelle an und schreibt die formatierte Zeichenkette dort für den Export rein.
Bauernregel: Regnets mächtig im April, passiert irgendwas, was sich auf April reimt.
0

#27 Mitglied ist offline   Gispelmob 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.591
  • Beigetreten: 14. August 15
  • Reputation: 392

geschrieben 17. November 2016 - 17:32

bei Datensätzen um die 1000 müsste das automatisiert werden^^
AMD Ryzen 9 5950X, Asus ROG Strix X570-F Gaming, 32GB Corsair DDR4-3200, Asus Geforce GTX 3060 12GB, Creative Sound Blaster AE-7, 240GB SSD, 500GB SSD, 3x 1TB SSD, Win11 Home, 4x Acer G246HL Bbid, Logitech MX518 Gaming Mouse, Logitech G440 Mousepad, Logitech K120 Keyboard, Razer Tiamat 7.1 V2 Headset, Creative Inspire 5.1 5300 Soundsystem
0

#28 Mitglied ist offline   Holger_N 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.111
  • Beigetreten: 11. September 10
  • Reputation: 458
  • Geschlecht:Männlich

geschrieben 17. November 2016 - 17:53

Ja natürlich nicht jeden Datensatz per Hand. Ich exportiere alle ein bis zwei Wochen so 10.000 Datensätze in eine CSV und importiere dann so etwa 2/3 davon in eine andere Datenbank, da hab ich mir ein kleines Script für geschrieben. Allerdings ist es in meinem Fall eine mySQL-Datenbank und ich mache das mit PHP und da wäre das hiesige »Problem« sehr einfach zu lösen. Darum wundert mich, dass es in Access so ein Staatsakt sein soll.
Bauernregel: Regnets mächtig im April, passiert irgendwas, was sich auf April reimt.
0

#29 Mitglied ist offline   Gispelmob 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.591
  • Beigetreten: 14. August 15
  • Reputation: 392

geschrieben 17. November 2016 - 19:03

In Access kann man auch SQL Befehle nutzen. Da müsste ein SQL Export möglich sein. Hab mich nur lange nicht mehr mit dieser Murks-DB beschäftigt. Die Frage ist hier ob die Ziel DB wirklich nur CSV Import/Export kann.

Dieser Beitrag wurde von Gispelmob bearbeitet: 17. November 2016 - 19:04

AMD Ryzen 9 5950X, Asus ROG Strix X570-F Gaming, 32GB Corsair DDR4-3200, Asus Geforce GTX 3060 12GB, Creative Sound Blaster AE-7, 240GB SSD, 500GB SSD, 3x 1TB SSD, Win11 Home, 4x Acer G246HL Bbid, Logitech MX518 Gaming Mouse, Logitech G440 Mousepad, Logitech K120 Keyboard, Razer Tiamat 7.1 V2 Headset, Creative Inspire 5.1 5300 Soundsystem
0

#30 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 17. November 2016 - 19:31

Und wie so oft heißt die Lösung Powershell und da Import-Csv und Export-Csv. :imao:

Da kann man dann nämlich sowas tun:

PS C:\> cat C:\Users\ralphs\Documents\test.csv
A;B;C;
1;X;Y;
2;W;Z;

PS C:\> Import-Csv 'C:\Users\ralphs\Documents\test.csv'  -Delimiter ';' | % { # Hole alle CSV-Daten nach MS-Syntax ("Semikola-getrennte Werte" statt "Kommagetrennt")
#  X | % {...} = "for each element in X do ..." 
  $thisObj = $_; # $_ hat einen miesen Gültigkeitsbereich => anderswo ablegen
 $var = [int]$thisObj.A; # Konvertiere Wert aus Spalte A [das A ganz oben im Beispiel] nach Int und pack das nach $var
 $strg = ( 'TEST-{0}' -f $var.ToString("00000000")); # Formatiere den eben gebastelten Int in 8-stelliges Objekt und schreib TEST- davor 
 $thisObj.A = $strg; # Ergebnis ins ursprüngliche Objekt zurückschreiben...
 $thisObj  # ... und ausgeben; sonst kriegen wir nix aus der Schleife zurück
}  | ConvertTo-Csv -NoTypeInformation -Delimiter ';' # Ergebnis wieder nach CSV konvertieren und MS' Wunsch nach Semikola als Trennzeichen entsprechen; für Ausgabe in Datei stattdessen Export-Csv mit -Path 'Dateiname' verwenden
# NoTypeInformation nicht vergessen, sonst stolpern CSV-Importer über von PS' einkommentierte Typinformationen, die Du aber eh nicht brauchst
# Ausgabe der Pipeline oben, so wie sie dasteht:
"A";"B";"C"
"TEST-000001";"X";"Y"
"TEST-000002";"W";"Z"
# So würde das mit Export-Csv und demselben Parametersatz dazu (plus natürlich -Path ... ) in der bewußten CSV-Datei landen.
PS C:\>



Wenn das bei Dir andere Delimiter erfordert, das halt mit -Delimiter angeben, idealerweise als Variable, damit Import- und Export-Delimiter synchron bleiben. Ohne -Delimiter gibts Kommata als Trennzeichen, dem Standard entsprechend.
"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

Thema verteilen:


  • 3 Seiten +
  • 1
  • 2
  • 3

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0