Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!
Zitat von: Bitsqueezer am September 04, 2026, 14:36:47und auf den letzten Datensatz springen.Hier ist genau das Problem. Der letzte DS muss nicht der aktuellste sein.
Zitat von: Bitsqueezer am September 04, 2026, 14:36:47Immerhin könnte man in einem "Add"-Formular ja auch mehr als einen Datensatz eingeben.Richtig und dann würde man die ID des zuletzt hinzugefügten DS zurückgeben, was ja nicht so falsch sein kann.
Zitat von: Beaker s.a. am September 04, 2026, 12:58:47Das ist aber an der Stelle doch schon geschlossen.Die Aufrufende Instanz öffnet und schließt das Dialog-Formular. Das Dialog-Formular schließt sich nicht selbst, sondern es blendet sich nur selbst aus ("hidden"), wodurch es den Fokus veriert. Dadurch wird der aufrufende Code weiter fortgesetzt und kann auf das versteckte Dialogformular zugreifen.
ZitatNein, das funktioniert so nicht,Daher auch mein einschränkender Kommentar.
ZitatNormalerweise würde man eine Property im Dialog-Formular dafür verwenden.Das ist aber an der Stelle doch schon geschlossen. Wie wäre es mit
.Requery
'navigieren zum neuen DS
lUFoLastID = DMax("IDImUfo", "DsHerkunftDesUFo")
.Recordset.FindFirst "FKFeld = " & lUFoLastID Zitat von: Beaker s.a. am September 03, 2026, 12:23:21DoCmd.GoToRecord acDataForm, .Name, acLastNein, das funktioniert so nicht, weil hier "nur" zum letzten DS eines Recordset, einer Abfrage oder Tabelle positioniert wird, was nicht zwangsläufig der aktuellste sein muss.
'hier bin ich mir nicht sicher ob das zuverlässig ist *)
ZitatWozu steht in der folgende Zeile eine "- 2"?
strFilter1 = strFilter1 & "'" & ctl1.ItemData(varItem) & "', "Beim zusammensetzen der IN() Bedingung wird hinten immer "', " als Separator drangehängt für den nächsten Filterwert. Am Ende der Schleife wird die Länge des Strings um 2 Stellen gekürzt, also ", " abgeschnitten. dim strCond as string
'....
If Me!NamederOptionsgruppe = 1 then
strCond = " AND "
else
strCond = " OR "
end if
' Alle Filter mit AND verknüpfen
If strFilter1 <> "" And strFilter2 <> "" And strFilter3 <> "" And strFilter4 <> "" Then
strTotalFilter = strFilter1 & strCond & strFilter2 & strCond & strFilter3 & strCond & strFilter4ZitatWeil der neue Eintrag über ein Popup hinzu gefügt werden sollDann kannst du das Vorhaben direkt vom UFo aus steuern. Voraussetzung:
Private Sub cmdNeuerDS_Click()
Dim lHFoID As Long
Dim lUFoLastID As Long
With Me
lHFoID = .Parent.NameDesIDFeldes
DoCmd.OpenForm _
FormName:="NameDesPopups", _
DataMode:=acFormAdd, _
WindowMode:=acDialog, _
OpenArgs:=lHFoID
'nach dem Schliessen des Popups
'UFo aktualisieren
.Requery
'navigieren zum neuen DS
DoCmd.GoToRecord acDataForm, .Name, acLast
'hier bin ich mir nicht sicher ob das zuverlässig ist *)
End With
End SubacFormAdd = Form wird mit neuem, leerem DS geöffnetPrivate Sub Form_Open(Cancel As Integer)
Me.NameDesFKFeldes = Me.OpenArgs 'ID im HFo
End Sub