Neuigkeiten:

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

Mobiles Hauptmenü

bestimmte Formulare schließen

Begonnen von fred-neumann, November 06, 2016, 20:29:51

⏪ vorheriges - nächstes ⏩

fred-neumann

Hallo Access Experten.
Zum schließen -ausgehend von meinem "Hauptformular" aller darauf folgenden Formulare, habe ich den Code:

Public Function CloseAllForms(Optional BesidesThisOne As String)
Dim i As Long, FrmName As String
For i = Forms.Count - 1 To 0 Step -1
  FrmName = Forms(i).Name
  If FrmName <> BesidesThisOne Then
    DoCmd.Close acForm, FrmName, acSaveYes
  End If
Next i
End Function


Meine Frage: Ist es per vba möglich, alle Formulare die vom Namen "Z1" beginnen, zu schließen?

Beaker s.a.

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)

fred-neumann

Hallo Beaker,
ich bin absolut kein vba`ler, nehme an, das ich es hier einsetze:

Public Function CloseZ1(Optional BesidesThisOne As String)
Dim i As Long, FrmName As String
If Left(FrmName, 2) = "Z1" Then
For i = Forms.Count - 1 To 0 Step -1
  FrmName = Forms(i).Name

  If FrmName <> BesidesThisOne Then
    DoCmd.Close acForm, FrmName, acSaveYes
  End If

Next i
End Function

aber wo das "end If"
Oder meinst du ein vba " mit "If Left(FrmName, 2) = "Z1" Then" und "DoCmd.Close acForm"
Wie füge ich es ein?

fred-neumann

Beaker, - alles kloar!
nach "experimenten":

Public Function CloseZ1(Optional BesidesThisOne As String)
Dim i As Long, FrmName As String

For i = Forms.Count - 1 To 0 Step -1
  FrmName = Forms(i).Name

If Left(FrmName, 2) = "Z1" Then

    DoCmd.Close acForm, FrmName, acSaveYes
  End If

Next i
End Function


Danke für die Mühe,- der Code vereinfacht mir vieles!

mfg
Fred