Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: accessy am Februar 12, 2013, 16:31:23

Titel: Frage zur Listbox
Beitrag von: accessy am Februar 12, 2013, 16:31:23
Momentaner Ablauf:
Doppelklick auf Textbox öffnet eine Listbox.
Klick auf Listbox fügt den Wert in die Textbox ein.
Wunderbar, klappt echt gut.

Wenn ich aber erreichen will, dass die Textbox NUR die vorgegebenen,
vorgeschlagenen Werte akzeptiert, dann geht so (erstmal) nicht.
Denn ich kann ja die Textbox auch mit einem anderen Wert füllen, der NICHT in der Listbox steht.

Nehme ich nun statt der Listbox eine ComBo und sage bei der Erstellung "Werte aus Tabelle" nehmen,
dann ist das zwar die richtige Lösung; doch gehe ich einen DS weiter, ist der gewählte Wert in der Combo unverändert.
Das wäre falsch.

Daher meine Frage. Ich würde viel lieber auf eine ComBo-Lösung verzichten und bei meiner Listbox-Lösung bleiben.
Kann man in einem der Textbox-Ereignisse (z.B. after-update) eine IF...THEN Abfrage einbauen, die ermittelt,
ob der Wert in der Textbox auch einem der Listboxeinträge entspricht?

Oder ist die Lösung viel einfacher und ich kenne die gar nicht?
Titel: Re: Frage zur Listbox
Beitrag von: MzKlMu am Februar 12, 2013, 17:04:17
Hallo,
die extra Textbox ist völlig überflüssig, kannst Du ersatzlos löschen. Der Doppelklick (inkl. Code entfällt auch. Nimm statt der Textbox gleich ein Kombifeld, nur Listeneinträge auf Ja einstellen.
Titel: Re: Frage zur Listbox
Beitrag von: accessy am Februar 12, 2013, 18:39:21
Ich glaube, ich habe es vielleicht falsch erklärt.

Die Textbox ist ein Feld im gesamten DS.
Das heißt, wenn ich diesen DS wieder aufrufe, dann muss der Eintrag, den ich "damals" aus der Listbox wählte,
wieder erscheinen.

Nehme ich aber eine ComBo, dann ist der gewählte Eintrag kein fester Bestand dieses DS.
Titel: Re: Frage zur Listbox
Beitrag von: MzKlMu am Februar 12, 2013, 19:05:27
Hallo,
ich habe das schon richtig verstanden.
ZitatNehme ich aber eine ComBo, dann ist der gewählte Eintrag kein fester Bestand dieses DS.
Da irrst Du, das Combo muss an das entsprechende Tabellenfeld gebunden werden (wie die Textbox). Dann klappt das auch.
Die Datenherkunft eines Kombis ist im Regelfall eine andere Tabelle als die des Formulars. In das Kombi kommt als Steuerelementinhalt ein Feld der Tabelle für das Formular, der gleiche Steuerelementinhalt wie in der überflüssigen Textbox.
Titel: Re: Frage zur Listbox
Beitrag von: accessy am Februar 12, 2013, 21:40:58
Okay, bin fast am Ziel.
Eine Kleinigkeit fehlt wohl noch.

Ich habe mit Hilfe des Assistenten nach folgendem Ablauf eine Combo erstellt.
Combo eingefügt ins Feld
1. Combo soll die Werte aus einer Tabelle holen
2. Tabelle ausgewählt
3. Das Feld gewählt, ist eh nur ein Feld
4. Breite der Combo... egal...weiter
5. Wert speichern in Feld gewählt
6. Das Feld ausgewählt
7. Beschriftung, also Namen geben
8. Fertig

Problem:
Ich kann irgendetwas in die Combo schreiben, was NICHT in der Tabelle existiert. Das ist nicht mein Ziel.
Was muss ich noch anklicken, abwählen, oder machen, damit die Combo wirklich NUR die Tabellenwerte akzeptiert?
Titel: Re: Frage zur Listbox
Beitrag von: MzKlMu am Februar 12, 2013, 23:07:05
Hallo,
ZitatWas muss ich noch anklicken, abwählen, oder machen, damit die Combo wirklich NUR die Tabellenwerte akzeptiert?
Es gibt die Dateneigenschaft "Nur Listeneinträge" die stellst Du auf Ja.
Titel: Re: Frage zur Listbox
Beitrag von: accessy am Februar 13, 2013, 08:27:36
Mist, das hätte ich auch selber erkennen können; neeee müssen.
Na egal,
Vielen Dank für die Infos und Hinweise dazu.
Titel: Re: Frage zur Listbox
Beitrag von: accessy am Februar 13, 2013, 20:08:42
Ich muss nochmal nachfassen.
Ich habe jetzt alle Listboxen in die Tonne gehauen und alle Textboxen,
die ihre Daten aus der Listbox erhielten, gegen eine Combo getauscht.
Alle Combos haben als Vorgabe "Nur Listboxeinträge = Ja".

Ich habe eine automatische Sperrung, einen Schreibschutz der Textboxen eingebaut.
Will man einen Wert in einer Textbox ändern, muss man erst den Status LOCKED über einen CommandButton aufheben.
Das funktioniert gut. Aber leider lässt sich die Combo nicht auf LOCKED stellen.

Oder gibt es da einen mir nicht bekannten Weg?
Titel: Re: Frage zur Listbox
Beitrag von: MzKlMu am Februar 13, 2013, 20:21:09
Hallo,
ZitatAber leider lässt sich die Combo nicht auf LOCKED stellen.
wie kommst Du darauf?
Eine Combo lässt sich wie jede Textbox auch auf LOCKED stellen.
Titel: Re: Frage zur Listbox
Beitrag von: accessy am Februar 13, 2013, 21:24:30
Mist !!
Immer diese Kleinigkeiten, oder Unachtsamkeiten.
Fehler gefunden.