Mai 16, 2021, 23:22:54

Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!


Datensatzzähler im HF ändert sich nicht bei Änderung des Ufo

Begonnen von Der Ureinwohner, April 20, 2021, 15:45:53

⏪ vorheriges - nächstes ⏩

Der Ureinwohner

Bitte lyncht mich nicht. Ich habe in alten Antworten gesucht aber leider nicht die entsprechende Lösung gefunden.

Mein Problem: Ich habe ein HF in dem ein Ufo eingebettet ist. Im HF ist ein ungebundenes Textfeld das die Datensätze im Ufo zählt und anzeigt. Das funktioniert auch alles ganz prima.

Was geht nicht ? Ich lege im Unterformular einen neuen DS an (oder lösche einen). Dieser wird im DS-Zähler im HF erst dann angezeigt wenn ich über das Kombifeld im HF eine neue Auswahl treffe und von dort dann wieder auf die ursprüngliche Auswahl zurück kehre. Das möchte ich aber nicht. Also sollte es doch irgendwie über einen vba Code (unter der Verwendung von refresh oder requery) zu bewerkstelligen sein das der Zähler aktualisiert wird sobald ich den neuen Datensatz im Ufo angelegt bzw. gelöscht habe.

Da komme ich im Moment nicht weiter. Hat mir da evtl. jemand einen Lösungsansatz ?

Viele Grüße "Ä"tsch (H)ans

..... und Danke schon mal für Eure Bemühungen

andyfau

Hallo,

im Unterformularereignis "nach Aktualisierung":

Me.Parent.Requery

Der Ureinwohner

Super - Das war´s. Jetzt klappt das mit dem Zähler. Dieser macht seinem Namen nun alle Ehre ..... und zählt

Nur.....

Nachdem ich im Ufo nun einen neuen DS angelegt habe sollte der Cursor in den nächsten (neuen) DS im Ufo springen.
Macht er aber nicht.

Was macht er ?

Er springt aus dem Ufo heraus ins HF auf den ersten DS im Kombifeld.

Das war so eigentlich nicht gedacht. Nun muss ich ich nämlich im Kombifeld wieder die ursprünglich Auswahl treffen und dann ins Ufo gehen um dann dort den nächsten (neuen) DS anzulegen.

Das ist umständlich und nervig. Der soll einfach auf den nächsten DS im Ufo springen. Mehr nicht.

Kann mir dazu evtl. auch noch jemand eine Hilfestellung geben ?

Das wäre fein.




Viele Grüße "Ä"tsch (H)ans

MzKlMu

Hallo,
eigentlich sollte
Me.Parent.ReCalcreichen.
Damit ändern sich die Datenatzzeiger nicht.
Gruß
Klaus

Der Ureinwohner

Ist aber leider so

........... und nun ?

an Me.Parent.Requery kann man ja jetzt nicht so sehr viel falsch machen.
Damit funktioniert es ja auch.

Oder soll ich es mal austauschen gegen Me.Parent.ReCalc ?

Ach lange Frage ..... ich probier einfach mal was passiert.


Viele Grüße "Ä"tsch (H)ans

MzKlMu

Hallo,
was heißt "ist leider so" ?
Ich habe ja nichts bezweifelt.

Und natürlich sollst Du das austauschen, oder warum denkst Du habe ich das geschrieben ?
Gruß
Klaus

Der Ureinwohner

Also - ich habe es mal ausgetauscht.

Nun verhält sich das Ganze so wie es sein soll (geht im UF zum nächsten (neuen) DS.
Nur der Zähler wird nicht mehr aktualisiert.

Das heißt er wird schon aktualisiert aber nur wenn ich im HF im Kombi eine andere Auswahl treffe und von dort dann wieder zur alten Auswahl zurück kehre. Also nicht nach Anlegen eines neuen Datensatzes im UF

Schön wenn es so wäre, das sich der Zähler aktualisiert und der Cursor danach im neuen DS steht.

Vielleicht muß ich beides verwenden ?

Me.Parent.Requery um den Zähler zu aktualisieren und
Me.Parent.Recalc um zum neuen DS zu springen

Das habe ich jetzt noch nicht probiert

Grüßle nochmals   .... und Danke auch für die Hilfe

Der Ureinwohner

Jetzt noch einmal ein Update

Was ich jetzt schreibe bezieht sich auf folgenden Code

Private Sub Form_AfterUpdate()

Me.Parent.Recalc

End Sub

Im Kombi suche ich mir die Auswahl zu der ich Daten hinzufügen möchte. Das funktioniert.
Der Zähler zeigt mir zur Auswahl 8 DS im Unterformular an.

Nun springe ich ins UF und gehe in den letzten DS (im DS Markierer mit * gekennzeichnet)
Ich beginne die Eingabe und der * ändert sich zum Stift.

Sobald ich mit den Eintragungen im letzten Feld fertig bin betätige ich die Entertaste und hätte
jetzt erwartet das der Cursor in einen neuen DS (*) springt. Das macht er aber nicht.
Beim betätigen der Entertaste ändert sich lediglich der "Stift im DS Markierer" zum "schwarzen Dreieck"
zum Zeichen das die Daten übernommen wurden. Das letzte Eingabefeld wird dabei schwarz hinterlegt
und der Cursor bleibt in dem eben angelegtem DS im letzten Feld stehen.

Wenn ich nun die Entertaste ein 2.tes Mal betätige springt der Cursor nun in den neuen (leeren) DS
der mit * markiert ist. Dies hätte ich beim ersten Enter schon erwartet.

Der Zähler im HF sollte also spätestens nach dem 2.ten Enter von 8 auf 9 springen. Aber auch das
funktioniert leider nicht.

Kann mir dazu nochmals jemand und die Arme greifen ?

Wäre schön

Viele Grüße "Ä"tsch (H)ans

DF6GL

Hallo,



vermutlich:

Unter Access-Optionen/Clienteinstellungen/Bearbeiten/Cursor mit Eingabetaste bewegen   "Nächster Datensatz" aktivieren.  (Es kann sein, dass dies allerdings nicht hilft, weil der Cursor zunächst noch im Eingabefeld steht).

Ansonsten beim Ereignis "Bei Fokusverlust" des Textfeldes

den Datensatz speichern und das HFO "Recalcen":

Me.Dirty =false
Me.Parent!Zählerfeld.Recalc


Wie wird denn die Berechnung durchgeführt (Code)?

Ansonsten füge ein Textfeld ("txtUFOSumme") im Fußbereich des UFO's mit Steuerelementinhalt
=Anzahl(*) ein, (was dort sinnvollerweise auch anzuzeigen wäre anstelle im HFO)

Im Hfo kommt in den Steuerelementinhalt des Zählerfelder

=Me!UFO_Steuerelementname!txtUFOSumme
zu stehen.



Oder du schreibst gleich:


Me.Dirty =false
Me.Parent!Zählerfeld =Me!txtUFOSumme

Beaker s.a.

Hallo,
Muss ich leider dem Profi widersprechen. Diese Einstellung
bewirkt, dass ich nicht mehr durch die Felder eines DS
navigiere sondern im gleichen Feld durch die Datensätze.
Was der TS braucht, ist die Eigenschaft "Zyklus" des Formulars
(Eigenschaften > Andere).
Muss nach Vorgabe des TS auf "Alle Datensätze" eingestellt werden.

gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.


Der Ureinwohner

Hallo zusammen,

ich möchte mich für die Hilfe bedanken. Alles funktioniert so wie es soll. Der Zähler zählt sofort nach der Eingabe eines neuen DS im UF nach oben (oder beim löschen nach unten) und springt anschliessend in den nächsten (neuen) DS für die nächste Eingabe (falls gewünscht).

Des Rätsels Lösung war tatsächlich

Füge ein Textfeld ("txtUFOSumme") im Fußbereich des UFO's mit Steuerelementinhalt
Code [Auswählen]
=Anzahl(*)
ein,

Im Hfo kommt in den Steuerelementinhalt des Zählerfelder

Code [Auswählen]
=Me!UFO_Steuerelementname!txtUFOSumme

zu stehen.

Also ReCalc, ReQuery usw. wird gar nicht benötigt.

Schade das Ihr alle so weit weg seid. Ich würde jetzt ein kühles Bier ausgeben

Seid einfach lieb gegrüsst von mir und Vielen Dank

"Ä"tsch (H)ans