hallo
ich erstelle gerade eine DB bei der ich monatlich die gleichen tabellen importiere wie im Vormonat und mit den alten vergleiche dabei müssen dann einige Feldinhalte durch andere Feldinhalte ersetzt werden. Die Tabellen betreffen Personal und sind über PersNR. verknüpft
Aktualisierung z.B. wenn „Hallo“ dann schreibe in das Feld „Tschüss“
Da das ganze jeden monat gemacht werden muss, dauert es zu lange alle aktualisierungen mit Suchen/Ersetzen zu machen. Und ich finde einfach keine Methode mit der ich Suchen/Ersetzen automatisieren könnte.
Mit Replace habe ichs auch schon versucht es klappt aber nicht.
Kennt jemand eine SQL-Anweisung oder VBA?
ich wär für jeden Vorschlag dankbar
Hallo, Viktor!
ich erstelle gerade eine DB bei der ich monatlich die gleichen
tabellen importiere wie im Vormonat und mit den alten
vergleiche dabei müssen dann einige Feldinhalte durch andere
Feldinhalte ersetzt werden. Die Tabellen betreffen Personal
und sind über PersNR. verknüpft
Aktualisierung z.B. wenn „Hallo“ dann schreibe in das Feld
„Tschüss“
Das heißt, Du wirst wahrscheinlich beide Stände halten müssen, um Vergleiche durchzuführen? Oder basieren die Vergleiche nur im aktuellen Monat auf fixen Werten?
Da das ganze jeden monat gemacht werden muss, dauert es zu
lange alle aktualisierungen mit Suchen/Ersetzen zu machen. Und
ich finde einfach keine Methode mit der ich Suchen/Ersetzen
automatisieren könnte.
Mit Replace habe ichs auch schon versucht es klappt aber
nicht.
Kennt jemand eine SQL-Anweisung oder VBA?
ich wär für jeden Vorschlag dankbar
Möglichkeiten gibt es einige. Die Frage ist schon mal, ob nur ein einzelnes Feld (oder eine kleine Anzahl von Feldern) betroffen ist, oder ob Du über alle Felder läufst, ob der gesamte Zellinhalt verglichen und aktualisiert werden soll oder nur ein Teil…
Du könntest Dir z. B. eine Mapping-Tabelle bauen, in der der alte Wert und der neue Wert stehen; ggf. auch noch der Name des zu aktualisierenden Feldes, wenn verschiedene Felder aktualisiert werden sollen. Dann läufst Du per VBA über jeden Eintrag dieser Tabelle und aktualisierst die Zieltabelle (ggf. unter Berücksichtigung Deiner Vergleichskriterien mit dem Vormonat) per SQL-Anweisung.
Wenn Felder und Mapping-Einträge sehr beschränkt und konstant sind, kannst Du Dir auch diese Abfragen als Aktualisierungsabfragen fest verdrahtet definieren und per Makro alle nacheinander aufrufen.
Beschreib mal ein wenig genauer, was Du willst (vor allem: Datenmodell), und wir können Dir ziemlich konkret helfen.
Gruß, Manfred
Hallo Manfred danke für die schnelle Antwort
Zum Datenmodell: Es sind 12 Tabellen mit jeweils verschiedenen daten des Mitarbeiters (pro Tabelle bis zu 30 Felder) und sind einfach verknüpft über die PersNr.
Die Daten werden jeden Monat aus Excel importiert und mit den Alten Zwölf Tabellen verglichen z.B. ob es neue PersNr. gibt o.ä.
ich muss jetzt in der Tabelle[PS01] im Feld[AbteilungNr] in die Amerikanischen [AbteilungNr] ändern, d.h. suche 13 und schreibe 01 usw.
Aber auch z.B. in Tabelle[PS03] Feld[Name]suche alle ö und schreibe oe.
ich erstelle gerade eine DB bei der ich monatlich die gleichen
tabellen importiere wie im Vormonat und mit den alten
vergleiche dabei müssen dann einige Feldinhalte durch andere
Feldinhalte ersetzt werden. Die Tabellen betreffen Personal
und sind über PersNR. verknüpft
Aktualisierung z.B. wenn „Hallo“ dann schreibe in das Feld
„Tschüss“Das heißt, Du wirst wahrscheinlich beide Stände halten müssen,
um Vergleiche durchzuführen? Oder basieren die Vergleiche nur
im aktuellen Monat auf fixen Werten?
Nur im aktuellen Monat
Da das ganze jeden monat gemacht werden muss, dauert es zu
lange alle aktualisierungen mit Suchen/Ersetzen zu machen. Und
ich finde einfach keine Methode mit der ich Suchen/Ersetzen
automatisieren könnte.
Mit Replace habe ichs auch schon versucht es klappt aber
nicht.
Kennt jemand eine SQL-Anweisung oder VBA?
ich wär für jeden Vorschlag dankbarMöglichkeiten gibt es einige. Die Frage ist schon mal, ob nur
ein einzelnes Feld (oder eine kleine Anzahl von Feldern)
betroffen ist, oder ob Du über alle Felder läufst, ob der
gesamte Zellinhalt verglichen und aktualisiert werden soll
oder nur ein Teil…
Es sollen ganze Zellinhalte verglichen werden in mehreren Feldern aber auch in anderen Feldern nur die Teile der Zellinhalte z.B. Höber zu Hoeber
Du könntest Dir z. B. eine Mapping-Tabelle bauen, in der der
alte Wert und der neue Wert stehen; ggf. auch noch der Name
des zu aktualisierenden Feldes, wenn verschiedene Felder
aktualisiert werden sollen. Dann läufst Du per VBA über jeden
Eintrag dieser Tabelle und aktualisierst die Zieltabelle (ggf.
unter Berücksichtigung Deiner Vergleichskriterien mit dem
Vormonat) per SQL-Anweisung.
Wie geht das? Bin noch nicht so fit in VBA
Wenn Felder und Mapping-Einträge sehr beschränkt und konstant
sind, kannst Du Dir auch diese Abfragen als
Aktualisierungsabfragen fest verdrahtet definieren und per
Makro alle nacheinander aufrufen.
So hab ichs schon gemacht find ich aber sehr umständlich
Beschreib mal ein wenig genauer, was Du willst (vor allem:
Datenmodell), und wir können Dir ziemlich konkret helfen.
Vielen Dank schon mal
Gruß Viktor