Hallo Christian,
ja, das "Firmasuch" gegen eine ID auszutauschen, ist auf jeden Fall sinnvoll, da "Name-Ort" kaum wirklich eindeutig ist (was machst Du bei 3 Standorten einer Firma im gleichen Ort?).
"firma_id" ist schon OK, ich persönlich verwende lieber "ID_Firma" (immer "ID_" führend). Wenn Du andere fragst, hängen einige auch immer "_fk" für Foreign Key an den Namen, was ich wiederum für immer überflüssig halte.
Umgekehrt sollte der PK (Primary Key) aber ebenfalls so heißen. Ganz sicher nicht "Schlüssel" (auch nicht "ID").
Aber die Datenbank scheint dahingehend eh chaotisch zu sein, was Du nicht auf die Schnelle bereinigen kannst.
"Primärschlüssel Lieferadresse" bzw. "..Rechnungsadresse" als FK-Name in einer Bestelltabelle.. total daneben.
Namen mit Leer- und Sonderzeichen, etwa "Bestell-Nr" (wieso heißt eine Tabelle wie ein Feld? Sollte wohl eher "Bestellungen" oder noch besser "tblBestellungen" heißen), "P/N", "Serien - Nummer" uvm. - Namen sollten grundsätzlich keine Leer- und Soderzeichen beinhalten, nur Buchstaben, Zahlen, Unterstrich.
Gleiches gilt für "Rechnung-Nr" und andere solcher Namen als Tabellennamen.
ID-Felder (PKs und i.d.R. auch FKs) sollten immer an den Anfang der Tabelle. Den Grund siehst Du an den vielen Scrollbalken in Deiner Abfrage, weil das verbundene Feld jeweils weiter unten als die sichtbaren Felder steht.
"Umsatz 1991", "Umsatz 1992" usw.: Aufzählungsfelder, gehören nicht in Spalten, sondern in eine eigene Tabelle. Mit "firma_id", "Jahr", "Umsatz" und ggf. noch weitere.
"Preis 2024", "EK 2024"...
"Kunden Nr 2" und "Kundennr2"...
Besonders schön finde ich "Brange"... ;) Sollte wohl eher "Branche" heißen...
Diverse der Tabellen haben nicht einmal einen PK, den sollte man immer erstellen.
Das waren nur mal eine Reihe der Dinge, längst nicht alles.
ZitatGibt es eine Möglichkeit alle Einträge von "Schlüssel" in der Tabelle "Firma" auf einmal nach "firma_id" in "Zahlungsziel-Frachtkosten zu kopieren?
Ja, natürlich.
Solange "Firmasuch" ein eindeutiges Ergebnis erzeugt, also nicht mehr als eine Firma für jeden Eintrag der Zahlungsziel-Frachtkosten-Tabelle, kannst Du das mit einer UPDATE-Anweisung erledigen.
Am einfachsten ist, eine Abfrage zwischen den beiden zu erstellen mit ID, Firmasuch, Schlüssel, Kundennr, Firma als Ausgabefelder (zur Kontrolle) und erst mal anzuschauen, was dabei herauskommt.
Ist die Zuweisung in Ordnung, kannst Du im Designer die Abfrage auf eine UPDATE-Abfrage umstellen und dann den Wert von "Schlüssel" in "firma_id" schreiben.
Da das Feld neu ist, macht es erst einmal nichts, wenn es nicht korrekt funktioniert, kannst Du dann ja jederzeit ändern ohne Auswirkungen.
Wenn das Feld gefüllt ist, kannst Du die gleiche SELECT-Abfrage nochmal machen, nur verbindest Du dann nicht mehr Firmasuch, sondern firma_id mit Schlüssel und schaust Dir an, ob das Ergebnis stimmt. Dabei sollte die Anzahl Datensätze passen (Schnelltest) und zur näheren Prüfung der Inhalt.
Wenn alles OK ist, kannst Du die Referenz zwischen Firmasuch entfernen (im Beziehungseditor, nicht wie hier gezeigt in einer Abfrage). Wenn der Beziehungseditor keine Beziehungen anzeigt, ist es noch chaotischer. Einige denken, man könne gute Datenbanken auch einfach ohne Beziehungen bauen, was aber eine Menge Potential der Datenbanken verschenkt. Insbesondere die Einstellung zur referentiellen Integrität ist wichtig für stets saubere Daten.
Übrigens muß man auch nicht "Firmasuch" als Feld in der Tabelle führen. Das erstellt man bei Bedarf einfach aus Firma und Ort in einer Abfrage (z.B. für eine Kombobox für ein Suchfeld). Kann man dann auch generell überall entfernen, sobald vernünftige Beziehungen über ID-Felder aufgebaut wurden.
Gruß
Christian