Datenabgleich

Hallo,

hier etwas für die Cracks :smile:

Ich habe 2 Tabellen.

1ste Tabelle (Stammdaten)

Feld1: Name, Vorname oder Bezeichung
Feld2: Strasse
Feld3: Hausnummer
Feld3: Plz

2te Tabelle (Bewegungsdaten)

Feld1: Geschlecht
Feld2: Vorname
Feld3: Name
Feld4: Bezeichung
Feld5: Strasse
Feld6: Hausnummer
Feld7: Plz

Die Stammdaten (Feld1) müssen an Hand der Bewegungsdaten (Feld1 + 2 + 3 + 4) periodisch über den Matchcode (Strasse, Hausnummer + Plz) aktualisiert werden.

Als Beispiel:
Tabelle1

Feld1: Schmidt, Hans

Tabelle2

Feld1: Herr
Feld2: Klaus
Feld3: Jansen
Feld4: Gastronomie

Plz + Strasse + Hausnummer gefunden, dann:

  1. Wenn Geschlecht(Tabelle2)= Vorhanden
  • übertrage Feld3+2 (Nachname,_Vorname) in Feld1(Tabelle1)
    * Aktualisierung Feld1(Tabelle1): Jansen, Klaus
    * Eventuell: Übetragung des Geschlechts
  1. Wenn Geschlecht(Tabelle2)= Leer
  • übertrage Feld4 (Bezeichnung) in Feld1(Tabelle1)
    * Aktualisierung: Gastronomie

Da die 2te Tabelle nicht immer vorhanden sein kann, wäre mir eine abrufbare Makrolösung am liebsten. Ist klar :smile:

Schon herzlichen Dank für den Hirnschmalz :smile:)

Besten Gruß
Wander

Hallo Wander,

hier etwas für die Cracks :smile:

hoffentlich verstehst du auch was die Cracks dir schreiben! :smile:

Ich habe 2 Tabellen.

1ste Tabelle (Stammdaten)

Feld1: Name, Vorname oder Bezeichung
Feld2: Strasse
Feld3: Hausnummer
Feld3: Plz

warum gibt es kein Feld für die Bezeichnung?
warum gibt es kein ID - Feld?

2te Tabelle (Bewegungsdaten)

Feld1: Geschlecht
Feld2: Vorname
Feld3: Name
Feld4: Bezeichung
Feld5: Strasse
Feld6: Hausnummer
Feld7: Plz

warum gibt es kein ID - Feld?
warum sind beide Tabellen nicht über die ID verknüpft?

Die Stammdaten (Feld1) müssen an Hand der Bewegungsdaten
(Feld1 + 2 + 3 + 4) periodisch über den Matchcode (Strasse,
Hausnummer + Plz) aktualisiert werden.

und was machst du, wenn zwei/drei/x Personen im selben Haus bzw. unter der selben Anschrift zu erreichen sind? Da es sich vermutlich um Geschäftsleute handelt, wäre als Beispiel ein Einkaufszentrum denkbar!
So wie du dir das denkst, kann es nicht sinnvoll sein!

Als Beispiel:
Tabelle1

Feld1: Schmidt, Hans

Tabelle2

Feld1: Herr
Feld2: Klaus
Feld3: Jansen
Feld4: Gastronomie

Plz + Strasse + Hausnummer gefunden, dann:

  1. Wenn Geschlecht(Tabelle2)= Vorhanden
  • übertrage Feld3+2 (Nachname,_Vorname) in Feld1(Tabelle1)
    * Aktualisierung Feld1(Tabelle1): Jansen, Klaus

definiere Aktualisierung:
in dem Moment wo die Daten übertragen werden IST das Tabellenfeld aktualisiert!

* Eventuell: Übetragung des Geschlechts

geht nicht: da gibt es kein Feld für!

  1. Wenn Geschlecht(Tabelle2)= Leer
  • übertrage Feld4 (Bezeichnung) in Feld1(Tabelle1)
    * Aktualisierung: Gastronomie

definiere Aktualisierung:
Ein Feld was aktualisiert werden könnte mit dem Namen Gastronomie gibt es nicht!

Da die 2te Tabelle nicht immer vorhanden sein kann

du hast EINE Datenbank mit zwei TABELLEN, oder nicht?

, wäre mir eine abrufbare Makrolösung am liebsten.

ne ne, Cracks können keine Makros, sondern programmieren grundsätzlich in VBA :smile:
Kannst du auch VBA?

Ist klar :smile:

nö ist nicht klar!? könntest du das mal genauer beschreiben?

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Hallo Wander,

hier etwas für die Cracks :smile:

hoffentlich verstehst du auch was die Cracks dir schreiben!

-)

Hallo Netwolf,

als IT-Ler ist mir in ca. 20 Jahren schon Einiges über den Weg gelaufen … auch Datenbanken :smile: Verständnis ist also vorhanden … nur aktuelles Know-How nicht.

warum gibt es kein Feld für die Bezeichnung?

Es handelt sich bei Tabelle1 um eine - vorgefundene - Tabelle, die sich in seiner Struktur, leider nur begrenzt anpassen lässt. Also ohne eine logisch sinnvolle Aufsplittung nach Vor- / Nachnahme und Bezeichnung.

warum gibt es kein Feld für die Bezeichnung
warum gibt es kein ID - Feld?

Siehe oben.

warum gibt es kein ID - Feld?
warum sind beide Tabellen nicht über die ID verknüpft?

Siehe oben.

Beide Tabellen sind völlig autark aufgebaut (2te Tabelle kommt aus Excel), sodass eine Verknüpfung mittels eine ID nicht möglich ist. Deswegen habe ich lediglich die Möglichkeit, quasi über ein Primärschlüssel, im Nachhinein eine Verknüpfung herzustellen.

und was machst du, wenn zwei/drei/x Personen im selben Haus
bzw. unter der selben Anschrift zu erreichen sind? Da es sich
vermutlich um Geschäftsleute handelt, wäre als Beispiel ein
Einkaufszentrum denkbar!
So wie du dir das denkst, kann es nicht sinnvoll sein!

Auch daran habe ich gedacht. Allerdings haben die vorhandenen Daten aus Tabelle2 momentan ein Alleinstellungsmerkmal. Muss aber für die Zukunft - Schritt 2 - sicher gelöst werden. Eventuell durch ein Feld „Duplikate“ welches z.B. auf „1“ gesetzt wird, wenn die Anschrift mehrfach aufgefunden wurde und muss dann manuell nachgearbeitet werden.

definiere Aktualisierung:
in dem Moment wo die Daten übertragen werden IST das
Tabellenfeld aktualisiert!

Mit der Aktualisierung wurde vorrangig die Darstellung und Zusammenstellung gemeint, wie sie nach der Aktualisierung auszusehen hätte.

* Eventuell: Übetragung des Geschlechts

geht nicht: da gibt es kein Feld für!

Stimmt. Tabelle1 kann ich aber um das Feld erweitern. Ist aber nicht zwingend, obwohl durchaus sinnvoll.

  1. Wenn Geschlecht(Tabelle2)= Leer
  • übertrage Feld4 (Bezeichnung) in Feld1(Tabelle1)
    * Aktualisierung: Gastronomie

definiere Aktualisierung:
Ein Feld was aktualisiert werden könnte mit dem Namen
Gastronomie gibt es nicht!

Siehe oben.
„Gastronomie“ war ein Beispiel für eine Bezeichnung.

Da die 2te Tabelle nicht immer vorhanden sein kann

du hast EINE Datenbank mit zwei TABELLEN, oder nicht?

Genau. Die 2te Tabelle würde ich aus einer Excel-Tabelle vorher in Access importieren.

, wäre mir eine abrufbare Makrolösung am liebsten.

ne ne, Cracks können keine Makros, sondern programmieren
grundsätzlich in VBA :smile:

*lach*

Kannst du auch VBA?

Ich kann es teilweise lesen, auch mal abändern - weil ich auch programmiert habe - aber nicht selber entwickeln.

Besten Gruß aus Hamburg
Wander

Hallo Wander,

Beide Tabellen sind völlig autark aufgebaut (2te Tabelle kommt
aus Excel), sodass eine Verknüpfung mittels eine ID nicht
möglich ist. Deswegen habe ich lediglich die Möglichkeit,
quasi über ein Primärschlüssel, im Nachhinein eine Verknüpfung
herzustellen.

eine einfache Möglichkeit wären zwei Aktualisierungsabfragen.

Genau. Die 2te Tabelle würde ich aus einer Excel-Tabelle
vorher in Access importieren.

importieren ist die eine Möglichkeit, ich würde sie verknüpfen.

Also der erste Code für die erste Aktualisierungsabfrage wäre dann z.B.:
UPDATE Tabelle1 INNER JOIN Tabelle2 ON (Tabelle1.PLZ = Tabelle2.PLZ) AND (Tabelle1.Hausnummer = Tabelle2.Hausnummer) AND (Tabelle1.Straße = Tabelle2.Straße) SET Tabelle1.Kunde = [Name] & „-“ & [Vorname]
WHERE (((Tabelle2.Geschlecht) Is Not Null));

für den zweiten Fall dann entsprechend:
UPDATE Tabelle1 INNER JOIN Tabelle2 ON (Tabelle1.PLZ = Tabelle2.PLZ) AND (Tabelle1.Hausnummer = Tabelle2.Hausnummer) AND (Tabelle1.Straße = Tabelle2.Straße) SET Tabelle1.Kunde = [Bezeichnung]
WHERE (((Tabelle2.Geschlecht) Is Null));

startest du beide Abfragen hintereinander solltest du dein gewünschtes Ergebnis (ganz ohne VBA und Makro) erhalten.

Natürlich mußt du noch die Bezeichnungen an deine Tabellennamen und Felder anpassen.

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Hallo Netwolf,

ich teste es mal und dann melde ich mich auf jeden Fall wieder.

Besten Gruß aus Hamburg nach oben (wenn ihr da oben nicht abgesoffen seid *g*)
Wander

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Netwolf,

es hat super funktioniert. Ich musste zwar noch Änderungswünsche einfliessen lassen, aber das war, auf Grund der sauberen Vorlage, kein Problem.

Nochmals herzlichen Dank!

Besten Gruß aus Hamburg
Wander

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]