Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Inhalt eines ungebundenen Textfeldes auslesen





Frage

Hallo, ich möchte aus einem Formular den Feldinhalt eines ungebundenen Textfeldes auslesen und in einer Abfrage verwenden. Im Formular wähle ich über ein Suchfeld einen Datensatz aus, über eine Schaltfläche möchte ich eine Abfrage (später Anfügeabfrage) starten. Die gebundenen Felder kann ich problemlos in der Abfrage auslesen, nur ein ungebundenes Textfeld nicht. Dieses Textfeld ist ein Datumsfeld (Standardwert =Datum() ). Auch beim Überschreiben des Standardwertes mit einem anderem Datum, bleibt das Feld in meiner Abfrage leer. [i]Buchungstag: [Formulare]![Formularname]![Feldname][/i] habe ich in der Abfrage verwendet. Wo ist mein Denkfehler ? Gruss oliver

Antwort 1 von Teddy7

Hallo Oliver !
Auf so eine Idee bin ich noch nicht gekommen.
Ich hab´s aber gerade mal ausprobiert.
Wenn man das Feld im (geöffneten) Formular mit der Tab-Taste bestätigt hat, dann geht´s (jedenfalls in A97).
Gruß
Teddy

Antwort 2 von oliverV

Hallo Teddy,

habe deinen Tipp befolgt, hat aber leider nicht gebracht.
Ich verwende A2000, aber daran kann es ja wohl nicht liegen.

Ich habe mein Auswahlformular noch mal umgebastelt, da mein Datumsfeld im Fußbereich des Formulars war; Formular ist jetzt ohne Kopf- und Fußbereich.
Habe das Textfeld auch gegen ein ungebundenes Kombifeld ausgetauscht, alles mit dem gleichen Ergebnis: Feld wird in Abfrage nicht erkannt, egal ob Standardwert genommen wird, Wert überschrieben wird, oder im Kombifeld ausgewählt wird.

Das Problem dürfte in der Abfrage liegen, denn ich habe bemerkt, das auch bei einem nicht vorhandenen Feldnamen das Ergebnisfeld angezeigt wird, aber ohne Inhalt bleibt (also genau wie bei meinem Problemfeld).(Wenn es Feld nicht gibt, müsste doch eigentlich eine Parameterabfrage kommen)

Meine Abfrage basiert auf drei miteinander verknüpften Tabellen, in keiner der Tabellen ist das Datumsfeld vorhanden, es soll erst in der Abfrage erstellt werden.

Nochmal der verwendete Eintrag im Abfragefeld (nicht als Kriterium):
Name: Formulare![Formularname]![Feldname]


Ich fühle mich im Moment wie ein gehörntes Tier vor einem Scheunentor,
wer kann mir helfen diese Situation zu ändern ?

Gruß
oliver


Antwort 3 von Teddy7

Hallo Oliver !
Im Moment bin ich ratlos.
Zu Hause habe ich A2000. Wenn Du willst kannst Du mir das Teil ja mal zumailen.
Vielleicht fällt mir was auf.
Gruß
Teddy

Antwort 4 von Knubbel

Hi Oliver!

Versuchs mal mit einem Makro "setzenWert" (z.B. bei der Eigenschaft "bei Fokusverlust").

Hierdurch müsste der Feldinhalt dem aktuellen Datensatz hinzugefügt werden.

Allerdings muss m.E. eine der 3 Tabellen ein Datumfeld enthalten.

mfg Knubbel

Antwort 5 von Sir_Hilly

Setz mal beim Ereignis klicken (oder bei Fokuserhalt wenn du keine Ereignisprozedur beim klicken hast) der Befehlschaltfläche das die Abfrage ausführt: Me.Recalc

Dann kannste auf die Werte zugreifen.

Gruß

Antwort 6 von oliverV

Hallo,

habe mein Problem etwas eingegrenzt.
Der Haken an der Geschichte dürfte das Datumsformat sein.
Ich habe es mit einem Textfeld versucht, in das ich eine Buchstaben oder Zahlenkombination eingebe, diese Eingabe wird korrekt in der Abfrage zurückgegeben.
Eine Buchstabenkombination kann ich sogar als Standardwert vorgeben, wird korrekt verarbeitet. Bei der Vorgaben einer Zahlenkombination als Standardwert bekomme ich diverse Zeichen (wie geschwungene Klammer) zurückgegeben. Wenn ich Zahlen-Standardwert mit einer Zahl überschreibe, wird diese auch korrekt zurückgegeben.


@ Teddy ich habe dir einen Auszug aus der DB gemailt

@ Knubbel „setzenWert“ kann nicht bringen, da das Feld im Formular bereits den Wert hat, (spätestens nach überschreiben des Standardwertes) und welchen Wert soll ich ins Formular setzen, der Wert (Buchungstag) wird erst im Formular eingegeben und soll dann in der Abfrage verwendet werden.

@ Sir Hilly Die Recalc-Methode bezieht sich lt. Access-Hilfe auf berechnete Steuerelemente die ich aktualisieren will, das dürfte mir aber nichts bringen, da es kein berechnetes Feld ist, ich also nichts aktualisieren kann.


Gruß
oliver

Antwort 7 von Knubbel

@Oliver
„setzenWert“ war von mir nur ein vorschneller Lösungsversuch, und überflüssig bzw. falsch.

Ich verstehe Dein Ziel aber nicht genau.

Wenn Du über Dein Formular eine Datumseingabe einem ausgewählten Datensatz zuordnen möchtest, bringt dies über eine Abfrage mit einem neuen Feld (Steuerelement) m.E. nichts, da eine Abfrage doch nur ein Dynaset erzeugt. Ich denke jedoch, dass Du die Datumseingabe Deinem Datensatz „dauerhaft“ zuordnen möchtest. Das geht nur, wenn in einer Deiner Tabellen auch ein Datumsfeld vorhanden ist (zum Speichern des Datums).
Und wenn das so ist, kannst Du das Datumsfeld auch in die Abfrage integrieren und aus dem ungebundenen Feld ein gebundenes machen, und Werte eintragen.

Oder sehe ich da was falsch?

mfg Knubbel


Antwort 8 von oliverV

Hallo,

habe Lösung selbst gefunden:

Buchungstag: (Format([Formulare]![Formularname]![Feldname];"Datum, kurz"))

Jetzt passiert genau das was ich will, Datum wird korrekt aus dem Formular ausgelesen und ich kann es in einer Anfügeabfrage verwenden.

Gruß
oliver


@ Knubbel Bei den dem Formular zugrundeliegenden Tabellen gibt es kein Datumsfeld, mit dem Auswahlformular möchte ich eine Anfügeabfrage erstellen, erst dort wird das Datumsfeld in eine andere zweite Tabelle eingetragen. Diese zweite Tabelle hat natürlich dieses Datumsfeld, aber das bringt mit im Formular leider nichts.
Aber ich habe die Lösung ja gefunden, auch wenn sie meine Denkerstirn etwas vergrößert hat.