Neuigkeiten:

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

Mobiles Hauptmenü

DOMWERT --> Textfeld automatisch nach Eingabe füllen

Begonnen von snoergel, Juni 19, 2014, 17:58:15

⏪ vorheriges - nächstes ⏩

snoergel

Hallo liebe Forumgemeinde,

im Rahmen einer Seminararbeit bastle ich gerade eine kleine Access-Datenbank für ein Reisebüro.

Nun habe ich ein Formular für die Kunden-Stammdaten-Eingabe erstellt. Durch Eingabe der PLZ soll automatisch der Ort ausgegeben werden.

=DomWert("[KD_Ort] ";"Orte";"[PL_PLZ]=" & "KD_PLZ")

Das ist glaub ich von der Syntax her richtig (Domain oder Tabelle Orte enthält Plz (PL_PLZ --> Primärschlüssel) mit entsprechenden Orten), da inzwischen auch nicht mehr Fehler steht, wenn ich die Formularansicht aufrufe.

Nur wenn ich jetzt eine Plz eingebe, erscheint nicht automatisch das Feld KD-Ort mit Text gefüllt. Muss ich noch irgendwas aktivieren oä?

Vielen Dank im Voraus.

MzKlMu

Hallo,
und welchen Ort willst Du dann?
Eine PLZ ist nicht eindeutig und kann mehrere Orte umfassen, bist Du Dir dessen bewusst? Du benötigst daher einen extra Primärschlüssel (Autowert) in der PLZ Tabelle der statt der PLZ gespeichert wird. Und wenn Du das Ganze noch über eine Abfrage mit beiden Tabelle machst, geht Dein Vorhaben automatisch, ohne irgendeine Formel oder gar VBA.
Gruß Klaus

bahasu

Hi,

zusäztlich zur Bemerkung von Klaus halte ich die letzten " in
=DomWert("[KD_Ort] ";"Orte";"[PL_PLZ]=" & "KD_PLZ")
für falsch.

Wenn PL_PLZ eine Zahl ist:
=DomWert("[KD_Ort] ";"Orte";"[PL_PLZ]=" & KD_PLZ)

Wenn PL_PLZ ein String ist:
=DomWert("[KD_Ort] ";"Orte";"[PL_PLZ]='" & KD_PLZ & "'")
Servus

snoergel

@MzKlMu: Danke für den Hinweis, aber dessen bin ich mir bewusst. Für die Aufgabe ist das aber nicht weiter schlimm und darf so gemacht werden. Wie meinst du das mit der Abfrage? Momentan ist es als Formular angelegt. Mit dem Formular sollen ja die Kundenstammdaten gepflegt werden können.

@bahasu: PL-PLZ ist als Zahl deklariert. Wenn ich deine =DomWert("[KD_Ort] ";"Orte";"[PL_PLZ]=" & KD_PLZ) verwende, kommt wieder Fehlermeldung im Feld KD_Ort, wenn ich eine PLZ eingebe :(



MzKlMu

#4
Hallo,
eine PLZ darf keine Zahl sein, da es PLZ mit führenden 0en gibt. PLZ ist Text.
Das Formular sollte auch auf einer Abfrage beruhen, mit beiden Tabellen und der Verknüpfung über die PLZ (Text!!!). Dann kannst Du auf Domwert ersatzlos verzichten. So macht man das mit einer Datenbank.
Domwert sollte in einer korrekt aufgebauten DB so gut wie nie notwendig sein.

Im Anhang ein einfaches Beispiel, alles automatisch, ohne VBA oder eine Formel. Und schon gar nicht Domwert.
Gruß Klaus

snoergel

Hm, ok, nur ist unsere Aufgabenstellung, ob sinnvoll oder nicht, leider so gestellt, dass wir es so lösen sollen, mit Formular und DomWert.

DF6GL

Hallo

IMH(orrible)O sind da Missverständnisse/Unklarheiten am Werk:

=DomWert([color=red]"Ort_Ort"[/color];"Orte";"[color=red][Ort_PLZ][/color] =" & [KD_PLZ])

wenn:
"Ort_Ort" das Feld in der Tabelle "Orte" (Datentyp TEXT) ist, das den Ortsnamen beinhaltet.
"Ort_PLZ" das Feldin der Tabelle "Orte" (Datentyp Zahl,Long) ist, das die (numerische, ist m.E auch ziemlicher Quatsch) Postleitzahl enthält.
"KD_PLZ"  das Textfeld im Formular ist, mit dem die Postleitzahl angezeigt wird.

Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

snoergel

Lieber DF6GL,

das hat jetzt funktioniert (wenn auch leicht umgeändert, weil Felder anders heißen).