DB mit Exceldatei updaten

Ich habe folgendes Problem. Ich habe in einer Datenbank eine Tabelle in der Firmen enthalten sind. Da sich diese Firmen auch oft ändern (neue hinzukommen, geschlossen werden oder umziehen oder einfache eine andere Telefonnummer bekommen) wird mir regelmäßig eine Exceldatei mit diesen Daten zugeschickt.

Nun hab ich folgendes Problem. Da ich eine andere Tabelle an die Firmen Tabelle koppeln muss - hab ich jeder Firma beim import eine ID zugewiesen:

1 Firma A
2 Firma B
.
.
.

soweit so gut - jetzt habe ich eine andere Tabelle damit verknüpft.

1 Mitarbeiter XY verknüpft mit FirmenID 1 (also Firma A)
2 Mitarbeiter XX verknppft mit FirmenID 2 (also Firma B)
3 Mitarbeiter XZ verknüpft mit FirmenID 2 (also nochmal Firma B)

ich möchte zwar das die Daten dieser Firmen upgedatet werden, und auch neue Frimen hinzugefügt werden - aber wie bekomme ich das hin das sie die ID nicht ändert?

hi!

(vielleicht funktioniert’s unter access einfacher)

eine temporäre firmentabelle anlegen, diese mit den export-daten befüllen und dann mit der echttabelle abgleichen; problem dabei: du brauchst unbedint einen unique-key, mit dem du die beiden tabellen vergleichen kannst (lösungsansatz: kurzzeichen oder nummer einer firma, da manche firmen sogar ihre namen wie die unterwäsche wechseln)

grüße,
tomh

eine temporäre firmentabelle anlegen, diese mit den
export-daten befüllen und dann mit der echttabelle abgleichen;
problem dabei: du brauchst unbedint einen unique-key, mit dem
du die beiden tabellen vergleichen kannst (lösungsansatz:
kurzzeichen oder nummer einer firma, da manche firmen sogar
ihre namen wie die unterwäsche wechseln)

Hi, erstmal Danke für Deine Unterstützung.
OK - soweit so gut! Ich lege eine temporäre Firmentabelle an, und mache den Unique-Key anhand der Strasse, PLZ fest. Aber wie kann ich die Tabelle abgleichen?

frage an die access-gurus: kann ich irgendwie sql-scripts in access ausführen? falls ja, dann in etwa so (pl/sql-notation - muß halt noch auf access/vb geändert werden)

declare
cursor c1 is select * from temp_firmentabelle;
begin
for c in c1 loop
update firmentabelle f1
set f1.name = c.name,

where f1.plz = c.plz
and f1.strasse = c.strasse;
if SQL%ROWCOUNT = 0 then
insert into firmentabelle values (c.name,c. …);
end if;
end loop;
end;

grüße,
tomh

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