MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > Microsoft Access
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 11.07.2018, 08:38   #1
r9t4
Neuer Benutzer
Neuer Benutzer
Standard Acc2013 - Reihenfolge beim Import von Excel-Daten

Hallo zusammen,

ich habe folgendes Problem: ich muss aus Excel Dateien Daten in Access importieren. Das ganze soll mittels VBA automatisiert werden. Soweit auch kein Problem. Doch die importierten Daten haben in Access dann oftmals eine andere Reihenfolge als sie in Excel hatten. Ich benötige aber zwingend die originale Reihenfolge.

-Das sortieren in Access ist nicht möglich, da die Daten selbst keine Kennung über die Reihenfolge aufweisen.
-In Excel eine Nummerrierung hinzufügen ist auch nicht möglich, da die Excel Dateien von anderen Abteilungen verwaltet werden (wäre eine umständliche Lösung).
-Verknüpfung der Excel Datei schafft leider wieder andere Probleme:
Wird die Excel Datei von einer anderen Abteilung bearbeitet, so können unvollständige Werte übernommen werden.

So meine Frage an euch: Kennt ihr einen Lösungsansatz, wie ich die Dateien in der originalen Reihenfolge importieren kann?
Vielen Dank für eure Bemühung.

Geändert von r9t4 (11.07.2018 um 08:48 Uhr).
r9t4 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.07.2018, 09:14   #2
ebs17
MOF Guru
MOF Guru
Standard

Du könntest die DB-Tabelle um ein Reihenfolgenfeld für eine Sortierung ergänzen und dieses beim Import wunschgemäß füllen.

__________________

Ein freundliches Glück Auf!

Eberhard

Abfrageperformance ist kein Geheimnis
SQL ist leicht: {0}:{1}:{2}:{3}:{4}:{5}:{6}:{7}:{8}:{9}:{10}:{11}
Dein Dankeschön: DBWiki=>Spende
ebs17 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.07.2018, 09:26   #3
r9t4
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hallo ebs17,
ich kann dir leider nicht ganz folgen. Meinst du, dass ich die Excel Daten dann zeilenweise importiere? Denn sobald ich die Daten ja imporetiert habe, stimmt die Reihenfolge nichtmehr. An den Daten selbst kan ich leider keine Sortierung erkennen.
r9t4 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.07.2018, 09:41   #4
ebs17
MOF Guru
MOF Guru
Standard

Zitat:

Meinst du, dass ich die Excel Daten dann zeilenweise importiere?

Das wäre eine sichere Möglichkeit.

Davor könnte man sich aber dafür interessieren, WIE Du importierst. Wenn man da Eingriff nehmen wollte, sollte einem das nicht unbekannt sein (sagt mein Logikprozessor).

Beim Anfügen an eine schlichte DB-Tabelle finden eigentlich keine Umsortierungen statt, es sei denn, vorhandene Indizes, dabei primär ein eingestellter Primärschlüssel sind da am Wirken.

__________________

Ein freundliches Glück Auf!

Eberhard

Abfrageperformance ist kein Geheimnis
SQL ist leicht: {0}:{1}:{2}:{3}:{4}:{5}:{6}:{7}:{8}:{9}:{10}:{11}
Dein Dankeschön: DBWiki=>Spende
ebs17 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.07.2018, 10:28   #5
r9t4
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Da der Import automatsiert ablaufen soll, verwende ich den Befehl:
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, "Upload", "Name", False
Ich muss dazu sagen, dass ich mich erst seit kurzem mit Access auseinandersetze

Geändert von r9t4 (11.07.2018 um 10:39 Uhr).
r9t4 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.07.2018, 11:28   #6
ebs17
MOF Guru
MOF Guru
Standard

"Name" ... dass so etwas als verwendungsfähige Excelmappe erkannt wird, ist mir sehr unerklärlich => künstliche Intelligenz an falscher Stelle. Vielleicht kannst Du die umleiten auf Deinen Bedarf.

Ansonsten schreibt die Anweisung die Datensätze in die genannte Tabelle.

Wenn Du acLink statt acImport verwendest und die derart verknüpfte Tabelle öffnest, isollte die vorhandene Reihenfolge noch bestehen. Ist das so?
In der DB-Tabelle richtet sih die vorhandene Sortierung (überwiegend) nach dem vorhandenen Primärschlüssel. Fragen: Gibt es einen Primärschlüssel, und ist das etwas anderes als ein Autowertfeld?

Ein Anfügen der Inhalte der verknüpften Tabelle würde die Reihenfolge ohne Wirkung des PK nicht ändern.

Mögliche Variante: Anfügeabfrage aus der verknüpften Tabelle in die Zieltabelle, dabei ein zusätzliches Feld für die Sortierreihenfolge führen und mit einer laufenden Nummer füllen: Grundlagen - SQL ist leicht (10) - Nummerierung in Abfragen

Zeilenweises Eintragen wäre für mich der ungeliebte letzte Ausweg.

__________________

Ein freundliches Glück Auf!

Eberhard

Abfrageperformance ist kein Geheimnis
SQL ist leicht: {0}:{1}:{2}:{3}:{4}:{5}:{6}:{7}:{8}:{9}:{10}:{11}
Dein Dankeschön: DBWiki=>Spende
ebs17 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.07.2018, 14:11   #7
r9t4
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Bei mir heißt die Excelmappe natürlich nicht "Name". Ich habe den originalen Pfad nur in "Name" geändert um es hier im Forum zu posten.

Ja genau deinen Lösungsansatz habe ich bereits versucht, und die Reihenfolge bleibt erhalten. Allerdings führt das Verknüpfen zu neuen Problemen. Hierbei übernimmt Access bei einer verknüpften Datei ja sofort Änderungen in Excel. Wenn nun jemand in einer anderen Abteilung die Datei geöffnet hat und einen Datensatz unvollständig eingefügt hat, wird dieser Datensatz auch unvollständig in Access übernommen.
Einen Primärschlüssel verwende ich im Moment noch nicht. Würde dieser mir denn helfen bei der Reihenfolge beim Import?

Vielleicht muss ich meinen Ansatz nochmals überdenken. Gibt es denn eine Möglichkeit, wie in Access die Spaltennummer übernommen wird, in der der Datensatz in Excel stand?
r9t4 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.07.2018, 15:37   #8
ebs17
MOF Guru
MOF Guru
Standard

Letzte Frage: Auf direktem Wege nicht, nur über eine (aufwändigere) Programmierung.

Zitat:

Wenn nun jemand in einer anderen Abteilung die Datei geöffnet hat und einen Datensatz unvollständig eingefügt hat, wird dieser Datensatz auch unvollständig in Access übernommen.

Du glaubst, bei einem Import wäre das anders als bei einer Verknüpfung?
Ih sprach von einer kurzzeitigen Verknüpfung nur zum Zwecke des Imports.

Wenn da aber im Excelsheet unbrauchbares zeugs liegt: Was macht Ihr da und was soll das?

Zitat:

Vielleicht muss ich meinen Ansatz nochmals überdenken.

Erst sollte man die Abläiufe und Zustände überdenken, ehe man ins Code-Aktionieren geht.

__________________

Ein freundliches Glück Auf!

Eberhard

Abfrageperformance ist kein Geheimnis
SQL ist leicht: {0}:{1}:{2}:{3}:{4}:{5}:{6}:{7}:{8}:{9}:{10}:{11}
Dein Dankeschön: DBWiki=>Spende
ebs17 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.07.2018, 07:27   #9
r9t4
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Mir ging es darum, dass jemadn gerade einen neuen Datensatz in Excel einfügt, welcher zum Beispiel noch nicht vervollständigt ist. Ich bin davon ausgegangen, dass beim importieren nur die gespeicherte Datei verwendet wird. Aber du hast recht, auch beim importieren werden die Änderungen in der Excel Datei importiert wenn die Datei noch nicht gespeichert ist. Das war mir nicht bewusst.
Kannst du mir eine Hilfestellung geben, wie der Ablauf sinnvoll gestaltet werden kann?

Ausgangssituation: Es gibt verschiedene Excel Tabellen, die von externen Abteilungen aktualisiert werden (z.B. in der Mitte einen neuen Datensatz hinzufügen).
Ziel ist es, die Daten letzten Endes in einer SQL Datenbank zu speichern.
Folgende Abläufe sind hierzu notwendig:

1. Die Datein zuerst einmal zu bereinigen (teilweise fangen die Datensätze erst in Reihe 3 an, am unteren Ende sind Anmerkungen hinterlegt etc.)

2. Mehrere Dateien in einer Datenbank zusammenfassen und diese dann in SQL speichern.

Ich weiß, dass es insgesamt ein unschöner weg ist....
(Ich gehe einmal davon aus, die sauberste Lösung wäre, wenn man die Dateneingabe bereits direkt über Formulare in Access macht, also sich komplett von Excel verabschiedet?)

Geändert von r9t4 (12.07.2018 um 07:32 Uhr).
r9t4 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.07.2018, 08:53   #10
ebs17
MOF Guru
MOF Guru
Standard

Über den letzten Satz solltest Du am meisten nachdenken. Wenn Du live auf Excelmappen verknüpfen kannst, die von den Eingebern verwendet werden, dann solltest Ihr alle in einem verwendungsfähigen Netzwerk arbeiten.
Da bietet sich ein zentrales Backend (Datenbank) an, und jeder Eingeber erhält ein lokales Frontend mit Eingabemaske. Zur Verwendung braucht man nur eine lizenzkostenfreie Runtimeversion von Access.
Damit ersparst Du Dir das eigenständige Nachtragen von Daten, und die Datenbank inklusive der Eingabemasken ist strukturierter als eine Exceltabelle und lässt nicht allen Eingabemist zu, besonders, wenn man Eingaben auf Gültigkeit, Plausibilität und Vollständigkeit prüft.

Wenn dann die Eingeber darauf umgeleitet sind, kannst Du Dich mit etwas mehr Ruhe der Aufbereitung der vorhandenen Exceltabellen befassen.

Zitat:

Die Datein zuerst einmal zu bereinigen (teilweise fangen die Datensätze erst in Reihe 3 an, am unteren Ende sind Anmerkungen hinterlegt etc.)

Es kann eine riesige bis unlösbare Aufgabe sein, auf die "Kreativität" von unstrukturierten und ahnungslosen Eingebern reagieren zu müssen und deren Getanes in eine DB zu überführen. Erwarte da keinen Zauberstab, der mit Antippen eine automatisierte(!) Lösung bringt. Automatisiert heißt programmiert, und das Programm sollte alles vorgedacht haben, was die User anstellen können. Einfacher ist es, Möglichkeiten der User zu beschränken und somit auf einer bekannten verlässlichen Basis aufzubauen. Im Gegenzug könnte man Eingabehilfen und -intelligenz anbieten, so dass die Beschränkung gar nicht als Beschränkung gefühlt wird.

Beim Datenübertragen müsste man genau hinschauen und wissen, was wie in der DB gebraucht wird (Datenmodell statt nur eine Tabelle?) und was wie in den Exceltabellen vorliegt. Eine laufende Ergänzung letzterer erschwert natürlich den genannten Vorgang erheblich bzw. kann ihn insgesamt zu ad absurdum führen.

Wenn ein Neuling eine solche Aufgabe anfasst, sollte er sehr schnell und sehr lernfähig sein.

__________________

Ein freundliches Glück Auf!

Eberhard

Abfrageperformance ist kein Geheimnis
SQL ist leicht: {0}:{1}:{2}:{3}:{4}:{5}:{6}:{7}:{8}:{9}:{10}:{11}
Dein Dankeschön: DBWiki=>Spende
ebs17 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.07.2018, 15:15   #11
drambeldier
MOF Koryphäe
MOF Koryphäe
Standard

Moin,

beim Import bleiben die Daten exakt in der Reihenfolge, wie sie angeliefert werden. Der Ärger entsteht erst beim Anzeigen - das lässt sich aber umgehen, indem Du für die Tabelle einen Autowert als Schlüssel definierst. Nach dem kann dann sortiert werden.

__________________

Gruß
Ralf
drambeldier ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.07.2018, 09:45   #12
r9t4
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

das werde ich direkt mal ausprobieren,

vielen Dank für den Tipp Ralf
r9t4 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.07.2018, 16:41   #13
Beaker s.a.
MOF Koryphäe
MOF Koryphäe
Standard

Zitat:

vielen Dank für den Tipp

Den gab es schon in #2

__________________

--
S.M.I.²L.E.
Beaker s.a. ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.07.2018, 18:22   #14
drambeldier
MOF Koryphäe
MOF Koryphäe
Standard

Zitat:

Den gab es schon in #2

mit Verlaub: Ein Reihenfolgefeld, das der TE erstmal in Excel pflegen muss, erfüllt zwar den gleichen Zweck, ist aber was völlig anderes als ein Autowert-Id.

__________________

Gruß
Ralf

Geändert von drambeldier (13.07.2018 um 18:24 Uhr).
drambeldier ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.07.2018, 18:58   #15
ebs17
MOF Guru
MOF Guru
Standard

Beim Gründeln in den Detailtiefen sollte man vermutlich eher damit beginnen, wodurch sich die Reihenfolgen manchmal(!) ändern - dass dies kein unausweichlich auftretendes Naturereignis ist, darüber herrscht hier bis jetzt Einigkeit.
Dass Reihenfolgen in einer Datenbanktabelle so dringend nötig sind, ist dann weiter ungewöhnlich und im Detail diskutabel.

__________________

Ein freundliches Glück Auf!

Eberhard

Abfrageperformance ist kein Geheimnis
SQL ist leicht: {0}:{1}:{2}:{3}:{4}:{5}:{6}:{7}:{8}:{9}:{10}:{11}
Dein Dankeschön: DBWiki=>Spende
ebs17 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:19 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.