Neuigkeiten:

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

Mobiles Hauptmenü

Dateneingabe in SubFormular - Rückkehr trotz requerry zum vorherigen Datensatz

Begonnen von daedalus78, April 19, 2020, 19:30:52

⏪ vorheriges - nächstes ⏩

daedalus78

Werte Forengemeinde!
Ich habe folgende Situation: In einem Formular werden die Elemente chronologisch nach Datum sortiert angezeigt. Bestehende Elemente sollen dort bearbeitet werden können, für die Neuanlage von Elementen wird ein Formular als PopUp zur Verfügung gestellt.
Nun zeigt sich das Verhalten, dass das ursprüngliche Formular bei einem requery auf den ersten Datensatz springt. Requery wird bei Schließen des PopUps ausgelöst. Nun habe ich den requery-Eintrag mit vorheriger Prüfung der Eigenschaft "geöffnet" (der für sich genommen auch funktioniert) versucht zu erweitern. Die Idee ist, wenn Formular geöffnet, dann wird die Position gespeichert und nach requery zurückgeschrieben. Ich habe das wie folgt umgesetzt:

Private Sub Form_Close()

Dim lngStore As Long

If (CurrentProject.AllForms("Redaktionsplan").IsLoaded) Then
    lngStore = Forms!Redaktionsplan!ID
    Forms!Redaktionsplan.Requery
    Forms!Redaktionsplan.FindFirst "Id = " & lngStore
End If

If (CurrentProject.AllForms("Redaktionsplan2").IsLoaded) Then
    lngStore = Forms!Redaktionsplan2!ID
    Forms!Redaktionsplan2.Requery
    Forms!Redaktionsplan2.FindFirst "Id = " & lngStore

End If
End Sub


Da es nicht funktioniert, habe ich es wohl falsch umgesetzt  :P Kann das überhaupt so klappen? Oder mache ich einen grundsätzlichen Denkfehler?

Danke für Eure Hilfe im Vorhinein!
Herzliche Grüße
Wolfgang

DF6GL

Hallo,

steht in jedem(!) Modulkopf "Option Explicit" ?
Ist die DB fehlerfrei kompilierbar?

ZitatForms!Redaktionsplan.Recordset.FindFirst "Id = " & lngStore


Weiterhin kann ich die Notwendigkeit eines PopUp-Forms zur Dateneingabe nicht so recht erkennen.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

MzKlMu

Hallo,
Mit FindFirst wird im Recordset des Formulars (Me) gesucht. Versuche es daher mal so:
Private Sub Form_Close()
Dim lngStore As Long
    lngStore = Me.ID
    Me.Requery
    Me.Recordset.FindFirst "Id = " & lngStore
End Sub

Ich glaube auch nicht, dass Du hier die Formulare Redaktionsplan und Redaktionsplan2 unterscheiden musst. Der Feldname ID ist ja gleich.
Gruß Klaus

daedalus78

Zitat von: DF6GL am April 19, 2020, 19:38:49
Weiterhin kann ich die Notwendigkeit eines PopUp-Forms zur Dateneingabe nicht so recht erkennen.
Die Überlegungen dahinter intesessieren mich - ich hätte ein PopUp aus Gründen der Usability gewählt. Es ist für mich angesichts einer Vielzahl von Datensätzen deren Eledigungsstati in unterschiedlichen Bereichen im Bestand geändert werden müssen eine angenehme Lösung, ein leeres Eingabefeld bereitszustellen und den Bezug zur Gesamtliste beizubehalten.
Aber da lasse ich mich gerne eins Besseren belehren bevor ich in die Irre laufe! Danke!
Gruß
Wolfgang

DF6GL

Hallo,

ich will Dich nicht eines Bessern belehren... Es mag Gründe für ein Eingabe-Popup geben, den ich aber aus Deiner Beschreibung jetzt nicht ergründen kann.

Ich interpretiere so, als dass irgendeine Eingabe gemacht werden soll, die nicht einen direkten Bezug auf den aktuell angezeigten DS hat...

Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

daedalus78

Wenn ich Deine Worte richtig deute, dann ist das PopUp eher dann ein Thema, wenn es einen unmittelbaren Bezug zu einem angezeigten Datensatz gibt. Das ist nämlich wirklich richtig, Bezug hat die Eingabe keinen - es geht viel mehr um die Neuanlage eines Datensatzes auf der sprichwörtlichen grünen Wiese.
Ich werde das mal umstellen - btw, wenn jemand Anhnung hat, dann ist auch Belehren ein Lernvorgang, mit dem ich kein Problem habe. Danke!
Gruß
Wolfgang

ebs17

ZitatDa es nicht funktioniert ...
Wieviel Denkzeit ist für eine solche vollbeschreibende Aussage notwendig? Wieviel gelbe Blitze sind zu zählen?

Ansonsten zur Technik:
- Dem PopUp könnte man beim Öffnen per OpenArgs den Formularnamen mitgeben. Dann müsste man nicht rumprobieren, wo etwas offen ist, sondern man hätte den aufrufenden Übeltäter sofort im Zugriff.
Im gleichen Sinne würde man auch die ID übergeben können, statt diese nachermitteln zu müssen. Wenn ich einen Stein in der Hand habe, den ich brauche, werfe ich ihn nicht erst weg, um ihn zu suchen und wieder in die Hand zu nehmen. Das zweite ist mehr Aufwand und birgt die Gefahr des Nichtfindens und insgesamt von Fehlern.
- Ein Requery macht nur Sinn, wenn sich die Datenbasis geändert hat. Wenn das PopUp damit etwas zu tun hat, sollte man vielleicht erst sicherstellen, dass dessen Inhalte explizit in die Tabelle gespeichert werden und von dem Requery auch erfasst werden können.
Mit freundlichem Glück Auf!

Eberhard