![]() |
Datenbankabgleich - Druckversion +- Office-Fragen.de (https://office-fragen.de) +-- Forum: Microsoft Office (https://office-fragen.de/forum-1.html) +--- Forum: Excel (https://office-fragen.de/forum-2.html) +--- Thema: Datenbankabgleich (/thread-9591.html) |
Datenbankabgleich - Grzegorz - 01.05.2020 Hallo Zusammen, ich stehe vor einer großen Aufgabe mit einer Kombination von Excel, VBA und MySQL. Meine Skills sind in Excel irgendwo zwischen Rudimentär und fortgeschritten, VBA und MySql sind bestenfalls Rudimentär. Doch mit viel Ausdauer und guten Googleskills konnte ich das bislang ausgleichen. Ausgangssituation: Ich habe eine dbase Datenbank die man mit Excel öffnen kann. Das Ziel ist, einen Datensatz aus der dbase-"Tabelle" zu kopieren, zu filtern/bereinigen, die Werte mit einer zweiten Tabelle zu vergleichen, diese zu aktualisieren und das ganze dann in eine MySQL-Datenbank zu schreiben. Das langfristige Ziel ist, dies komplett zu automatisieren, so dass ich eine Aufgabe erstelle, die Nachts irgendwann die Aktualisierung durchlaufen lässt, davon bin ich aber noch sehr weit entfernt. Leider liegt es mir überhaupt nicht, mir erst mal trockene Theorie anzueignen (das ist keine Faule ausrede), für mich funktioniert learning by doing einfach am besten - meine Lösungen sind vielleicht nicht die saubersten, aber bisher funktioniert ist. Aktuell stehe ich vor einem Stolperstein und ich hoffe ihr könnt mir etwas helfen. Nachfolgend Zeige ich euch mal, was ich bisher gemacht habe, damit es nachvollziehbar ist: Code: Windows("kommunikation.xlsm").Activate Ich habe eine Arbeitsmappe erstellt und das erste Macro öffnet die dbase Datenbank, entfernt erst mal alles, was ich nicht benötige und kopiert mir den Inhalt in das Worksheet "com" Als nächstes sollen die Datensätze Verglichen und Änderungen in das Worksheet "live" übernommen werden. Ein Knackpunkt ist hier: die Datensätze werden künftig rechts angehängt noch 3-4 Spalten mehr haben, weil hier in MySQL noch ein bisschen was passiert. Bisher mache ich das so (bitte beachten, ich habe noch keine Ahnung und mache mich Step für Step an jede einzelne Aufgabe): Code: Sub ZeileFindenkopieren() Das ziel ist, diese Zeilen hier (in worksheet "com") nach und nach ![]() ![]() Nun stehe ich vor zwei Problemen: 1.) Erkennt mein Lösungsansatz nur Änderungen in der Spalte "AUFTRNR", die restlichen Spalten scheint er beim vergleichen zu Ignorieren. Ich habe hier schon einige Dinge ausprobiert, wie "LookAt" und "MatchCase" usw. 2.) möchte ich natürlich nicht die Zeilennummer die geprüft und verglichen werden soll vorgeben, sondern er soll alle Zeilen automatisch durchprüfen. Mit diesem Problem habe ich mich allerdings noch nicht befasst, weil ich ja das erste noch nicht gelöst hatte =) Ich hoffe ihr schlagt mich nicht, weil meine Lösungsansätze eventuell etwas wild sind - ich lerne noch ![]() Für eure Hilfe wäre ich wahnsinnig Dankbar ![]() Viele Grüße und einen schönen Feiertag EDIT: Problem 2 konnte ich mit folgendem Code lösen Code: Sub pruefung() RE: Datenbankabgleich - thowe - 02.05.2020 Hallo GregorZ also zu deinem Vorhaben 'mal Respekt ABER: das wird nix.... Wenn gar keine bis ganz wenige VBA Kenntnisse vorhanden sind, dann ist dieses Projekt schlichtweg "zu groß". Es beginnt schon im ersten Teil deines "mitgelieferten" Codes Verzichte soweit geht auf Activate und Select Das geht alles einfacher und komfortabler.... Du solltest deklarieren und "Set" verwenden. Ich habe in der Schnelle nichts andres gefunden, aber orientiere dich mal hier ab Abschnitt "Set ActiveWorkbook in Excel"... https://analysistabs.com/vba-code/workbook/m/activate/ lg |