Neuigkeiten:

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

Mobiles Hauptmenü

Speichern bei Fokusverlust verhindern

Begonnen von zoulhh, Februar 03, 2017, 12:06:20

⏪ vorheriges - nächstes ⏩

crystal

Hallo,

in Antwort #6 hast du gefragt:

ZitatDaher meine Frage: Gibt es die Möglichkeit in einem Formular ein Datenblatt anzuzeigen, ohne dass dies ein Unterformular ist?

Eine solche Möglichkeit gibt es in Form eines Listenfeldes. Da dein bisheriges UFo ja auch als Datenblatt-Ansicht benutzt wird, ist die Optik eines Listenfeldes fast gleich. Natürlich kannst du im Listenfeld keine Daten ändern, aber das ist ja auch nicht gewünscht. Du willst ja nur einen bereits vorhandenen Datensatz auswählen können und das geht mit einem Listenfeld ohne Problem.

lg
crystal
Wer Fehler in meinen Antworten findet, darf sie behalten, muss sie aber kommentieren. ;-)
Dies ist keineswegs arrogant gemeint, sondern soll nur unterstreichen, dass meine Antworten - natürlich - nicht immer fehlerfrei sind und sein können.
Devise: bitte immer erst selbst probieren!

Aus gesundheitlichen Gründen nur noch selten dabei...

zoulhh

Zitat von: PhilS am Februar 03, 2017, 17:42:30
Zitat von: zoulhh am Februar 03, 2017, 16:52:31Der
Die Idee ist ja, vor dem Speichern die Prüfung auszuführen und nur dann zu Speichern, wenn die Eingabe OK ist. Daher muss die Prüfung im BeforeUpdate-Ereignis ausgeführt werden. - Sonst kannst du dort ja nicht entscheiden, ob gespeichert werden darf oder nicht.

Nein. Siehe Antwort #10. Da ist das Problem.

LGM

zoulhh

Zitat von: crystal am Februar 03, 2017, 18:59:35
Hallo,

in Antwort #6 hast du gefragt:

ZitatDaher meine Frage: Gibt es die Möglichkeit in einem Formular ein Datenblatt anzuzeigen, ohne dass dies ein Unterformular ist?

Eine solche Möglichkeit gibt es in Form eines Listenfeldes.


Das schon. Danke für Deine Antwort. Nur das kann der Benutzer nicht sortieren oder mittels Textfilter durchsuchen.

LGM

crystal

Hallo nochmal,

dann habe ich noch eine andere, vielleicht sehr exotische Idee.

Access kann die Daten des HFo ja nur deshalb automatisch speichern, weil es die Tabelle kennt, in die diese Daten gehören.

Wie wäre es nun, Access genau das "zu klauen", wenn das Formular geöffnet wird oder bevor es geschrieben werden soll (Cancel=true im Before-Update-Event sollte das ja eigentlich auch machen)?

Ansonsten gäbe es wohl nur noch die Möglichkeit, das HFo ungebunden zu gestalten (wurde ja bereits vorgeschlagen) und die ganze Sache zweistufig zu gestalten:
1. im ungebundenen HFo ein paar Daten "auf Verdacht" eingeben.
2. "Suchen" klicken
3. Im UFo einen ggf. schon vorhandenen DS auswählen und
4. ein anderes Formular aufrufen, in dem die eigentliche Erfassung/Änderung der Daten erfolgt.

Übrigens könntest du dem User natürlich auch Funktionen bauen, mit denen er die Daten des Listenfeldes filtern oder sortieren kann. Einfach passende Buttons/Textfelder im Formular über die Spalten des Listenfeldes setzen und je nach eingegebenem Wert bzw. gedrücktem Button den Select-String des Listenfeldes anpassen.

lg
crystal
Wer Fehler in meinen Antworten findet, darf sie behalten, muss sie aber kommentieren. ;-)
Dies ist keineswegs arrogant gemeint, sondern soll nur unterstreichen, dass meine Antworten - natürlich - nicht immer fehlerfrei sind und sein können.
Devise: bitte immer erst selbst probieren!

Aus gesundheitlichen Gründen nur noch selten dabei...

Lachtaube

Pflichteingabefelder sollte man IMHO schon als solche im Tabellenentwurf auszeichnen. Weiterhin kann im Formular nach jedem Nach Aktualisierung Ereignis eines relevanten Steuerelements  geprüft werden, ob die Mindestvoraussetzungen erfüllt sind, einen Datensatz speichern zu dürfen. Davon abhängig ließe sich die Aktiviert Eigenschaft eines Unteformularsteuerelements steuern, um die eingangs geschilderte Situation erst gar nicht aufkommen zu lassen.
Grüße von der (⌒▽⌒)

Beaker s.a.

Hallo zhoul,
ZitatDaher meine Frage: Gibt es die Möglichkeit in einem Formular ein Datenblatt anzuzeigen, ohne dass dies ein Unterformular ist?
Ja, ein Listfeld; - DS-Herkunft wie UFo mit Filter auf die ID im HFO (ent-
sprechend Link-Felder).
Beim Klick darauf kannst du auf .NewRecord prüfen, - bei True brichst du
die Prozedur ab, bei False wird der ausgewählte DS angezeigt.

gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Beaker s.a.

Hallo Lachtaube,
ZitatPflichteingabefelder sollte man IMHO schon als solche im Tabellenentwurf auszeichnen.
Da sollten Pflichtfelder aber trotzdem BeforeUpdate geprüft werden
um die Fehlermeldung der JET zu verhindern.
ZitatWeiterhin kann im Formular nach jedem Nach Aktualisierung Ereignis eines relevanten Steuerelements  geprüft werden,
Das wird aber hier und auch in anderen Foren oft als userunfreundlich
empfunden. Ich stimme dem zu, - eine Stelle an der die Pflichtfelder
geprüft, zusammengestellt und angezeigt werden, ist doch am über-
sichtlichsten.

gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Lachtaube

@ekkehard,

abhängig von der Realisierung von Pflichtfeldern kann ich mir auch (optional zusätzlich oder auch alleinstehend zum Vor Aktualisierung Ereignis des Formulars) selbst verfasste Gültigkeitsmeldungen um die Ohren hauen lassen bzw. das Bei Fehler Ereignis des Formulars auswarten, falls das Speichern der Daten nicht gelingt.

Wen interessiert die Empfindung anderer Foren? Wenn ich steuern will, dass ein Wechsel in ein Unterformularsteuerelement nur unter gegebenen Umständen stattfinden darf, sorge ich selbst dafür - und ein Deaktivieren des selben bietet sich als probates Mittel dazu an.
Grüße von der (⌒▽⌒)

zoulhh

Danke für alle Antworten. Ich hab es wohl zu blöd erklärt. Ich habe es jetzt so gelöst, dass ich das Datenblatt nicht als Unterformular, sondern als acDialog öffne. Dann versucht Access nicht das Ursprungsformular zu speichern.

LGM