Access Programmieren

Hallo!

Gibts hier Programmierer?

In einer Access - Tabelle habe ich bereis 2750 Abkürzungen (Akronyme?), nun habe ich vom Internet ca. 500 weiter herunter geladen. Ich möchte diese in die Datenbank einmergen. Also nicht einfach hinten anhängen, sondern bestehende belassen, und neue einfügen.

Die Tabelle hat in etwa den aufbau:
Abkkürzung = hier steht das Akronym
Beschreibung = ausgeschrieben
Übersetzung = hier steht - sofern notwendig - die deutsche Bezeichnung
Source = Wo habe ich dieses her

Nun habe ich eine zweit Tabelle (Exel oder Access, was immer leichter geht), die nur die drei Feler hat:
Abkkürzung = hier steht das Akronym
Beschreibung = ausgeschrieben
Quelle = Wo habe ich dieses her

Ich stelle mir das so vor:
Import-Tabelle öffnen
Ersten Datensatz lesen
Do
Ist Akronym in Destination bereits vorhadnen dann
>> SourceTbl.Beschreibung nach DestinationTbl.Beschreibung
>> SourceTbl.Quelle nach DestinationTbl.Quelle
sonst
>> Neuer Datensatz
>> SourceTbl.Abkürzung nach DestinationTbl.Abkürzung
>> SourceTbl.Beschreibung nach DestinationTbl.Beschreibung
>> SourceTbl.Quelle nach DestinationTbl.Quelle
Loop until EOF

Wer kann mir in etwas skizzieren, wie der Code in Access aussehen muss?
Ich denke, da reicht ein Macro?

tks!
Herbert

Hallo Herbert,

du mußt dazu nicht programmieren. Versuch mal den Abfrage-assi zur Inkonsistenzsuche.

Imho ist es für dich am günstigsten, wenn du deine Excel-Liste einfach kurz mit der Datembank verknüpfst (oder importierst). GGf. fügst du einfach noch eine Spalte für das fehlende Feld Übersetzung ein. Und kopierst dann einfach deine Datensätze (Abfrageergebniss) von einer DB in die andere.

Falls du das ganze doch programmieren wills schau die mal das recordet-Objekt an und und die Funktionen seek(nur nach schlüsselfeld) /find(freie suche) und AddNew.

Hier auch mal ganz grob die code struktur:

dim db as database
dim Quelle as recordset
dim ziel as recordset
set db=currentdb
set quelle=db.openrecordset(…)
set ziel= quelle=db.openrecordset(…)
do until quelle.eof
ziel.seek/find
if zielnomatch=false
‚gefunden‘
ziel.edit
'felder zuweisen
ziel.update
else
'nicht gefunden
endif
quelle.movenext
loop

Gruss
Nils

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

Hallo Herbert!

Wie Nils schon ganz richtig mitteilt, brauchst Du dazu nicht die allergerinfgsten Programmierkenntnisse. Duplikate kannst Du von Access auch so ausfiltern lassen.

Wenn Dir der Weg mit dem Assistenten und der Inkonsistenzsuche zu umständlich oder zu kompliziert ist, hier ein Weg der noch einfacher ist:

Du bringst erst mal alle Daten in einer Tabelle unter. Deine Felder bis dahin sind soweit OK. Füge nur noch als Primärschlüssel einen Autowert hinzu.

Wenn Du bisher noch keinen hast - geht ganz einfach:

Fertige Tabelle nach Excel exportieren und abspeichern sowie schließen

Offene Tabelle in Access schließen Strg | C

Strg | V und dabei die Option nur Struktur aktivieren (anklicken)

Unter aussagekräftigen Namen abspeichern und mit OK bestätigen

Die alte Tabelle löschen und beide Sicherheitsabfragen mit ja beantworten

Die neue Tabelle in der Entwurfsansicht öffnen und Feld Autowert hinzufügen und als Primärschlüssel definieren

Speichern und schließen der Tabelle

Jetzt Tabelle importieren (Excel Tabelle mit den Daten [ohne Autowert])

Danach wieder Strg | C Strg | V nur Struktur neue Tabelle speichern

Tabelle im Entwurfsmodus öffnen - und das ist der Trick dabei - Primärschlüssel nun auf das Feld auf Abkürzung - Du kannst den Primärschlüssel auch auf Abkürzung und Beschreibung setzen - das würde ich aber nur tun, wenn ich mir sicher wäre nicht für dieselbe Abkürzungen verschiedene Beschreibungen gewählt zu haben, sonst genügt auch das feld Abkürzung um alle Duplikate zu löschen - das heißt von zwei oder drei Datensätzen, welche dieselbe Abkürzung haben würden, läßt Access nur einen stehen (So filtere ich meine doppelten Daten immer aus).

Alte Tabelle Strg | C gefolgt von Strg | V nun aber Daten an vorhandene Tabelle anfügen - ganz klar an die neue Tabelle (Primärschlüssel auf Feld Abkürzung).

Danach kannst Du sicher sein, das jede Abkürzung nur ein einziges Mal vorkommt.

Zum Schluß diese Tabelle noch einmal im Entwurfsmodus öffnen und den Primärschlüssel wieder auf das Feld Autowert setzen.

mfg Albert

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