Neuigkeiten:

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

Mobiles Hauptmenü

Datensatz über PopUpFormular ändern

Begonnen von KonradR, Juli 25, 2023, 12:03:04

⏪ vorheriges - nächstes ⏩

KonradR

Hallo liebe Accessfreunde,

ich habe ein Hauptformular mit mehreren Unterformularen. Über eine Schaltfläche (Button) auf einem Unterformular, möchte ich ein PopUpFormular aufrufen, um darüber detailierte Daten eingeben zu können, die im aktuellen Datensatz des Unterformulars angezeigt werden. Ich habe also ein PopUp-Formular erstellt und die Felder der betreffenden Tabelle darauf angeordnet. Wenn ich das ganze teste und die Daten in das PopUp-Formular eingebe, werden auch die Daten in der verknüpften Tabelle ergänzt. Allerdings nur im ersten Datensatz der Tabelle. Das ganze sieht so aus:

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

Wie kann ich jetzt dem PopUp-Formular mitteilen, dass es Bezug zu dem aktuell ausgewählten Datensatz im Unterformular, bzw. wie im abgebildeten Fall den ausgewählten Datensatz in der Tabelle nehmen soll?

MzKlMu

Hallo,
ZitatÜber eine Schaltfläche (Button) auf einem Unterformular, möchte ich ein PopUpFormular aufrufen,
Du musst beim Aufrufen den Primärschlüssel des gewünschten Datensatzes übergeben.

Wie rufst Du jetzt das PopUp auf (Code zeigen) ?
Gruß Klaus

KonradR

Hallo  MzKlMu,

Zitat von: MzKlMu am Juli 25, 2023, 12:16:06Wie rufst Du jetzt das PopUp auf (Code zeigen) ?

Danke für deine Antwort. Aktuell habe ich noch gar keinen Code eingegeben, weil ich erst herausfinden wollte, ob es auch ohne VBA geht. Müsste ich dann per VBA ein Recordset aufmachen, dass in einer SQL-Abfrage nach dem Primärschlüssels des aktuellen Datensatzes filtert?

MzKlMu

Hallo,
Du musst das Formular das an die gleiche Tabelle/Abfrage wie das Ufo binden. Dann mit FindFirst zum Datensatz positionieren mit dem passenden Primärschlüssel (PS). Der PS wird mit OpenArgs übergeben.
Mit Schließen des PopUp's werden die Daten gespeichert. Ein Button zum Übernehmen ist dazu nicht notwendig.
Ohne VBA geht das nicht.
Gruß Klaus

KonradR

#4
Hallo MzKIMu

Zitat von: MzKlMu am Juli 25, 2023, 14:13:55Hallo,
Du musst das Formular das an die gleiche Tabelle/Abfrage wie das Ufo binden.
Das habe ich gemacht.

Zitat von: MzKlMu am Juli 25, 2023, 14:13:55Dann mit FindFirst zum Datensatz positionieren
Dazu müsste ich doch sicher erst mal herausfinden, in welchem Datensatz vom Unterformular der Datensatzzeiger steht. Das habe ich so versucht:
Private Sub Form_Current()
    MsgBox Me.RecordsetClone.AbsolutePosition 
End Sub
Nur wird da in der zu Testzwecken angelegten MSG-Box, immer das Gleiche Ergebnis, nämlich -1, ausgegeben. Oder bin ich da auf dem falschen Pfad?

Zitat von: MzKlMu am Juli 25, 2023, 14:13:55Der PS wird mit OpenArgs übergeben.
Dazu habe ich mich jetzt informiert. Das dürfte ich hinbekommen.

Zitat von: MzKlMu am Juli 25, 2023, 14:13:55Mit Schließen des PopUp's werden die Daten gespeichert. Ein Button zum Übernehmen ist dazu nicht notwendig.
Super. Weniger Programmierarbeit.

Zitat von: MzKlMu am Juli 25, 2023, 14:13:55Ohne VBA geht das nicht.
Schade. Hätte ja sein können.

Beaker s.a.

Hallo Konrad,
Zu jedem Datensatz gehört eine eindeutige ID. Diese musst du
beim Aufruf des PopUp übergeben
DoCmd.OpenForm _
        FormName:="DeinPopUpFormular", _
        View:=acNormal _
        WindowMode:=acDialog, _
        WhereCondition:="ID_Feld = " & Me.IF_Feld
* Me ist hier das UFo

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)

KonradR

#6
Es funktioniert. So einfach kanns gehen. Große Freude. Vielen vielen Dank.

MzKlMu

@Ekkehard
vielen Dank fürs Mitdenken. Die Where Klausel hatte ich nicht auf dem Schirm. So ist das deutlich einfacher als mein Vorschlag mit OpenArgs.
Gruß Klaus