Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Tabellen befüllen

Begonnen von Jimmy89, März 05, 2015, 08:19:29

⏪ vorheriges - nächstes ⏩

Jimmy89

Hallo zusammen,

folgendes Thema: Ich habe eine BackEnd und eine Front End Datenbank.
Die BackEnd Datenbank speichert unendlich viele Datensätze die leider keinerlei Beziehungen zueinander haben. Mein derzeitiger Stand ist folgender: Ich habe eine FrontEnd Datenbank angelegt mit allen benötigten Tabellen und Beziehungen zueinander.
Ich möchte nun durch Abfragen die benötigten Daten für die Tabellen filtern UND diese dann in die unterschiedlichen Tabellen speichern, sodass die Beziehungen zueinander stimmen.

Im Detail:Meine Abfrage enthält z.b. die Daten Kommissionsnummer, Module, und verschiedene Leistungen.
Nun möchte ich die Kommissionen in einer Tabelle speichern, die Module in einer Tabelle und die Leistungen in einer Tabelle. Es soll aber anschließend eine eindeutige Beziehung hergestellt werden. Jeder Kommission werden eindeutige Module zugeordnet und jedem Modul wird eine eindeutige Leistung zugeordnet.

Damit das ganze klarer wird im Anhang meine Tabellen und Beziehungen und meine Abfrage.

Bei Unklarheiten bitte Fragen.

Vielen Dank
Schöne Grüße

MaggieMay

Hallo,

ZitatIch habe eine FrontEnd Datenbank angelegt mit allen benötigten Tabellen und Beziehungen zueinander.

wenn das dein derzeitiger Stand ist, was befindet sich denn dann im Backend und wieso willst du eine Abfrage, die auf diesen Tabellen basiert, wieder in die Tabellen speichern? Oder wo kommen die Daten her?
Freundliche Grüße
MaggieMay

Jimmy89

Die BackEnd stammt aus einem vorgegangenem Projekt.
darin befinden sich millionen von daten, von denen ich aber nur einen Bruchteil
benötige. Daher will ich diese selektieren und ich meine eigene DB speichern.


MaggieMay

OK, jetzt habe ich es verstanden. Du könntest zunächst einmal nur die Module anlegen, in einem zweiten Schritt die Kommissionen und zuletzt die Leistungen, wobei du dich jeweils auf die zuvor eingefügten Daten beziehen kannst, um an die jeweiligen Datensatzschlüssel für die Referenzkeys zu kommen.

Beispiel:
Insert Into TblMaschinenModul (MaschinenModul) Select Distinct Modul From Backend_Tabelle
Insert Into TblKommission (Kommission, lngMaschinenModul)
Select Distinct B.Kommission, M.MaschinenModul From Backend_Tabelle As B INNER JOIN tblMaschinenModul As M
ON B.Modul = M.MaschinenModul

Freundliche Grüße
MaggieMay

Jimmy89

Ja genau so war das gedacht.
Vielen Dank. Mit den restlichen Tabellen verfahren ich dann
ebenso.

Gruß
Jimmy

Jimmy89

Hallo,

nun stehe ich vor folgender Aufgabe.
Ich habe meine Tabellen erstellt und befüllt.
tblLeistung, tblKommission und tblMaschinenModul.
Diese drei Tabellen beziehen die Daten aus einer Abfrage, qryLeistung. Wie gelingt es mir nun, diese drei Tabellen in Beziehung zueinander zu bringen.
Ich will den Primärschlüssel als lng Wert in der jeweils anderen Tabelle einfügen.
Also z.B. besitzt jede Kommission mehrere Module und diese wiederum besitzen jeweils eine Leistung.

Gibt es da eine Lösung?

Grüße Jimmy

MaggieMay

ZitatIch will den Primärschlüssel als lng Wert in der jeweils anderen Tabelle einfügen.
Genau das solltest du doch bereits bei der Tabellenbefüllung tun:

Insert Into TblKommission (Kommission, [color=blue]lngMaschinenModul[/color])
Select Distinct B.Kommission, [color=blue]M.MaschinenModul[/color]
From Backend_Tabelle As B [color=blue]INNER JOIN tblMaschinenModul As M[/color]
ON B.Modul = M.MaschinenModul
Freundliche Grüße
MaggieMay

Jimmy89

Hallo zusammen,

hab das ganze nun etwas automatisiert. Nun klappts auch soweit.
Nur wenn ich jetzt die 2 Spalte befüllen will passiert nicht. Es kommt folgende Meldung:
Microsoft Access hat 229 Felder wegen Typumwandlungsfehlern nicht aktualisiert.
Siehe bitte Anhang.
Ich weiß ehrlich gesagt nicht an was es liegen könnte. Vielleicht kommt wer von euch drauf.

Gruß
Jimmy

database

Hallo,

Zitatan was es liegen könnte
vermutlich stimmt das Quelldatenformat nicht mit dem Zieldatenformat überein.
Überprüfe mal die Felddatentypen in den beiden Tabellen auf Übereinstimmung

Jimmy89

Hm,
daran kann es eigentlich nicht liegen ich füge die ID also den Autowert in ein Feld ein, das
den Datentyp Zahl hat.
Das seltsame ist: Wenn ich das selbe mit einer INSERT INTO Abfrage versuche dann klappt es.
Nur will ich die Werte ja nicht unten anfügen, sondern in die passenden Zeilen schreiben. :(

Gruß Jimmy

MzKlMu

Hallo,
es liegt mit ziemlicher Sicherheit daran. Die Angabe Zahl reicht nicht, zu Zahl gibt es 7 unterschiedliche Typen, bitte genau prüfen und vergleichen. Zu einem Autowert passt nur LongInteger.
Gruß Klaus

MaggieMay

Hi,

setze das Sub-Select in Klammern und nicht in Hochkommata.
Freundliche Grüße
MaggieMay

Jimmy89

Hallo Maggie,

Klappt leider auch nicht, da kommt folgende Meldung:
Operation muss eine aktualisierbare Abfrage verwenden!

MaggieMay

Ich verstehe nicht was du da machst. Ich hatte dir empfohlen, die Fremdschlüssel direkt beim Insert hinzuzuholen, dann brauchst du kein nachträgliches Update.
Freundliche Grüße
MaggieMay

Jimmy89

Musst du ja auch nicht, solang ich es verstehe. Hab das ganze
jetzt jedenfalls lösen können.
Thread kann geschlossen werden.
Vielen Dank für eure Unterstützung.

Gruß
Jimmy