Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Ltblue am August 20, 2013, 10:36:52

Titel: Werte in Nachschlagefeldern ersetzen
Beitrag von: Ltblue am August 20, 2013, 10:36:52
Hallo!

Ich habe ein Problem mit meiner bereits laufenden Datenbank.

In meiner Tabelle mit Personendaten "tblPerson" findet man u.a. diverse Informationen zum Wohnsitz des (in meinem Fall) Antragstellers.
Ich habe dort ein Nachschlagefeld, wo man die Bezirke auswählen kann, um Tippfehler usw zu vermeiden.

Jetzt hat es eine Bezirkszusammenlegung gegeben, wo zb aus den zwei separaten Bezirken "Bruck / Mur" und "Mürzzuschlag" ein Bezirk "Bruck - Mürzzuschlag" wurde. Deshalb soll nicht nur das Nachschlagefeld, sondern auch alle bereits eingegeben Daten (rund 18000) aktualisiert werden.
Ich habe mir das Ganze recht einfach vorgestellt mit "Suchen & Ersetzen".  ;D Leider funktioniert das nicht: "Die Tabelle enthält mindestens eins Nachschlagefeld. Anzeigewerte für Nachschlagefelder können nicht mir einem Ersetzungsvorgang geändert werden."

Meiner Meinung nach sollte dies auch mit einer Aktualisierungsabfrage funktionieren, tut es leider auch nicht: "Datentypenkonflikt in Kriterienausdruck."  :-\
UPDATE tblPerson SET tblPerson.HwsDztBezirke = "Bruck - Mürzzuschlag" WHERE (((tblPerson.HwsDztBezirke)="Bruck / Mur"));

Wie kann ich denn diese Werte "überschreiben"?
Titel: Re: Werte in Nachschlagefeldern ersetzen
Beitrag von: DF6GL am August 20, 2013, 10:58:48
Hallo,

1) Nachschlagfelder (in Tabellen)  gehören in die Tonne.
2) Nachschlagewerte gehören in zusätzliche Tabellen, die mit der eigentlichen Tabelle 1:n in Beziehung gesetzt werden (sollen)
3) "Nachschlagen" (Auswahl von Vorgabedaten) erfolgt NUR in Formularen mittels Kombifelder.



Im akt. Fall dürften sich die Nachschlagewerte in einer Wertliste des Tabellen-Kombifeldes befinden. Finde zunächst heraus, welche ID-Werte u den betroffenen Einträgen gehören. Den ersten  Eintrag davon änderst Du in die neue Bezeichnung. Damit ist die Aktualisierung dafür erledigt.  Die Aktualisierung der Datensätze für den "anderen" Eintrag erfolgt über eine Aktualisierungsabfrage etwa so:


Update tblPerson set HwsDztBezirke = <<Wert der ersten ID>>  Where HwsDztBezirke = <<Wert der zweiten ID>>
Titel: Re: Werte in Nachschlagefeldern ersetzen
Beitrag von: Ltblue am August 20, 2013, 11:15:29
Hi,

1) Ja das habe ich bei meiner Suche jetzt schon oft gelesen.  :D
2) Sorry, habe ich vergessen zu erwähnen. Das Feld "HwsDztBezirke" steht in einer 1:n Beziehung mit der Tabelle "tblBerzirke".
3) Ja, "nachgeschlagen" wird in meinem Fall in der Frontend Datei in einem Formular.

An die IDs habe ich (wie bereits so oft) nicht gedacht und es hat funktioniert. ;)

Vielen Dank! :)