Neuigkeiten:

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

Mobiles Hauptmenü

Erfasste Werte als Vorschlagswerte

Begonnen von simon1961, Mai 07, 2025, 13:08:06

⏪ vorheriges - nächstes ⏩

simon1961

Hallo,

gibt es im Formular die Möglichkeit, dass ich den Wert eines Feldes (z. B. Anzahl der Tage: TXT37 = [Abreise]-[Anreise]) in einem anderen Feld als Vorschlagswert (Anzahl der Tage) sehe, den ich dann mit der ENTER-Taste bestätigen oder eben überschreiben kann?
Das klingt ganz einfach, aber ich weiß nicht wie ich das hinkriege?
Danke für eure Bemühungen!

Liebe Grüße
Simon

Knobbi38

Hallo Simon,

das geht sicherlich, aber wie immer gibt es mehrere Möglichkeiten, z.B. wenn das Feld den Fokus erhält, diesen Wert vorzubelegen usw. Wenn du aber einen Abreise- und Anreisetag hast, ist die Anzahl eher konstant und sollte nur angezeigt und nicht überschreibbar sein. So etwas würde mit einem Ausdruck gehen.

Gruß Knobbi38

Bitsqueezer

Hallo,

dafür hat jedes Control die Eigenschaft "DefaultValue", die Du z.B. im GotFocus-Event in VBA setzen kannst. Damit ist das Feld automatisch vorbelegt, wenn es vorher NULL war. Im Gegensatz zu "Value" wird aber der Wert des zugrundeliegenden Datenfeldes nicht verändert, was wichtig ist. Somit wird nie etwas versehentlich überschrieben oder beim reinen Anzeigen eine Datensatzänderung begonnen.

Gruß

Christian

simon1961

Hallo,
vielen Dank für die schnellen Antworten. Wie man sieht bin ich aber kein Profi und habe kaum VBA Kenntnisse, daher bedanke ich mich auch für die 2. Antwort, kann diese aber leider nicht umsetzen.

Die erste  Antwort von knobbi38 kann ich noch nachvollziehen und habe auch schon versucht im besagten Eingabefeld in den Eigenschaften unter Fokuserhalt = [text37] oder auch die Formel = [Abreise]-[Anreise] einzugeben, aber da kommt nichts! Der Wert soll aber nur anzeigt werden, weil ja in der Folge noch eine weitere Berechnung erfolgt. Ist es aber o. K. dann sollte er mit der ENTER-TASTE bestätigt werden. Leider funktioniert aber das mit meinem Fokuserhalt nicht ...

Vielen Dank.
Lg
Simon

Knobbi38

Zitat... weil ja in der Folge noch eine weitere Berechnung erfolgt
Was für eine Berechnung soll das sein?

Es ist von Vorteil, wenn du hier ein kleines Beispiel hochladen kannst, an dem man nachvollziehen kann, was du vor hast. Dann kann wesentlich besser geholfen werden.

Gruß Knobbi38

MzKlMu

Hallo,
es stellt sich auch die Frage, wozu das Feld überhaupt benötigt wird. Die Anzahl der Tage wird doch durch das Datum für Anreise und Abreise bestimmt. Ein überschreibbares Feld für die Anzahl der Tage macht doch da keinen Sinn. Das passt ja bei Änderung nicht mehr zu den beiden Datumsfeldern.
Gruß Klaus

simon1961

Guten Morgen Klaus,

ich weiß, dass es vielleicht nicht nachvollziehbar ist, aber genau wie du es beschrieben hast. So ein Feld bräuchte ich! Derzeit ist es so, dass ich die Anzahl der Tage (TXT37 = [Abreise]-[Anreise]) zwar im Formular anzeigen lasse, dann aber in anderen Feldern wieder händisch eingeben muss. Und genau hier wäre ein Vorschlagswert die ideale Lösung, damit der Bediener die Eingabe nicht vergisst ... ich werd mal versuchen etwas hochzuladen.
Danke für eure Bemühungen!

Liebe Grüße
Simon

MzKlMu

Hallo,
so wie ich das sehe, ist Dein Vorhaben ersatzlos überflüssig. Die Anzahl der Tage ergibt sich zweifelsfrei aus Abreise-Anreise. Wenn Du die Anzahl der Tage überschreibst, was ja Dein Anliegen ist, so musst Du doch im Falle einer Überschreibung sinnvollerweise auch die Datumsfelder für Anreise und Abreise anpassen.
Alles andere wäre doch falsch.
Demzufolge genügt es, die Anzahl der TAge nur anzuzeigen aber nicht in der Tabelle zu speichern. Wenn Du eine Abfrage zur Errechnung der Tage verwendest, so ist das exakt wie wenn Du den Wert in der TAbelle speicherst.

Erkläre also erst mal warum der Wert (überschreibbar) gespeichert werden soll.
Gruß Klaus

simon1961

Hallo zusammen,
ich habe inzwischen gesehen, dass für das Eingabefeld in der zugrundeliegenden Tabelle der Standardwert 0 ist.
Kann das das Problem sein, dass im Formular der Wert nicht aus dem oben genannten Feld (TXT37 = [Abreise]-[Anreise]) als Vorschlagswert übernommen werden kann? Irgendwie muss es doch dafür auch im Formular eine Lösung geben. Es gibt nämlich auch den Fall, dass ich diesen Wert tatsächlich auch NULL stellen muss ...
Danke. Ich hätte inzwischen ein Bild vorbereitet, aber ich habe noch keine Möglichkeit gefunden, es hochzuladen. 
Lg Simon

MzKlMu

Hallo,
warum gehst Du nicht auf meine Hinweise ein ?
Und was heißt auf NULL stellen,die Zahl 0 oder ein leeres Feld?
Im Falle von NULL/0 was steht dann in den Datumsfeldern (Anreise/Abreise) ?

Um den Wert in der Tabelle zu speichern, braucht es etwas VBA.

Wenn Du auf Antworten klickst, findest Du unten einen Button zum Hochladen von Bildern etc.
Aber ich denke, was Du willst ist klar, es wird ja nur der Sinn angezweifelt. Daher kannst Du Dir ein Bild zunächst mal sparen. Die Hintergründe zu erklären wäre sicher der bessere Weg.
Gruß Klaus

Doming

Moin Simon,

Du kannst doch, sobald sowohl Anreise als auch Abreisedatum eingegeben wurden, alle Felder, in denen (aus welchen Gründen auch immer) die Differenz eingegeben werden soll, mit der dann errechneten Differenz füllen.
If Nz(Me.TxAnreise,"") <> "" And Nz(Me.TxAbreise,"") <> "" then
    Me.Differenzfeld1 = Me.TxAbreise - Me.TxAnreise
    Me.Differenzfeld2 = Me.Differenzfeld1
    .
    .
    Me.Differenzfeldn = Me.Differenzfeld1
End if

Gruß
Doming

simon1961

Hallo zusammen,
jetzt lade ich das Bild doch noch hoch, weil ich dann vielleicht besser verstanden werde.
LG Simon

Sie dürfen in diesem Board keine Dateianhänge sehen. 

MzKlMu

allo,
das Bild hättest Du Dir sparen können, denn was Du willst ist schon klar. Es gab auch schon Hinweise dazu.
Auf meine Hinweise und Rückfragen bist Du aber immer noch nicht eingegangen, mit keinem Buchstaben.
Ich möchte den Sinn des Vorhabens nach wie vor bezweifeln.

Einfach gefragt:
Warum soll Anzahl der Tage überschrieben werden, diese Anzahl hängt doch von Abreise und Anreise ab.
Gruß Klaus

simon1961

Hallo,
leider werde ich immer noch nicht verstanden:

Einfach gefragt:
Warum soll Anzahl der Tage überschrieben werden, diese Anzahl hängt doch von Abreise und Anreise ab.

Die Anzahl der Tage ist zu 90 % korrekt, bräuchte dann auch nicht überschrieben werden, sondern nur mit der ENTER-Taste bestätigt werden! Aber für die restlichen 10 % hätte ich gerne die Anzahl dieser Tage verringert oder sogar ganz auf NULL gestellt (wie auch momentan der aktuelle Stand im Formular). Und genau um das geht es! Ob das logisch oder nicht logisch, sinnvoll oder nicht sinnvoll ist, ... dafür habe ich aber meine Gründe.

Danke für die Geduld!
LG
Simon


Knobbi38

#14
Hallo Simon,

ganz klar ist das immer noch nicht, du wirst deine Gründe haben, aber hier mal ein wenig Code, der dir evtl. helfen könnte:
Private Sub txtAnreise_AfterUpdate()
  UpdateTage
End Sub

Private Sub txtAbreise_AfterUpdate()
  UpdateTage
End Sub

Private Sub txtTage_DblClick(Cancel As Integer)
  UpdateTage
  txtTage.Undo
  txtTage.Value = txtTage.DefaultValue
End Sub


Private Sub UpdateTage()
  Dim tage As Long
 
  If IsDate(txtAnreise) And IsDate(txtAbreise) Then
    tage = Abs(DateDiff("d", txtAnreise, txtAbreise))
    txtTage.DefaultValue = tage
   
    Debug.Print "Von: "; txtAnreise; " bis: "; txtAbreise; " -> "; tage; " Tage"
  End If
End Sub
Steuerelementenamen usw. mußt du natürlich noch an deine Gegebenheiten anpassen. Mit dem Doppelklick auf "txtTage" kannst du eine Neuberechnung veranlassen, falls der Wert schon mal händisch überschrieben worden ist.

Gruß Knobbi38