Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Import einer Excell Tabelle in einer bestehende Datenbank mit abgleich

Frage Entwicklung Datenbanken

Mitglied: Mekked

Mekked (Level 1) - Jetzt verbinden

21.09.2010 um 12:02 Uhr, 4555 Aufrufe, 10 Kommentare

Hallo zusammen,

bin leider kein Datenbank Profi und brauche daher Unterstützung.
Ich müsste eine Datenbank zusammen stellen in der ich ungefähr 28.000 Datensätze einlese müsste.
Nachdem ich die 28.000 Datensätze eingelesen habe, müsste ich eine Excell Tabelle einlesen der ca 24.000 Datensätze beinhaltet.
Bei diesem Import müsste ein Abgleich gemacht werden welche Kunden bereits vorhanden sind, diese müssten dann in eine andere Tabelle verschoben werden. Die Tabelle wird ca. 20 Spalten beinhalten, wovon Spalte 1 und 2 beim Import abgegelichen werden müsste.

Hoffe ihr könnt mir/uns weiter helfen.

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

Grüße
Mekked
Mitglied: ulrike
21.09.2010 um 12:37 Uhr
Uallo,

einfach auf Spalte 1 und 2 einen unique Key legen, beim Import der zweiten Tabelle werden dann die schon vorhandenen abgelehnt.

Gruß
uli
Bitte warten ..
Mitglied: Mekked
21.09.2010 um 13:14 Uhr
Hallo,

vielen Dank für die schnelle Unterstützung,
Es ist leider so, dass die Datensätze auf jeden Fall aus der Tablle raus müssten und in eine andere Tabelle eingefügt werden müssten.
Ausserdem ist das Problem bei dieser Variante, das bei dem Import der zweiten Tabelle die Datensätze fast alle, bis auf ca. 4000 vorhanden sind. Deswegen ist es uns wichtig diese 4.000 heraus zu filtern.
Ich habe leider auch das Problem das ich nicht weis wieviel ich hier erzählen darf damit ich gegen keine Richtlinien der Firma verstosse, daher ist es ein bisschen schwierig.
Ich versuchs mal anhand eines Beispiels:
Ich habe in der Datenbank 28.000 Produkte mit Artikelnummer erfasst.
Nach der Inventure erhalte ich eine Excell Tabelle mit ca 24.000 Produkten mit Artikelnummer die noch vorrätig sind. Nach dem einspielen der Excell-Tabelle soll er mir die 24.000 Produkte die noch vorrätig sind in eine Tabele verschieben und die anderen 4.000 Produkte in der Tabelle belassen. Die müssten dann noch manuell bearbeitet werden.

Dank noch mals und
schöne Grüße
Mekked
Bitte warten ..
Mitglied: it-frosch
21.09.2010 um 13:46 Uhr
Hallo Mekked,

warum liest du deine 28000 Datensätze und die 24000 Datensätze nicht einfach auf jeweils ein Excel Sheet ein und vergleichst beide in einem dritten Sheet mit SVERWEIS. Anschließend filterst du auf deine 4000 Datensätze und fertig.
Vom zeitlichen Auftwand her, wenn die Daten vorhanden sind, brauchst du dazu ca. 20min.

grüße vom IT-Frosch
Bitte warten ..
Mitglied: Mekked
21.09.2010 um 14:04 Uhr
Hallo IT-Frosch,

ich würde das auch sicherlich hinkriegen, aber von den 30 Kollegen die das immer wieder mal machen müssten würden es nur ein Hand voll hinkriegen. Ausserdem soll das eine Lösung für die nächsten Jahre sein.
Das Beispiel mit den Produkten ist nur ein Beispiel da ich über die tatsächliche Sache hier nicht schreiben darf.
Ganz zu schweigen davon, dass die 4000 Posten einzeln noch bearbeitet werden müssten.
Desweiteren müssten aus diesen 4000 posten Auswertungen gemacht werden die mit unterschiedlichen Statis versehen sind und diese per E-Mail zur Nachforschung versendet werden.
Daher ist eine reine Excell Tabelle nicht ganz so praktisch bei dieser Anzahl von Datensätzen.
Und es müssten mehrere Personen daran Arbeiten können, was sich bei einer Excell Tabelle schwierig gestalltet, trotz "freigegebener Arbeitsbereich".

Trotzdem vielen Dank!!!!
Bitte warten ..
Mitglied: it-frosch
21.09.2010 um 14:52 Uhr
Hallo Mekked,

ausgehend von den zwei Informationen "bin leider kein Datenbank Profi und brauche daher Unterstützung"
und 30 Kollegen die das immer wieder mal machen .....Ausserdem soll das eine Lösung für die nächsten Jahre sein.
würde ich dir empfehlen, dir jemanden (Dienstleiter) zu suchen der euch das baut.

Du kannst natürlich auch versuchen das dir zurechtzubasteln aber im Fehlerfall sitzen 30 Leute da und drehen Däumchen bis du deinen Fehler gefunden hast.

So teuer wird das auch nicht sein.

grüße vom it-frosch
Bitte warten ..
Mitglied: Mekked
21.09.2010 um 15:02 Uhr
Hallo IT-Frosch,

danke für den Hinweis, aber so komme ich nicht weiter. Das wird nicht gezahlt wenn wir eine ganze Abteilung haben die nur Datenbanken entwirft.
Wie so oft bei uns ist es so das wir das am besten gestern schon bräuchten und die Abteilung die das machen könnte bis ca. Anfang nächsten Jahres zu ist mit Arbeit.
Da unsere Datenbank nicht an oberste Prio steht, wird uns das keiner Finanzieren....
Daher sind wir wie so oft mal wieder auf uns allein gestellt, bzw. mein Chef zu spät drann.
Was nichs desto trotz wir ausbaden müssen.
Meistens habe ich auch alles auf die Reihe gekriegt, aber mit import und abgleich hatte ich bis dato noch nichts am Hut. Ich bin mir auch sicher das ich das hier auch hinkriegen werde, nur ist die Frage mit welchen nervlichen Aufwand :o)

Danke und hoffe das mir jemand mit ein paar Tipps weiter helfen kann.

SChöne Grüße
Mekked
Bitte warten ..
Mitglied: Biber
21.09.2010 um 15:36 Uhr
Moin Mekked,

ich sehe den Sachverhalt als nicht ganz so dramatisch komplex an wie der IT-Frosch unkt.
Auch wenn wir jetzt nicht wissen, was genau denn "Datenbank" oder "28000 Datensätze einlesen" oder "Excel" denn konkret (mit Name und Versionsnummer) bedeutet... egal.
Jedes Produkt, das sich in der Öffentlichkeit selbst als "Datenbank" bezeichnet kann externe Daten einlesen, sofern das Satzformat bekannt ist. Und Excel-Formate sind auch keiner Datenbank fremd, die meisten können ja nicht nur Excel-Daten importieren, sondern sogar JOIN-Operationen zwischen nativen DB-Tabellen und Excel-Sheets.

Somit ist doch der lediglich zu leistende Aufwand:
  • einmal im Leben diese 28000 Datensätze "einlesen" aus was-auch-immer in eine Tabelle A
  • einmal im Leben die 24000 Datensätze im Excelformat einlesen in eine Tabelle B
Wobei nur hilfreich wäre, wenn die beiden Spalten, die später beim Vergleich "matchen" sollen, auch dieselben Datentypen und Feldlängen in beiden Tabellen bekommen.

Wenn Du diese verJOINbaren Tabellen A und B hast, dann kannst du doch beliebig oft ein UNION ALL .. MINUS oder ein INTERSECT oder ein RIGHT JOIN oder whatever abschicken, um die 4000 dubiosen "In-Tabelle-A-aber-nicht-in-B"-Sätze zu erzeugen.
Und natürlich kannst du die auch "materialisieren", d.h. in eine neue Tabelle schreiben mit SELECT INTO/INSERT INTO..TabelleC.

Fang doch erstmal damit an, die Tabellen A und B in deine "Datenbank" reinzusaugen -die beiden Tabellen brauchst du doch ohnehin.

Grüße
Biber
Bitte warten ..
Mitglied: it-frosch
21.09.2010 um 16:04 Uhr
Hallo Mekked,

die Arbeitsschritte wären also:

1. Die aktuellen 28000 Datensätze in eine Tabelle einlesen.
2. Die Differenz (Vergleich Spalte 1 und 2) zu den schon bekannten 24000 Datensätzen in eine neue Tabelle schreiben.

Die neue Tabelle soll bearbeitet werden

Du könntest das in Access bauen und u.U. die Datenbank auf einem SQL Server ablegen.
Die Tabellen müssen genauso wie deine Datenlisten aufgebaut sein.
Für den 1.Punkt bräuchtest du eine "Importschnittstelle", d.h. ein Dialog wo der Benutzer die einzulesende Datei auswählen kann.
Nach dem Import könnte codegesteuert der 2.Punkt geklärt werden und die neue Tabelle über ein Formular den Kollegen zur Verfügung gestellt werden. Aus dem Formular heraus könntest du dann auch die Emails verschicken lassen und die Status setzen.

Unter Umständen müsstest du dann noch die fertig bearbeiteten Datensätze der 3. Tabelle der 2. Tabelle hinzufügen für den nächsten Vergleich.

grüße vom it-frosch
Bitte warten ..
Mitglied: it-frosch
21.09.2010 um 16:43 Uhr
@Biber,

da der it-frosch keine it-unke ist, quakt er natürlich.

grüße vom it-frosch
Bitte warten ..
Mitglied: Mekked
22.09.2010 um 09:45 Uhr
Guten Morgen,

sorry, ich glaube da habe ich ein zwei Kleinigkeiten vergessen.
Es soll eine Access-Datenbank werden. Das Prinzip was die Datenbank machen soll, denke ich zu wissen
was ich nicht weis ist, wie stelle ich das an.

Mein Gedanke war ja auch wie von IT-Frosch beschrieben:

1. die 28.000 Datensätze (Excel-sheet) via Import in die Access-Datenbank einlesen (Importbutton erstellen)
2. nach erhalt des Excel-sheets mit ca 24.000 Datensätzen (Zeilen) erneuter import, wobei abgeglichen werden soll was bereits vorhanden ist. Die vorhandenen Datensätze (Zeilen) sollen in eine Tabelle geschoben werden (Archiv) die restlichen sollen zu Bearbeitung in der Tabelle (Aktuell) verbleinben.
3.Nach Erledigung eines Datensatzes in der Tabelle Aktuell soll man die Möglichkeit haben durch betätigen eines Buttons den Datensatz zu Archivieren, also in die Tabelle Archiv zu verschieben.

Mein Problem bei der ganzen Sache ist, dass ich nicht weis wie ich das in Access realisieren soll.
Mit VBA-Codes kenne ich mich leider nicht aus kann diese aber anhand von Beispielen recht gut einsetzen.
Hoffe ich habe an alles gedacht.

Danke nochmal für die Unterstützung.
Mekked
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
VB for Applications
gelöst Excel VBA .csv Import in Tabelle x, ab Spalte y

Frage von drimrim zum Thema VB for Applications ...

Virtualisierung
VHD Image import VirtualBox (10)

Frage von oGutIT zum Thema Virtualisierung ...

Exchange Server
Exchange 2007 Datenbank restore ohne Exchange zu verändern - SBS2008

Frage von pitamerica zum Thema Exchange Server ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...