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:
Ich habe eine Kontaktdatenbank, die Orte der Kontaktanschriften sind in einer gesonderten Tabelle, wegen der Redundanzenvermeidung.
Ich möchte Daten aus Excel importieren, wobei beide Tabellen der DB bedient werden und der Beziehung nach entsprechende Verweise erstellt werden.
Mein Problem:
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?
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 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
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
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.
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?
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]
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)
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?
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.
ü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.