Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Access2000 Lieferscheindaten aus ASCII Datei importieren

Mitglied: Rashtamoon

Rashtamoon (Level 1) - Jetzt verbinden

20.04.2006, aktualisiert 21.04.2006, 5002 Aufrufe, 9 Kommentare

Hi!

Ich möchte Lieferscheindaten aus eine ACII Datei in Access importieren.

Die Ursprungsdateien haben feste Feldlängen wobei erst die Kopfdaten (Datum, LS-Nr., Bestellnr. etc.) und dann 1:N die Detaildaten beinhaltet sind.

Die Kopfdaten sollen in eine Tabelle und die Detaildaten in eine zweite Tabelle importiert werden.

Wie stelle ich das an?

Benötige ich da 2 Importdefinitionen? Wenn ja, wie sage ich der 1. Routine, daß sich nach den Kopfdaten stoppen und wie der 2. Routine, daß sie erst an Stelle xx (nach Ende der Kopfdaten) mit dem einlesen beginnen darf?

Momentan steh ich ganz schön auf dem Schlauch, vielleicht könnt ihr mir helfen.

ciao
Mitglied: verkehrsberuhigt
20.04.2006 um 16:37 Uhr
Die Ursprungsdateien haben feste Feldlängen wobei erst die Kopfdaten
(Datum, LS-Nr., Bestellnr. etc.) und dann 1:N die Detaildaten beinhaltet sind.

Wenn Du von festen Feldlängen sprichst muss man davon ausgehen, dass bei den Detaildaten die Kopfdaten jeweils wiederholt werden. Dann ist das doch kein wirkliches Problem. Oder meinst Du, dass die Kopfdaten des ersten Lieferscheins angezeigt werden, danach dessen Detaildaten und dann wieder die Kopfdaten des zweiten Lieferscheins usw.? Dann hast Du keine festen Feldbreiten und ACCESS wird - zumindest ohne VBA - nie wissen/lernen, wann die Kopfdaten zu Ende sind und die Detaildaten beginnen. Vielleicht kannst Du einen Auszug posten?
Bitte warten ..
Mitglied: Rashtamoon
20.04.2006 um 16:50 Uhr
Hi!

Oder meinst Du, dass die Kopfdaten
des ersten Lieferscheins angezeigt werden,
danach dessen Detaildaten und dann wieder
die Kopfdaten des zweiten Lieferscheins
usw.?

Genau so meine ich das. Jeder Lieferschein kann 1:N Detailsätze enthalten.


Dann hast Du keine festen Feldbreiten
und ACCESS wird - zumindest ohne VBA - nie
wissen/lernen, wann die Kopfdaten zu Ende
sind und die Detaildaten beginnen.

Verstehe ich nicht, warum habe ich deshalb keine festen Feldlängen?

Ich müsste lediglich wissen, wie man Access beibringt mittels einer hinterlegten Importdefinition eine Datei bis zur X. Stelle zu lesen und ab dieser Stelle mit einer anderen Importdefinition weiterzumachen.

Bei EOF muss die 2. dann aufhören.

ciao
Bitte warten ..
Mitglied: verkehrsberuhigt
20.04.2006 um 18:59 Uhr
Oder meinst Du, dass die Kopfdaten des ersten Lieferscheins angezeigt werden, danach dessen Detaildaten und dann wieder die Kopfdaten des 2ten Lieferscheins usw.?
> Genau so meine ich das. Jeder Lieferschein kann 1:N Detailsätze enthalten.

Aber fangen nach den Detailsätzen des ersten Lieferscheins wirklich wieder die Kopfdaten des zweiten Lieferscheins an? Falls ja gibt es keine Lösung.

Ich müsste lediglich wissen, wie man Access beibringt mittels einer hinterlegten Importdefinition eine Datei bis zur X. Stelle zu lesen und ab dieser Stelle mit einer anderen Importdefinition weiterzumachen. Bei EOF muss die 2. dann aufhören.

Das hört sich allerdings wieder so an, als wenn erst alle Kopfdaten aller Lieferscheine in der Datei stehen und daran anschliessend alle Detaildatensätze aller Lieferscheine. Die in Access angebotenen Importfunktionen helfen Dir nicht weiter. Du kannst weder deren Geltungsbereich auf Datensätze beschränken noch kannst Du innerhalb eines Imports die Definition wechseln.

Ich denke egal wie: Deine Lösung heisst VBA.
Bitte warten ..
Mitglied: olafsteffan
20.04.2006 um 23:27 Uhr
Hallo,

ich kenne das Problem mit unterschiedlichen Satzlängen in Textdateien - allerdings bei SQL-Server. Ich habe das Problem so gelöst, dass ich die Textdatei zuerst komplett in eine Tabelle mit nur einer Spalte importiere (Trennzeichen z.B. TAB, das nicht enthalten ist - Zeilenende CR+LF). Anschließend wird eine oder werden mehrere Tabellen über entsprechendes SQL Befehle befüllt (substring() bzw. bei Access mid()). Das geht schneller und eleganter als ein großer Programmieraufwand.
Bei Access hast du natürlich das Problem, dass ein Feld nur max. 255 Zeichen breit sein kann. Wenn das zu wenig ist, dann definiere einfach mehrere Felder von dieser Breite und füge sie dann notfalls wieder teilweise zusammen.
Ich hoffe, der Tipp war zumindest eine Anregung für neue Ideen.

Gruß
Olaf
Bitte warten ..
Mitglied: Biber
21.04.2006 um 09:19 Uhr
...ich verstehe das Szenario anders...
Nach meinem Verständnis sind in der Importdatei 2 Satzarten mit jeweils fester Feldlänge/Satzlänge enthalten.
Ist dem so, könnte es einfacher sein, die Quelldaten vorher auf CMD-Ebene nach Satzart "Kopfdaten" und Satzart "Detaildaten" zu trennen - garnatiert ist irgendwo die Information bzgl. Satzart im Satzformat enthalten.
Das dürfte dann - mit zwei Import-Definionen in zwei Tabellen schneller und wartbarer laufen als Olafs (auch funktionierender) Ansatz.

Gruß
Biber
Bitte warten ..
Mitglied: Rashtamoon
21.04.2006 um 11:27 Uhr
Hallo zusammen,

vielen Dank für eure Hilfe.

Biber hat das Thema richtig formuliert, sorry für meine umständliche Darstellung.

Es handelt sich um 2 Satzarten (1 mal Kopfsatz, N mal Detailsatz) mit festen Feld/Satzlängen und in der Datensatzdefinition ist auch jeweils ein Qualifier definiert.

Ich muss mir jetzt mal die etwas unorthodoxe Datensatzdefinition reinziehen und herausfinden, ob der Qualifier auch eindeutig ist (Ich hab zwar eine Felddefinitionsliste die enthält aber keine Beschreibung der Inhalte (Zähler etc.)).

Wenn dem so ist, wie steuert man die Importroutinen dann, daß nur die Datensätze mit dem entsprechenden Qualifier integriert werden?

ciao
Rashtamoon
Bitte warten ..
Mitglied: Rashtamoon
21.04.2006 um 11:45 Uhr
Hallo noch mal,

Lt. Definition hab ich im Kopfsatz als Qualifier "LIEF" und in den Detailsätzen eine laufende, Nummer (1, 2, 3 etc.) jeweils auf Position 1.

Also zumindest den Kopfsatz kann ich eindeutig erkennen zuordnen.

Wie bring ich das Access jetzt bei?

ciao
Bitte warten ..
Mitglied: Rashtamoon
21.04.2006 um 13:43 Uhr
Hi nochmal,

ich bin ein Stück weiter:

Ich erstelle 2 Importroutinen, die erste liest nur die Kopfdaten ein und in der zweiten markiere ich die Kopfdaten mit "überspringen".

Funktioniert so ganz gut, leider wird halt nur der erste Detaildatensatz eingelesen, dann ist Schluss mit lustig....

Wie bringe ich das Ganze jetzt dazu weiterzumachen wenn noch weitere Detaildatensätze da sind?

Ich stelle mir das so vor, daß man abfragt ob noch Datensätze da sind (EOF oder so) und wenn ja die Spezifikation manipuliert (Startpos etc. hochsetzen) und dann noch mal laufen lässt.

Oder läuft das anders?

Wenn mir jetzt bitte noch jemand sagen kann, wie man gespeicherte Importspezifikationen im Nahhinein noch ändern kann wäre mir sehr geholfen.

Jedesmal wenn ich eine gespeicherte ändere und neu speichern will verwirft er mir meine Änderungen.

Vielen Dank noch mal für eure Unterstützung.

ciao
Bitte warten ..
Mitglied: Rashtamoon
21.04.2006 um 16:38 Uhr
Hallo Jürgen

Ich habe mich offensichtlich zu unklar ausgedrückt.

Pro Lieferschein wird eine Datei übertragen.

Die Lieferscheine haben eine unterschiedliche Anzahl an Positionen (Detaildaten).

Ich bin jetzt schon soweit, daß ich den Kopfsatz und die erste Lieferscheinposition importieren kann.

Mein Problem ist momentan das einlesen von eventuell vorhandenen weiteren Positionen.

Ich habe 2 Importroutingen geschrieben, die erste für die Kopfdaten und die zweite für die Detaildaten welche erst an Stelle 624 (nach den Kopfdaten) anfängt zu lesen.

Funktioniert alles.

Nur, weitere, eventuell vorhandene Detailsätze werden nicht integriert weil in der Importspezifikation ja ganz klar die Startposition eingetragen wird welche dann nicht mehr stimmt.

Ich denke mir, daß man die Importspezifikation in VBA in einer Schleife bis zum EOF laufen lassen muss und die Startpositionen jeweils um 624 hochzählt.

Aber wie das gehen soll ist mir im Moment leider völlig schleierhaft.

Kann man Importspezifikationen aus VBA manipulieren oder muss mann das ganze dann in VBA neu schreiben?

Gibt's da irgendwo Beispiele dafür? Ich würd mich da schon reinpfriemeln.

ciao & schönes Wochennede
Bitte warten ..
Ähnliche Inhalte
VB for Applications
csv Dateien als Text importieren
gelöst Frage von BacchidaVB for Applications7 Kommentare

Hallo :) ich habe ein Makro geschrieben, das .csv Dateien importiert. Nun habe ich folgendes Problem: In den importierten ...

Exchange Server
Exchange importieren von iCals Dateien
Frage von SuperSonicExchange Server1 Kommentar

Hallo zusammen, ist es möglich eine iCals Datei im Exchange zu importieren. Aktuelles Problem unsere Mitarbeiter wünschen in ihrem ...

Batch & Shell
CSV-Datei nach Excel importieren
Frage von mrvfbnummer2Batch & Shell5 Kommentare

Hallo Leute, ich möchte CSV-Dateien in eine Excel-Datei mit PowerSell importieren. Ich habe bereits viel ausprobiert aber habe noch ...

Exchange Server
Importieren einer OST-Datei in Outlook
gelöst Frage von kinnisimExchange Server7 Kommentare

Dringende Requisite von OST in PST umwandeln Anwendung zu exportieren OST-Datei auf Outlook 2016 für meine Windows 8, Ich ...

Neue Wissensbeiträge
Datenschutz

Die Datenkrake Google verlängert ihr Arme mal wieder ein wenig, automatische Anmeldung

Tipp von magicteddy vor 8 MinutenDatenschutz

Benutzer mit einem Google Account und gespeicherten Zugangsdaten werden von chrome 69 automatisch bei Google angemeldet, natürlich alles zum ...

Verschlüsselung & Zertifikate
Meine Wissenssammlung zu Bitlocker
Erfahrungsbericht von DerWoWusste vor 1 TagVerschlüsselung & Zertifikate3 Kommentare

Die Motivation für diesen Beitrag waren die vielen Posts rund um dieses Thema, die deutlich machen, wie viele Einzelaspekte ...

E-Mail
Email-Apps und Verhalten bei Pop3
Erfahrungsbericht von kfranzk vor 3 TagenE-Mail11 Kommentare

Hallo Freunde, da mir mein diesbezüglicher Faden als gelöst markiert wurde, muss ich hier neu aufsetzen. Ich arbeite bewusst ...

Hyper-V

Optimiertes Ubuntu per Microsoft Hyper-V-Schnellerstellung verfügbar

Anleitung von Frank vor 3 TagenHyper-V1 Kommentar

Für Microsofts Virtualisierungssoftware Hyper-V ist ab sofort auch ein optimiertes Ubuntu 18.04.1 LTS verfügbar. In der "Hyper-V-Schnellerstellung" App, die ...

Heiß diskutierte Inhalte
Hardware
Sophos SG135 - Routing
gelöst Frage von Xaero1982Hardware22 Kommentare

Moin Zusammen, ich ersetze gerade nen alten Cisco DualWAN Router durch eine SG 135. Ich muss bestimmte Ziele über ...

Datenschutz
Gilt ein Ransomware-Befall als Datenpanne nach DSGVO?
Frage von MOS6581Datenschutz22 Kommentare

Moin Kollegen, wenn sich jemand Ransomware einfängt und dadurch bspw. Kundendaten verschlüsselt werden; gilt dies dann als meldepflichtige Datenpanne ...

Netzwerke
Hilfe bei der Planung meines Heimnetzwerks
Frage von DHD082Netzwerke15 Kommentare

Hallo zusammen, wir bauen gerade ein Einfamilienhaus, welches ich mit einem Heimnetzwerk ausstatten möchte. Da ich zwar auch in ...

Windows 7
Mit gpedit gesetzte Richtlinien in rsop.msc nicht definiert und ausgegraut
Frage von sampleUserWindows 714 Kommentare

Hallo zusammen, anfangs verweise ich fairerweise daruf dass ich dieses Thema bereits im Forum angeschnitten habe, nachdem ich hier ...