Office: (Office 2010) Formular öffnen und Fokus danach auf ein anderes Formular schieben

Helfe beim Thema Formular öffnen und Fokus danach auf ein anderes Formular schieben in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo, ich habe ein kleines Problem, mit dem ich nicht so recht weiter komme und wo die Experten vielleicht wissen, wie es geht. Und nachdem mir... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von reinhess, 10. Februar 2021.

  1. Formular öffnen und Fokus danach auf ein anderes Formular schieben


    Hallo,
    ich habe ein kleines Problem, mit dem ich nicht so recht weiter komme und wo die Experten vielleicht wissen, wie es geht. Und nachdem mir neulich schon geholfen wurde, komme ich nochmal.
    Folgende Situation: ich habe ein Formular frmA mit einem Unterformular frmA1 und ein Formular frmB, das von frmA geöffnet wird, so daß beide nebeneinander angezeigt werden. Am Ende soll frmB den Fokus erhalten, also so was in der Art

    private sub frmA_Open()
    ...
    DoCmd.FormOpen frmB
    Forms!frmB.SetFocus
    ...
    end sub

    Der Code wird auch brav abgearbeitet, aber leider nicht ganz so wie gedacht. Access arbeitet nämlich erst den Code der Ereignisprozedur ab und danach das eigentliche Ereignis (hier das Öffnen+Anzeigen von frmA). Das heißt, frmB wird geöffnet und bekommt den Fokus und die ganze Ereigniskette Open->Load->Activate->Current wird durchlaufen, wie es in der Doku steht, und danach erst wird frmA zusammen mit frmA1 angezeigt.
    Und dabei krallt sich frmA (genauer frmA1) den Fokus zurück. So weit, so klar.
    Wo ich jetzt hänge: wie kriege ich den Fokus nach dem Anzeigen von frmA auf frmB? Hier bräuchte man irgendwas wie AfterOpen, gibt's aber nicht.
    Ich könnte die ganzen Formularöffnungen natürlich in einen separaten Modul verfrachten und explizit nacheinander durchführen. Der Code wird dabei deutlich aufwändiger. Und da frmA und frmB als Paar zusammen gehören, fände ich es logischer so wie oben.
    Ich habs auch schon mit dem Timer probiert, indem ich "Forms!frmB.SetFocus" in das Timer-Ereignis von frmA geschoben habe und das TimeInterval auf 300msec gestellt habe. Das fällt dem Anwender nicht auf und es funktioniert auch. Aber das erscheint mir als ziemliche Krücke.
    Meine Frage nun an das Forum: Gibt's eine Möglichkeit, dem frmA mitzuteilen, nach dem Anzeigen den Fokus auf frmB zu schieben?

    Schon mal danke im Voraus
    Reinhard

    :)
     
    reinhess, 10. Februar 2021
    #1
  2. Hallo Reinhard,
    Ist aber wohl die einzige Möglichkeit, und IMO auch die gängige Vorgehensweise.
    gruss ekkehard
     
    Beaker s.a., 13. Februar 2021
    #2
  3. aus der OH: Mit der SelectObject-Methode können Sie ein angegebenes Datenbankobjekt auswählen.
    Die AuswählenObjekt-Aktion funktioniert mit allen Access-Objekten, die den Fokus erhalten können. Diese Aktion weist den Fokus dem angegebenen Objekt zu und zeigt dem Objekt an, ob es ausgeblendet ist.
    Code:
    ggf. danach den Focus im frmB auf ein Feld verschieben mit
    Code:
     
  4. Formular öffnen und Fokus danach auf ein anderes Formular schieben

    sorry, was ist OH?
     
    reinhess, 13. Februar 2021
    #4
  5. Hallo,
    = Online Hilfe.
    Cursor auf den Befehl stellen und F1 drücken, schon hat man die OH. *grins
     
    gpswanderer, 13. Februar 2021
    #5
  6. danke, bin mit den Abkürzungen nicht so vertraut.

    Hallo Elmar,
    DoCmd.SelectObject ist mir schon bekannt. Das Problem ist, wo plazieren? Wie gesagt, in frmA.Open funktioniert nicht, da frmB zwar den Fokus bekommt, aber nach dem Anzeigen von frmA am Ende von frmA.Open der Fokus wieder zurück zu frmA wandert. Wenn es dafür keine Lösung gibt, nehme ich eben den Workaround, den ich ja schon herausgefunden habe.
     
    reinhess, 14. Februar 2021
    #6
  7. ohne die Datenbank gesehen zu haben würde ich am Schluss der Ereignisprozeduren des frmA (alle! Current nicht vergessen, welche ja erst nach Open und einem Requery ausgefürht wird) das frmB öffnen.
     
  8. Formular öffnen und Fokus danach auf ein anderes Formular schieben

    Hallo Reinhard,
    Was passiert den nach dem Setzen des Focus?
    Code:
    Vielleicht kannst du diesen Code, wenn die … denn dafür stehen, ins FormB
    verschieben (Open/Load).

    gruss ekkehard
     
    Beaker s.a., 14. Februar 2021
    #8
  9. -> Elmar
    das habe ich schon probiert: den Code in frmA.Current zu plazieren. Nützt nichts. Das Öffnen und Anzeigen von frmA kommt nach dem Ausführen der ganzen Ereigniskette, also auch erst nach CURRENT. Und damit ist der Fokus wieder bei frmA.

    Ich könnte beide Formulare nacheinander in einer Modul-Prozedur nacheinander mit DoCMD.OpenForm ... starten. Dann muß ich nur noch in frmA einen Datensatz auswählen und markieren, also die Aktion "Datensatz in einem Formular in Datenblattansicht durch Klick auf den DS-Markierer auswählen" in VBA nachbilden, sodaß der ganze DS markiert ist (s. Bild im Anhang). Wie geht das? DoCmd.GotoRecord setzt sich dann immer in das 1. aktivierte Feld.
     
    reinhess, 14. Februar 2021
    #9
Thema:

Formular öffnen und Fokus danach auf ein anderes Formular schieben

Die Seite wird geladen...
  1. Formular öffnen und Fokus danach auf ein anderes Formular schieben - Similar Threads - Formular öffnen Fokus

  2. Webadresse aus Formular öffnen

    in Microsoft Access Hilfe
    Webadresse aus Formular öffnen: Hallo zusammen, ich bin am verzweifeln. Ich habe in einem Formular ein Feld mit Pfaden zu einer Webadresse mit unterschiedlichen Unterseiten. In meinem Fall ist das https://www.discogs.com...
  3. Formular mit bestimmten Datensatz durch Doppelklick öffnen

    in Microsoft Access Hilfe
    Formular mit bestimmten Datensatz durch Doppelklick öffnen: Hallo zusammen, ich bin ganz neu hier und hoffe ich drücke mich verständlich aus, falls nicht, lasst es mich gerne wissen. Ich möchte eine Datenbank aufbauen, in der ich Personendaten erfassen...
  4. Formular mit Bedingung öffnen aus einem Listenfeld heraus (VBA)

    in Microsoft Access Hilfe
    Formular mit Bedingung öffnen aus einem Listenfeld heraus (VBA): Hallo zusammen, ich möchte aus einem Listenfeld ein Formular mit einer Bedingung öffnen, wenn ich die Enter/Return-Taste drücke. Hinweis: im gleichen Formular ist bereits die Enter-Taste schon...
  5. Eingebettetes PDF-Formular öffnen, mit Zellwerten einer Excel befüllen und speichern

    in Microsoft Excel Hilfe
    Eingebettetes PDF-Formular öffnen, mit Zellwerten einer Excel befüllen und speichern: Hallo Office-Experten, ich habe ein Problem in VBA, bei welchem ich einfach nicht weiterkomme und auch nach umfangreicher Suche keine Lösung gefunden habe. Folgende Problemstellung liegt vor:...
  6. Ein Formular mehrfach öffnen

    in Microsoft Access Hilfe
    Ein Formular mehrfach öffnen: Hallo alle zusammen, könntet ihr mir bitte helfen? Ich habe ein Suchformular wie im Anhang erstellt. Wenn ich auf den "Weiter-Button" klicke, kann ich jedesmal nur ein Formular (frmKundenkontakt)...
  7. Formular mit bestimmten Datensatz öffnen

    in Microsoft Access Hilfe
    Formular mit bestimmten Datensatz öffnen: Hallo Access Freunde, folgende Ausgangssituation: Eine Datenbank mit Tabellen : Kunde und Mitarbeiter. Formulare: Kunde und Mitarbeiter In der Tabelle/Formular: Kunde, habe ich ein Feld...
  8. VLC Player in Access Formular öffnen

    in Microsoft Access Hilfe
    VLC Player in Access Formular öffnen: Ich möchte den VLC Player aus einem Access Formular öffnen, bzw. möchte ich bestimmte Titel aus dem Formular mit VLC Player abspielen. Kann mir jemand helfen wie ich dass anstelle?? Danke
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden