This is a stark reminder of why I hate embedded macros.
I converted to vba and cleaned up but not sure I understand what you want to happen.
I think you have the wrong form name in the docmd.searchforrecord line. shouldn't it be the list form?
try using this code in the "txtOpen" click event
Code:
Private Sub txtOpen_Click()
If Me.Dirty Then Me.Dirty = False '< Is the form ever dirty? you may not need this line
DoCmd.OpenForm "F05_Organization", acNormal, "", "[OrganizationIDpk]=" & Nz(OrganizationIDpk, 0), , acDialog
'the code is paused here while the F05_Organization form is open
'When the form is closed the focus returns to the list form
'if the tempvar is supposed to get its value from F05_Organization then the below is wrong.
If (Not IsNull(ID)) Then
TempVars.Add "CurrentID", OrganizationIDpk.Value
ElseIf (IsNull(ID)) Then
TempVars.Add "CurrentID", Nz(DMax("[OrganizationIDpk]", Form.RecordSource), 0)
End If
Me.Requery ' I would do this in the onclose event of the other form.
DoCmd.SearchForRecord acForm, "F05_OrganizationList", acFirst, "[OrganizationIDpk]=" & TempVars!CurrentID
TempVars.Remove "CurrentID"
End Sub