Anleitung Anfügeabfrage bei Tabellenbeziehungen

Hallo alle zusammen,

nun probiere ich schon seit ein paar Tagen rum. Die Foren geben mir zwar den Ansatz vor, aber ich komme trotzdem nicht klar. Bitte gebt mir kurz ne Anleitung für Dummies.

Aktuelle Situation:

  1. Ich habe eine Kontaktdatenbank, die Orte der Kontaktanschriften sind in einer gesonderten Tabelle, wegen der Redundanzenvermeidung.

  2. Ich möchte Daten aus Excel importieren, wobei beide Tabellen der DB bedient werden und der Beziehung nach entsprechende Verweise erstellt werden.

Mein Problem:

  1. Ich weiß, dass mehrere Anfügeabfragen notwenig sind und ich dazu nen Index in der Ausgangs-Exceltabelle erstellen muss.

Aber dann hörts auch schon auf, wie gehe ich dann vor?

  1. Außerdem wird sich wohl das Problem ergeben, dass beim Import die Ortsnamen sich mehren werden. Wie beseitigt Access das automatisch?

Wäre wirklich schön, wenn mir der eine oder andere helfen könnte.

Ich freue mich auf eine Antwort. Danke.

Hallo h&k,

  1. Ich möchte Daten aus Excel importieren, wobei beide
    Tabellen der DB bedient werden und der Beziehung nach
    entsprechende Verweise erstellt werden.

dann nutze die in Access vorhandenen Möglichkeiten:

  • Datei
  • externe Daten
  • Importieren
  1. Ich weiß, dass mehrere Anfügeabfragen notwenig sind

richtig, zwei

und ich dazu nen Index in der Ausgangs-Exceltabelle erstellen muss.

ähm, nein

Aber dann hörts auch schon auf, wie gehe ich dann vor?

  • Excel-Tabellen importieren
  • Anfügeabfragen erstellen und ausführen
  • fertig
  1. Außerdem wird sich wohl das Problem ergeben, dass beim
    Import die Ortsnamen sich mehren werden. Wie beseitigt Access
    das automatisch?

Access kann du per Abfrage dazu „überreden“ dir die doppelten anzuzeigen (Abfrageassistent verwenden).
Per VBA könntest du dann eine Routine schreiben, die alle Doppelten löscht. Dazu gibt es einige fertige Codes im I-Net.

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

Ja gut, wenn das so sieht ist das natürlich einfach. aber sowas meine ich doch gar nicht.

Ich habe in Access zwei Tabellen mit den Datenfeldern:

Tabelle 1:

  • Kontakt_ID
  • Kontakt
  • Straße
  • Ort_ID

Tabelle 2:

  • Ort_ID
  • Ort

Nun habe ich die Excel-Tabelle mit den Feldern:

  • Kontakt
  • Straße
  • Ort

Wie kann ich nun die Daten importieren ohne redundante Daten zu erhalten?
Wird beim Ausführen der Anfügeabfrage für Tabelle 1, automatisch ein Schlüssel zur Tabelle 2 erstellt?

Hallo,

da wird nichts automatisch erstellt. Du kannst auf das Feld „Ort“ einen eindeutigen Index (ohne Duplikate) legen und dann nur die Orte aus der Excel-Tabelle importieren (oder die Excel-Tabelle verknüpfen und eine Anfügeabfrage starten. Dann würden nur die noch nicht vorhandenen Orte an Tabelle2 anhgehängt und die vorhandenen ignoriert (evtl. mit Fehlermeldung), wobei das ID-Feld, falls Autowert, selbstständig ausgefüllt würde.

Das erzeugt aber immer noch nicht eine Beziehung zwischen den beiden Tabellen. Das müßte durch eine weitere (Aktualisierungs)- Abfrage mit Beziehung zwischen Straße Ort über beide TAbellen und der Excel-Liste geschehen.

Ich verstehe aber nicht, wozu Du da die Tabelle2 überhaupt brauchst, wenn die nur den Ortsnamen beinhaltet. Es könnte gleich in Tabelle2 der Ortsname abgelegt werden, ohne irgendein „Ort_Id“ Feld zu benutzen.

Oder gibt es verschiedene Orte mit gleichem Namen, aber unterschiedlicher Ort_ID? (was in dieser Konstellation ja nun nicht verständlich wäre)

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

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

Hallo Franz,

erst einmal vielen Dank für deine Hilfe.

Bin soweit gut klar gekommen. Nur die Einstellung für das Beseitigen von Duplikaten machst du über das Eigenschaftsfenster der Anfügeabfrage, nicht im jeweiligen Feld in Entwurfsansicht.

Ansonsten wurschtel ich mich so durch und komme wenigstens voran.

Ach und ja, ich habe noch weitere Tabellen in der Datenbank, wollte aber für meine Frage nich zu ausführlich werden. So steht zum Beispiel der Orte-Tabelle, eine Land-Tabelle an.

Würde gerne meine Beziehungsübersicht darstellen, aber ist hier nicht so einfach, wa?

Vielen Dank nochmal.

Hallo,

da wird nichts automatisch erstellt. Du kannst auf das Feld
„Ort“ einen eindeutigen Index (ohne Duplikate) legen und dann
nur die Orte aus der Excel-Tabelle importieren (oder die
Excel-Tabelle verknüpfen und eine Anfügeabfrage starten. Dann
würden nur die noch nicht vorhandenen Orte an Tabelle2
anhgehängt und die vorhandenen ignoriert (evtl. mit
Fehlermeldung), wobei das ID-Feld, falls Autowert,
selbstständig ausgefüllt würde.

Das erzeugt aber immer noch nicht eine Beziehung zwischen den
beiden Tabellen. Das müßte durch eine weitere
(Aktualisierungs)- Abfrage mit Beziehung zwischen Straße Ort
über beide TAbellen und der Excel-Liste geschehen.

Ich verstehe aber nicht, wozu Du da die Tabelle2 überhaupt
brauchst, wenn die nur den Ortsnamen beinhaltet. Es könnte
gleich in Tabelle2 der Ortsname abgelegt werden, ohne
irgendein „Ort_Id“ Feld zu benutzen.

Oder gibt es verschiedene Orte mit gleichem Namen, aber
unterschiedlicher Ort_ID? (was in dieser Konstellation ja nun
nicht verständlich wäre)

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Hallo,

Ach und ja, ich habe noch weitere Tabellen in der Datenbank,
wollte aber für meine Frage nich zu ausführlich werden. So
steht zum Beispiel der Orte-Tabelle, eine Land-Tabelle an.

Das ist eher mehr verwirrend denn klärend…und klärt auch nicht die Frage nach dem Sinn einer Orts-Tabelle. Bei „Länder“ kann ich mir es noch vorstellen, weil es da mehrere Attribute pro Land geben kann (LandesKenner, Landname, MWSTPflicht, PLZPosition, Kontinent, etc…)

Würde gerne meine Beziehungsübersicht darstellen, aber ist
hier nicht so einfach, wa?

Vermutlich meinst Du:

Menüleiste/Extras/Beziehungen

[ot] Darstellung von Beziehungen
Moin,

Würde gerne meine Beziehungsübersicht darstellen, aber ist
hier nicht so einfach, wa?

doch, dafür gibt es eine ganz simple Notation:

 Kontakt Ort
 Kontakt Kunde
 Kunde \> Bestellung

Gruß Ralf

Hallo Leute,

bitte entschuldigt meine verspätete Meldung, aber ich befinde ich mich derzeit im Umzug, da könnt ihr euch ja vorstellen was da los ist.

Also hier die Notationen meiner Beziehungen:

Tabelle 1:

  • Kontakt_ID (Primärschlüssel) Zus_Tags
  • Firma
  • Kontakt
  • Straße
  • PLZ
  • Fon
  • Email
  • Web
  • Ort_ID Ort

Tabelle 2:

  • Ort_ID
  • Ort
  • Land_ID Land

Tabelle 3:

  • Land_ID Ort
  • Land

Tabelle 4: 'das ist eine mn-Beziehungstabelle

  • Zus_Tag_ID
  • Tag_ID Tags
  • Kontakt_ID

Tabelle 5:

  • Tag_ID Zus_Tags
  • Tag

So, jetzt wo ich das alles aufgeschrieben habe, merke ich, dass ich gar nicht klarkomme. Eigentlich wollte ich den aktuellen Bearbeitungsstatus, Kategorienzugehörigkeit eines Kontaktes als Tags festhalten, doch nun frage ich mich ob das so in Ordnung ist.

Bitte, einer muss mir mal den richtigen Weg vorgeben. Dann mach ich das.

Dank euch.

Moin,

üblicherweise werden die Beziehungen nur bei der Tabelle angegeben, in der sie Fremdschlüssel-Attribute erzeugen, anders gesagt, wo sie etwas bewirken. Beispiel: Die Beziehungen zu Zus_Tags werden nur bei Zus_Tags selbst gezeichnet.

Ganz nebenbei gesagt: Zus_Tags ist ein Name, wie er dem Programmierer einfällt. Wie sagt der Auftraggeber dazu? Vielleicht Kontaktklassifikation? Dann sollte die Tabelle so heißen.

doch nun frage ich mich ob das so in Ordnung ist.

Da geht’s um rein fachliche Fragen, das wird außer dem Auftraggeber niemand beantworten können.

Ein Datenmodell gehört nicht dem Programmierer, sondern dem Auftraggeber - der muss es verstehen, schließlich muss es seinen Informationsbedarf bedienen.

Gruß Ralf