Tabelle abgleichen, ändern und anfügen

Hallo!
Ich habe eine Excel-Tabelle, die die gleiche Struktur wie meine Access-Tabelle aufweist.
Diese Excel-Tabelle (T_E) ist aber AKTUELLER als meine Access-Tabelle (T_A):

  • es gibt Datensätze, die in T_A bereits enthalten sind, aber in T_E in einigen Feldern aktualisiert wurden (kann man abgleichen anhand des Primärschlüssels PROJEKTNR)
  • es gibt in T_E Datensätze, die noch nicht in T_A enthalten sind, müssen in T_A also angefügt werden.

Wie stelle ich es nun an, dass Access sich die T_E anschaut, die vorhandenen Datensätze aktualisiert in seiner Tabelle (T_A) und die bisher nicht vorhandenen DSs anfügt?

Ich suche nach einer performanden Lösung, da dieses Problem regelmäßig auftauchen wird… .

Ich stehe ein wenig auf dem Schlauch… .

DANKE für jede Hilfe!

Moin, Peter,

die einfachste Möglichkeit: Excel-Tabelle per

 DoCmd.TransferSpreadsheet

importieren und mit dieser Access-Tabelle weiterarbeiten.

Gruß Ralf

Hallo Ralf,

DANKE für die Antwort. Soweit ist das klar.

Mein Problem (oder besser: meine Unkenntnis) setzt aber erst dann ein: Wie bastele ich mir einen Automatismus, der bestehende Datensätze aktualisiert und neue Datensätze anfügt?
Idealer Weise alles mit einem Klick… .

Danke für Eure Hilfe.

Peter

Hi Peter,

Wie bastele ich mir einen Automatismus, der
bestehende Datensätze aktualisiert und neue Datensätze anfügt?

das zu erklären würde den Rahmen dieses Forums sprengen.

Schau Dir mal die Anfüge- und die Aktualisierungsabfrage an, dann noch das Ereignis, also die Methodik, wie Access auf Knöpfchendrücken reagiert.

Kennst Du Nordwind.mdb? Die wird zusammen mit Access installiert (wenn sie nicht ausdrücklich abgewählt wird) und enthält Beispiele für so ziemlich alles, was beim Umgang mit Datenbanken gebraucht wird.

Gruß Ralf

ok, Danke für Deine Hilfs-Versuche.

Ich kenne Nordwind und ich habe auch eine Vorstellung davon, was Anfüge- und Aktualisierungs-Abfragen sind.
Klar kann ich mir meine Anforderung stp-by-step so zusammenbauen - und werde dies wohl auch so tun müssen.
Meine Hoffnung war nur, dass es eine schnelle und intelligente Lösung gibt, die jemand von Euch parat hat… .

Danke trotzdem.

Hallo!

Diese Excel-Tabelle (T_E) ist aber AKTUELLER als meine
Access-Tabelle (T_A):

  1. Lösung:
  • lösche die Tabelle T_A in Access und importiere die neue Exceltabelle T_E
  • es gibt Datensätze, die in T_A bereits enthalten sind, aber
    in T_E in einigen Feldern aktualisiert wurden (kann man
    abgleichen anhand des Primärschlüssels PROJEKTNR)
  1. Lösung:
  • neue Exceltabelle verknüpfen
  • T_A mit T_E über den Primärschlüssels in der Abfrage in Beziehung stellen
  • Aktualisierungsabfrage erstellen
  • es gibt in T_E Datensätze, die noch nicht in T_A enthalten
    sind, müssen in T_A also angefügt werden.
  1. Lösung (2.Teil)
  • erstelle eine einfache Anfügeabfrage
  • ignoriere die Fehlermeldung (weil doppelte Einträge)

Wie stelle ich es nun an, dass Access sich die T_E anschaut,
die vorhandenen Datensätze aktualisiert in seiner Tabelle
(T_A) und die bisher nicht vorhandenen DSs anfügt?

  1. Lösung (3.Teil)
  • siehe oben
  • erzeuge auf einem Formular einen Button
  • erstelle für den Button einen VBA-Code indem beide Abfragen ausgeführt werden

Ich suche nach einer performanden Lösung, da dieses Problem
regelmäßig auftauchen wird… .

wenn der Dateiname der Exceldatei immer gleich bleibt… kein Problem

Ich stehe ein wenig auf dem Schlauch… .

vomSchlauchrunterhol

Hi Netwolf,

na, das strukturiert meine Gedanken doch schon spürbar!

Lösung 1 ist nicht möglich, da T_E nur eine Teilmenge von T_A ist, dafür ist diese Teilmenge aber u.U. aktueller… .

Lösung 2 ist genau das, was ich brauche. Und anhand Deiner deutlichen Struktur (die man manchmal einfach vor lauter Bäumen im Wald nicht sieht) in NullKommaNurGanzWenig in die Tat umgesetzt!

Herzlichen Dank und einen schönen Sonntag!

Peter