collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 52
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 0

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 14037
  • stats Beiträge insgesamt: 67217
  • stats Themen insgesamt: 9066
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: bestimmte Formulare schließen bei Button klick  (Gelesen 174 mal)

Offline Brallu

  • Access-Profi
  • **
  • Beiträge: 178
bestimmte Formulare schließen bei Button klick
« am: August 20, 2018, 19:21:55 »
Moin Gemeinde,
leider komme ich nicht weiter  :-[
Ich habe ein Start Formular und da kann ich mit 6 verschiedenen Buttons Formulare öffnen (siehe Bild).
Es soll beim Wechsel nie das Start Formular geschlossen werden
und nicht das ausgewählte Formular.
Aber das eventuell vorher geöffnete Formular soll geschlossen werden.
Wenn ich zurückgehe zum Start Formular über Button "zurück" (hier schließt das aktuelle FRM schon)
oder über den FRM-Reiter soll beim auswählen eines anderen Formulars das vorige geschlossen werden.

Ich hoffe das war verständlich genug  :-\

Gruß
Danny
 

Offline bahasu

  • Moderator
  • Access Guru
  • *****
  • Beiträge: 1891
Re: bestimmte Formulare schließen bei Button klick
« Antwort #1 am: August 20, 2018, 20:57:04 »
Hi

Als Anregung für eigene Versuche:
Wenn Du vor dem Aufruf eines neuen Formulars mit der Anweisung
If SysCmd(acSysCmdGetObjectState, acForm, "Mein_Formular") <> 0 Thenfeststellst, dass das Formular geöffnet ist, kannst Du es mit der do.cmd.close-Anweisung ggf. schließen.

Harald
Servus
 
Folgende Mitglieder bedankten sich: Brallu

Offline Brallu

  • Access-Profi
  • **
  • Beiträge: 178
Re: bestimmte Formulare schließen bei Button klick
« Antwort #2 am: August 20, 2018, 21:13:05 »
Moin und danke für deine Antwort!
Das ist ja glaube ich mein Problem!
Ein FRM offen zu halten und alle anderen nicht, kriege ich hin. Aber es sollen ja 2 Formulare offen bleiben.

Also frmStart mit den Auswahlmöglichkeiten und das gerade ausgewählte Formular!
Wenn ich deinen Code richtig verstehe kann ich damit auch nur ein Formular offen halten!?

Gruß
Danny
 

Offline bahasu

  • Moderator
  • Access Guru
  • *****
  • Beiträge: 1891
Re: bestimmte Formulare schließen bei Button klick
« Antwort #3 am: August 20, 2018, 21:46:58 »
Hi

Auf die Gefahr hin, dass ich es nicht verstanden habe.
Wenn Du aus dem Start-frm ein anderes aufgerufen hast, sollte doch das Start-frm noch offen, aber im Hintergrund sein.
Wenn Du im aufgerufenen Programm einen "Beenden"-Button einbaust, bei dem der Code
Me.Visble = falsehinterlegt ist, wird das aufgerufene Formular unsichtbar gemacht und das Start-frm sollte wieder sichtbar sein.
Und dann beim Aufruf eines neuen Formulars, dann entweder 5 mal die obige Zeile mit den angepassten Formularnamen oder über eine Schleife ein ungewünschtes Formular wieder schließen.

Harald
Servus
 
Folgende Mitglieder bedankten sich: Brallu

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1862
Re: bestimmte Formulare schließen bei Button klick
« Antwort #4 am: August 21, 2018, 01:23:37 »
Hallo Danny,
Ist das Start-Form ein Navigations-Formular?
Wenn Ja, geht es nicht, - da kannst du immer nur ein Formular gleichzeitig
anzeigen.

Eine Möglichkeit wäre das Start-Form als PopUp zu erstellen und mit
einem Autokey-Macro unsicht-/sichtbar zu schalten. Wenn du dann in der
DB die Registerkartenansicht einschaltest kannst du so viele Formulare
gleichzeitig öffnen wie du möchtest.

gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 
Folgende Mitglieder bedankten sich: Brallu

Offline Brallu

  • Access-Profi
  • **
  • Beiträge: 178
Re: bestimmte Formulare schließen bei Button klick
« Antwort #5 am: August 21, 2018, 09:32:47 »
Moin Ekkehard und Harald,
ich danke euch für die schnelle Antwort.
Scheinbar hatte ich es nicht richtig beschrieben!!! :-[
Ich möchte aus dem Haupt Formular ein anderes aufrufen.
und bei beenden wieder schließen. So das neben dem Hauptformular immer nur eins offen ist.

Die Lösung für mich ist die Reiter unter "Optionen - Optionen für aktuelle Datenbank - Dokumentenregisterkarten aus" auszuschalten und mit dem Button Befehl DoCmd.Close die Form zu schließen!

Ich danke euch beiden!

Gruß
Danny
 

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1862
Re: bestimmte Formulare schließen bei Button klick
« Antwort #6 am: August 21, 2018, 16:59:19 »
Hallo Danny,
So ganz komme ich mit deinen Erklärungen noch nicht klar.
Versuchen wir es Schritt für Schritt.
Zitat
Ich möchte aus dem Haupt Formular ein anderes aufrufen.
Das hast du ja sicher schon hinbekommen mit
DoCmd.OpenForm ...Dies ist i.Ü. völlig unabhängig von der gewählten Darstellungsform
(überlappend oder Registeransicht).

Zitat
und bei beenden wieder schließen
Was heisst "beim Beenden" bzw. durch was wird das ausgelöst?
Wie man ein Form schliesst weisst du ja (s. dein letzter Post).
Zitat
So das neben dem Hauptformular immer nur eins offen ist.
Dies wäre das Standardverhalten eines Navigationsformulars.
Diese sind allerdings etwas sperrig in der Handhabung (Code). Wenn
du verhindern willst, das neben dem Start-Form mehr als ein
weiteres Form geöffnet werden kann, sehe ich zwei Möglichkeiten.

1. Du fragst die Anzahl der geöffneten Formulare ab

Private Sub DeinButton_Click()
    If Forms.Count > 2 Then
        Exit Sub
        'evtl. noch eine Meldung an den User einbauen
    Else
        DoCmd.OpenForm DeinFormular    'evtl. weitere Parameter mitgeben (siehe OH)
    End If
End Sub

2. Du merkst dir den Formnamen beim Öffnen.
Im Kopf des Startforms
Private m_frm As String

Public Property Let OffenesForm(ByVal NewForm As String)
    m_frm = NewForm
End Property

Public Property Get OffenesForm() As String
    OffenesForm = m_frm
End Property

'Der Code der Buttons sieht dann so aus
Private Sub DeinButton_Click

    If OffenesForm <> vbNullString Then
        DoCmd.Close acForm, OffenesForm
    End If

    OffenesForm = "DeinFormular"
    DoCmd.OpenForm "DeinFormular"    'evtl. weitere Parameter wie oben

End Sub

Beim Schliessen (Beenden) des geöffneten Forms muss die Property
dann zurückgesetzt werden.
Private Sub Form_Close()
    OffenesForm = vbNullString
    DoCmd.Close acForm, Me.Name
End Sub

gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 
Folgende Mitglieder bedankten sich: Brallu

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1294
Re: bestimmte Formulare schließen bei Button klick
« Antwort #7 am: August 21, 2018, 22:47:26 »
Wenn ich das richtig verstanden habe, sollte in etwa dieser Code funktionieren.'im Steuerformular für jeden Knopf wiederholen
Private Sub EinKnopf_Click()
   CloseAllFormsExceptMe
   DoCmd.OpenForm "EinFormName"
End Sub

Private Sub CloseAllFormsExceptMe()
   Dim f As Access.Form
   
   For Each f In Forms
      If f.Name <> Me.Name Then DoCmd.Close acForm, f.Name, acSaveNo
   Next
End Sub
Grüße von der (⌒▽⌒)
 
Folgende Mitglieder bedankten sich: Brallu

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1862
Re: bestimmte Formulare schließen bei Button klick
« Antwort #8 am: August 22, 2018, 13:22:31 »
So einfach kann's sein  :'(
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 

Offline Brallu

  • Access-Profi
  • **
  • Beiträge: 178
Re: bestimmte Formulare schließen bei Button klick
« Antwort #9 am: August 23, 2018, 16:32:27 »
Wow Danke euch beiden!!!
Das ist genau was ich brauchte.
Ohne euch würde ich nicht weiterkommen :)

Gruß
Danny