Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Falscher/kein Wert in Listenfeld

Begonnen von pkoenig, September 25, 2011, 20:40:25

⏪ vorheriges - nächstes ⏩

pkoenig

Hallo!
Ich hab ein Problem, dass in meiner DB gleich mehrfach auftritt. Und ich nehme mal stark an, dass meine eigene Unfähigkeit der Auslöser ist.
Folgendes:
Bei mir kommt es immer wieder vor, dass bei der Verwendung von Listenfeldern/Komifeldern in Formularen in der dazugehörogen Tabelle der richtige Wert steht, im Listenfeld selbst aber nicht. Oder umgekehrt.
1)So ist bei dem Auswahlfeld für einen Mitarbeiter im Formular sein richtiger Name zu lesen, in der Tabelle aber nur die dazuhehörige ID - ohwohl ich beim SELECT-Befehl nach Namen wählen lasse.
2)An einer anderen Stelle kann ich in der Tabelle die Liste mit eigenschaften öffnen und korrekt auswählen. Wenn ich das Selbe im Formular mache öffnet sich eine gleich lange Liste, allerdings fehlen dort alle Einträge. 
3)Das dritte ist das Beste: Ich lasse beim Druck auf ein Kontrollkästchen das aktuelle Datum in das dafür vorgesehene Feld eintragen. In der Tabelle steht auch das korrekte Datum. Im Forular steht allerdings "Wahr" - wahrscheinlich vom Kontrollkästchen- und wenn man auf "Wahr" klickt erscheint das aktuelle datum solnage, bis man etwas anderes anklickt.
Haltet mich für blöd aber.... irgendwas mach ich doch grundlegend falsch oder?  ???


Grüße


der Philipp

MzKlMu

Hallo,
Zitatsein richtiger Name zu lesen, in der Tabelle aber nur die dazuhehörige ID
Das ist ja auch richtig, in der Tabelle darf nur die ID stehen.
Zitatohwohl ich beim SELECT-Befehl nach Namen wählen lasse.
Das ist nicht der richtige Weg. Du solltest nach dem Namen wählen, sondern nach der ID.
ZitatWenn ich das Selbe im Formular mache öffnet sich eine gleich lange Liste, allerdings fehlen dort alle Einträge. 
Was Du in einem Listen/Kombifeld siehst wird über die Spaltenbreiten gesteuert. Ich fürchte, Du wendest Listen/Kombifelder völlig fasch an.
Üblicherweise erfogt die Auswahl immer über die ID. Die Id wird in der 1.Spalte angezeigt, die man mit 0cm ausblendet. Dann sieht man den Klartext, gespeichert wird aber die ID.

Was das Kontrollkästchen betrifft, so musst Du das Feld mit dem Datum auch auf dem Formular anzeigen.
Wie trägst Du denn das Datum ein, wenn Du auf das KK drückst?

Zitataber.... irgendwas mach ich doch grundlegend falsch oder?
Das sehe ich auch so.

Verwendest Du eigentlich diese Kombis direkt in den tabellen, oder nur in Formularen?

In den Tabellen direkt solltest Du das auf keinen Fall tun, da sind diese von Übel und verhindern den sauberen Aufbau und die saubere Bedienung einer DB.
Gruß Klaus

pkoenig

#2
Hallo und danke für die umfangreiche Anwort. Hat mir sehr weiter geholfen!
Das Datum trage ich mit folgendem Code ein:

Private Sub Kontrollkästchen133_Click()
If Me!Kontrollkästchen133 = -1 Then
   Me!txtAbgeschlossen_am = Date
Else
   Me!txtAbgeschlossen_am = ""
End If

Warum da nun nicht das Datum steht ist mir nach wie vor schleierhaft.

Dass nur im Formular der Name steht und in der Tabelle die ID ist für mich aber nicht akzeptabel, so kann ich das nicht lassen. Kann man das irgendwie ändern?

Grüße

DF6GL

#3
Hallo,


weitere Fragen dazu:

ist das Kontrollkästchen gebunden (an ein Tabellenfeld: Name, Datentyp)?
erklär bitte  das Form-Textfeld "txtAbgeschlossen_am" genauer...  ( an welches Tabellenfeld (Name, Datentyp?) gebunden (Steuerelementinhalt)?


weiterhin ist

If nz(Me!Kontrollkästchen133 ,false)  Then

und


Me!txtAbgeschlossen_am = NULL
gegenüber  =""  

zu bevorzugen.
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

MzKlMu

Hallo,
ZitatDass nur im Formular der Name steht und in der Tabelle die ID ist für mich aber nicht akzeptabel, so kann ich das nicht lassen. Kann man das irgendwie ändern?
Nein, das solltest Du auf keinen Fall ändern. Das ist in einer Datenbank die einzig richtige Vorgehensweise. Du kannst auch nichts anders speichern, sonst gehen die ganzen Beziehungen flöten. Warum willst Du den Klartext in der Tabelle sehen?
Eine Tabellensicht ist für den User tabu. Alles läuft über Formulare und da siehst Du was Du willst.


Meine Frage nach den Nachschlagefeldern in der Tabelle direkt hats Du nicht beantwortet.
Gruß Klaus

pkoenig

Also:
Ich hab den Code geändert, leider hat das aber keine Veränderung gebracht.

Kontollkästchen ist gebunden an die Tabelle "Messaufträge", das Textfeld genau so.
Kontrollkästchen: Tabellenfeld "abgeschlossen", Datentyp Wahr/Falsch
Textfeld: Tabellenfeld "abgeschlossen_am" , Datentyp Datum/Zeit

@MzKlMu:
ich hab mich missverständlich ausgedrückt. Die Tabellen sollen die User natürlich nicht sehen, wohl aber eine Reihe von Abfragen, die in Formulare gepackt sind. Und da wäre für die Bedienbarkeit der Klartext von größter Bedeutung.

MzKlMu

Hallo,
ZitatUnd da wäre für die Bedienbarkeit der Klartext von größter Bedeutung.
Nein, da irrst Du. Dazu muss der Klartext nicht in der Tabelle stehen. In der Abfrage nimmst Du die beteiligten Tabellen mit den Beziehungen auf, dann hast Du auch den Klartext zur Anzeige und kannst damit machen was Du willst.

Und die Frage nach den Nachschlagefeldern hast Du immer noch nicht beantwortet.
Gruß Klaus

pkoenig

#7
Sorry da hab ich gepennt.

Nachschlagefelder nutze ich nur in Formularen.
Ja, mit den Tabellen hast du recht. Aber wie bekomm ich es denn hin, dass der klartext in meiner Abfrage/ in meinem Formular zu sehen ist?

Mal eine ganz grundsätzliche Frage:  Die auswahlliste für Listenfelder, hole ich die aus der Tabelle oder aus einer Abfrage?

MzKlMu

Hallo,
ZitatAber wie bekomm ich es denn hin, dass der klartext in meiner Abfrage/ in meinem Formular zu sehen ist?
Das habe ich doch schon geschrieben:
Zitat von: MzKlMuIn der Abfrage nimmst Du die beteiligten Tabellen mit den Beziehungen auf, dann hast Du auch den Klartext zur Anzeige und kannst damit machen was Du willst.
ZitatDie auswahlliste für Listenfelder, hole ich die aus der Tabelle oder aus einer Abfrage?
In der Regel aus einer Abfrage. Meistens ist ja eine definierte Sortierung erforderlich, dann bleibt ohnehin nur die Abfrage.
Gruß Klaus