Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: Fu am November 30, 2020, 20:55:49

Titel: eingelesenen Text im Textfeld speichern
Beitrag von: Fu am November 30, 2020, 20:55:49
Hallo,

ich habe im Formular ein Kombinationsfeld bei dem man eine Liste mit Abkürzungen zur Auswahl hat. In einem daneben liegendem Textfeld wollte ich eine Spalte mit den jeweiligen Beschreibungen aus dem Kombinationsfeld auslesen. Da hierbei nur 255 Zeichen angezeigt werden, wird der Text jetzt über die folgende Ereignisprozedur abgerufen:

Me!txtBeschreibung = DLookUp("T1_Beschreibung","tblT1","T3_ID = " & Me!cboT1)

Damit bei getätigter Auswahl der Text im Textfeld beim Neustart des Formulars immer noch so steht, muss ich den ja speichern. Und hier ist halt die Frage, speichere ich wirklich den kompletten Text noch einmal oder gibt es die Möglichkeit, dass über Werte abzuspeichern, wie es ja üblich ist?

Vielen Dank Raphael
Titel: Re: eingelesenen Text im Textfeld speichern
Beitrag von: steffen0815 am Dezember 01, 2020, 07:38:14
Hallo,
ich kann deinem Problem nicht so ganz folgen.
Der Wert im Textfeld soll dem Wert im Kombi "entsprechen".

Wenn du das Formular (neu) aufrufst, steht doch ein (irgendein) Wert in "Me!cboT1".
Mit diesem Wert kannst du doch dann  das Textfeld neu "berechnen".
Titel: Re: eingelesenen Text im Textfeld speichern
Beitrag von: ebs17 am Dezember 01, 2020, 08:57:49
In einer Datenbank speichert man aus guten Gründen solche Informationen nur genau einmal. Ansonsten verweist man auf diese Information über einen Schlüssel.
Titel: Re: eingelesenen Text im Textfeld speichern
Beitrag von: Beaker s.a. am Dezember 01, 2020, 12:15:42
Hallo Raphael,
Der Wert ist doch schon gespeichert. Sonst könntest du ihn ja
nicht mit DLookup auslesen.
Da die Hintergründe (Tabellen/Beziehungen, Formularaufbau und
DS-Herkunft) unbekannt sind, erstmal ein Vorschlag ins Blaue; -
wiederhole die Zuweisung beim Ereignis "Beim Anzeigen" des
Formulars (VBA = Form_Currrent). Funzt ohne weiteres Zutun aber
nur, wenn das Kombi beim Öffnen einen Wert hat. Ist es ungebunden,
müsstest du diese Zeile voranstellen
Me.DeinKombi = Me.DeinKombi.ItemData(0)Damit wird er erste DS im Kombi festgelegt.

gruss ekkehard
Titel: Re: eingelesenen Text im Textfeld speichern
Beitrag von: Fu am Dezember 01, 2020, 14:59:13
Hallo,

vielen Dank für die Antworten.

Ich habe es jetzt so gemacht wie von Ekkehard vorgeschlagen. Das funktioniert auch so lange das Kombi einen Wert hat.

Wo genau muss ich den gennannten Code voranstellen? Wenn ich den mit in die Prozedur packe setzt er mir ja die bereits ausgewählten Kombi-Werte immer wieder auf den ersten Wert zurück.

Vielen Dank für Eure Mühe,
Raphael
Titel: Re: eingelesenen Text im Textfeld speichern
Beitrag von: Fu am Dezember 01, 2020, 15:23:16
Hab ihn jetzt beim Standartwert abgelegt, denke so war es gedacht.

Viele Grüße
Raphael
Titel: Re: eingelesenen Text im Textfeld speichern
Beitrag von: Beaker s.a. am Dezember 01, 2020, 18:49:26
Hallo Raphael,
Nö, mit dem Standardwert hat das nix zu tun. Der wirkt nur bei neuen DS, und
würde dann immer den ersten Eintrag im Kombi markieren; - vergiss das komplett.
Ausserdem schrieb ich
Zitatbei einem ungebundenem Kombi
deins ist aber wohl gebunden an das Feld "T3_ID", das sich wie ein FK anfühlt.
Der sollte eigentlich immer einen Wert haben. Falls nicht, kann ja vorkommen,
spielt es eh keine Rolle, den musst du eben nachtragen (aus dem Kombi auswählen).
Und dann zeigt auch das Textfeld einfach den Langtext der ausgewählten Abkürzung
an. Um die Anzeige von "#Fehler" zu verhindern schreibst du
Me!txtBeschreibung = Nz(DLookUp("T1_Beschreibung","tblT1","T3_ID = " & Me!cboT1),"")
gruss ekkehard
Titel: Re: eingelesenen Text im Textfeld speichern
Beitrag von: Fu am Dezember 03, 2020, 12:43:00
Hallo Ekkehard,

danke für die Rückmeldung. Hab dann auch schnell gemerkt das das so nicht passt, nun scheint es aber zu funktionieren. Vielen Dank dafür.

Gruss Raphael