Ich bin gerade dabei, Daten in die neu angelegte Datenbank zu übernehmen.
In der alten Datenbank stehen in der Kundentabelle bei der Anrede: Firma, Frau, Herr,.. (also Text)
In der neuen Datenbank gibt es für die Anrede eine eigene Tabelle mit einem PK.
1=Firma, 2=Frau,...
Das gleiche bei Ort und PLZ. In der alten Tabelle steht der Text, in der neuen gibt es eigene Tabellen mit PK und Verknüpfung mit FK....
Gibt es eine Abfragemöglichkeit mehrere Kriterien in einer Aktualierungsabfrage zu erledigen (Wenn Firma dann 1, Wenn Frau dann2,...) oder muss ich die neue Tabelle händisch mit vielen Abfragen aktualisieren?
Zur besseren Erklärung in der Anlage das Beziehungsfenster neu und alt.
Hol dir die IDs mit DLookup aus den Nachschlagetabellen.
Prinzip
..., Dlookup("AnredeID", "Anreden", "Anrede = '" & Quelle.Anrede & "'"), ...
Importtabelle in m:n-Beziehung auflösen (https://www.ms-office-forum.net/forum/showpost.php?p=2021436&postcount=5)
Danke für die Hilfe, aber mit den SQL Abfragen komme ich nicht klar.
Ich habe schon verschiedenste Abfragen erstellt. In der alten DB habe ich mit 4 Abfragen die Anrede in der Tabelle Stammdaten mit den Ziffern 1 bis 4 ersetzt. Wenn ich dann die Kundendaten in die neue DB durch eine Anfügeabfrage übertrage, wird aber bei der tblKunden wieder der Text Firma... geschrieben.
Kann ich das einfacher lösen oder muss ich in der neune tblKunden die Anrede einzeln durch Ziffern ersetzen?
In der Anlage Beispieldaten der alten und neuen DB.
Günther
Als Erstes solltest Du Nachschlagefelder in Tabellen beseitigen. Wenn man live und ohne zusätzliche Überlegung sieht, welche Inhalte man hat und welche folglich eingefügt werden sollen, erspart das eine Menge Irritationen, z.B. bei Abfragen.
Hallo,
und ich würde auch keine Wertelisten (AdressenartID_F) für Kombinationsfelder verwenden, sind viel zu unflexibel. Kommt eine Adressenart dazu, erfordert das Änderungen an den Entwürfen, was zu vermeiden ist.
Daher ist auch dazu eine Tabelle anzulegen.
Vielen Dank für eure Rückmeldung.
@ Eckhard
Wie meinst du das mit den Nachschlagefeldern. In den Tabellen sind alle Fremdschlüssel - Long Integer Zahlen.
Oder ist damit das Kombinationsfeld im Formular gemeint.
ZB bei der Anrede wird über ein Kombinationsfeld die richtige Anrede ausgewählt. (Firma, Frau, Herr,...)
Unklar ist mir, warum in der tblKunden nicht 1,2,3,.. =Autowert der Tabelle tblAnrede gespeichert wird, wenn die gebundene Spalte des Kombinationsfeldes die AnredeID ist.
Siehe auch Formular für die Kundenerfassung in der Anlage.
@klausIch habe doch eine eigene tblAdressenart angelegt. Oder habe ich das auch nicht richtig verstanden? (siehe Beziehungsbild)
Günther
Hallo,
Du hast die Nachschlagefelder als Kombinationsfelder in den Tabellen direkt angelegt. Dort sind die unbedingt wieder zu entfernen. In den Formularen können diese bleiben.
Da es zu einem Kunden mehrere Adressen geben kann, müssen die Adressen in einem Unterformular angezeigt werden. Direkt auf dem Hafo geht das nicht.
Ich habe die Felder als Zahl angelegt. Werden diese Felder durch die Beziehungen als Kombinationsfelder so angelegt?
Wie kann ich die Nachschlagefelder als Kombinationsfelder löschen?
Günther
Hallo.
Im Tabellenentwurf kannst du aus den Nachschlagefeldern wieder Textfelder machen.
Die Felder werden auch nicht automatisch angelegt, das hast du aktiv selbst gemacht, möglicherweise auch unbewusst.
Ein Fremdschlüssel muss doch ein Long Integer sein, sonst kann er mit dem PK =Autowert nicht in Beziehung gesetzt werden. Textfeld funktioniert hier nicht.
Günther
Hallo,
Du bringst da was durcheinander. Textfeld im Tabellenentwurf ist eine allgemeine Bezeichnung für einen beliebigen Datentyp. Nach der Umstellung bleibt der Datentyp Longinteger erhalten, denn mit dem Datentyp des Feldes hat das nichts zu tun.
Siehe Bild.
Übrigens, die Felder für die Daten egal was da reingeschrieben wird sind auf Formularen und Berichten auch Textfelder.
Vielen Dank für deine Geduld und fachliche Antwort, endlich habe ich es kapiert!!
Günther :)