Office: (Office 2003) Laufzeitfehler 2501: Die Aktion OpenForm wurde abgebrochen

Helfe beim Thema Laufzeitfehler 2501: Die Aktion OpenForm wurde abgebrochen in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo, ich mal wieder. Ich kriege gerade eine mittelstarke Krise. Und zwar überprüfe ich in einer Tabelle nach ob der gerade ans System angemeldete... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Toast78, 9. März 2011.

  1. Laufzeitfehler 2501: Die Aktion OpenForm wurde abgebrochen


    Hallo, ich mal wieder.
    Ich kriege gerade eine mittelstarke Krise. Und zwar überprüfe ich in einer Tabelle nach ob der gerade ans System angemeldete Anwender das Formular öffnen darf. In jedem Formular wird das dann so festgelegt: Code:
    Die Funktion liefert True, wenn die Rechte für den Anwender nicht definiert werden konnten, oder ihm die Rechte dazu fehlen. Ich hab die Formulare schon über die Varianten Code:
    geöffnet. Bei beiden das selbe Ergebnis. Nachdem ich dann eine neue Datenbank erstellt habe, und alle Objekte importiert habe, hatte ich dann die Fresse voll.
    Weiß jemand weiter?

    :)
     
    Toast78, 9. März 2011
    #1
  2. Hi,

    Wenn du Openform abbrichst, gibt es diesen Fehler. Du sagst doch eben: Cancel = true.


    Ansonsten: sind da irgendwelche Kriterien im Spiel? Die Meldung kommt z.B. auch dann, wenn du technisch unzulässige Kriterien ansetzt (Datumsfeld = "Hallo").
     
    Atrus2711, 10. März 2011
    #2
  3. Technisch unzulässige Kriterien sind mir da nicht aufgefallen. Cancel ist vom Typ Integer und mit setFormRights liefere ich einen Boolean zurück. Von daher bleibt mir da nur noch die doofe Frage: Soll ich da jetzt überall ein Code:
    hinpacken?
     
    Toast78, 10. März 2011
    #3
  4. Laufzeitfehler 2501: Die Aktion OpenForm wurde abgebrochen

    Eine Fehlerbehandlung gehört grundsätzlich in jede Prozedur *wink.gif*
    Bist Du den Code für setFormRights mal in Einzelschritten durch und hast geprüft ob der richtige Wert zurück kommt?

    Wenn hier ein True erscheint, denke ich kommt eben das Cancel zu Stande und dann erscheint entsprechend die Meldung.

    Ich würde ggf. vorher ansetzen und den Aufruf des Forms gar nicht erst ermöglichen.
    Wozu versuchen eine Tür zu öffnen, wenn ich schon weiß dass der Schlüssel nicht paßt *wink.gif*
     
    CptChaos, 10. März 2011
    #4
  5. Hmm, ja meine Funktion setFormRights gibt schon den richtigen Wert zurück. Ich hätte mir jetzt eigentlich von der OpenForm-Prozedur gewünscht, dass es ihr eigentlich egal ist, ob das Formular geöffnet wurde oder ob das Öffnen abgebrochen wurde.

    Wie der unglücklich gewählte Name setFormRights verrät, ist die Funktion für mehrere Dinge zuständig: Sie ermittelt gleichzeitig die Rechte am Formular und den Controls. Und wenn etwas gefunden wurde, dann werden auch sofort die Rechte gesetzt. Sowohl Formular- als Steuerelement-Rechte können optional gesetzt werden. Und wenn beides nicht gefunden wurde, dann wird das Formular auch nicht geöffnet.
     
    Toast78, 10. März 2011
    #5
  6. Naja, aber diese Prüfung könnte doch auch schon der Aufrufer machen, statt der Aufgerufene.

    Oder du lässt Form_Open fehlertolerant arbeiten: On Error Resume next. Aber das ist EDV brutal...
     
    Atrus2711, 10. März 2011
    #6
  7. Sorry, dass ich von meinem eigenen Thema abdrifte, aber mit "On Error Resume Next" wollte ich auch gestern arbeiten. Hat irgend wie nicht so geklappt. Und zwar habe ich folgende Funktion gebaut: Code:
     
    Toast78, 10. März 2011
    #7
  8. Laufzeitfehler 2501: Die Aktion OpenForm wurde abgebrochen

    Bring mal deine Codetags in Ordnung. Das kann keiner lesen! *eek.gif*
     
    Atrus2711, 10. März 2011
    #8
  9. Jo, ist mir dann auch aufgefallen. *schäm*
     
    Toast78, 10. März 2011
    #9
  10. So, Wrapper-Prozedur für DoCmd.OpenForm habe ich geschrieben. Habe die jetzt auch ganz doof openForm genannt. Ich spreche sie über ComVersion.openForm an.
    Ich hoffe mal, dass ich da nicht in Konflikt mit der Original-Funktion gerate.

    Edit: Das Projekt lässt sich sowas von überhaupt nicht mehr kompilieren!
     
    Toast78, 10. März 2011
    #10
  11. Dann ist der Wurm drin.

    Wenn du die Sub mit Modulnamen ansprichst, sollte das kein Problem sein.
     
    Atrus2711, 10. März 2011
    #11
  12. Jo, das läuft jetzt wieder alles wunderbar.

    Hmm, da ich jetzt die eine Wrapper-Prozedur habe, könnte ich ja im Prinzip auch die von euch vorgeschlagene Änderung bei den Rechten in Angriff nehmen. Denn dank der Wrapper-Prozedur muss ich nur noch an einer Stelle den Code anpassen, nicht mehr bei jeder Aktion, die ein Formular öffnet.
    Die Frage ist dann jetzt nur noch, wie ich das derart effektiv hinkriege, dass ich für das Überprüfen und das Setzen der Formularrechte nicht die Tabellen für Formular- & Steuerelement-Rechte zweimal öffne.
    Ich könnte die RecordSets in der Wrapper-Prozedur öffnen und dann als Parameter übergeben.
     
    Toast78, 11. März 2011
    #12
  13. Laufzeitfehler 2501: Die Aktion OpenForm wurde abgebrochen

    Ich würde für die Rechte etc. eine eigene Klasse schreiben, welche beim Start der Anwendung instanziert wird.
    Die Klasse weiß dann für ihre Lebenszeit, welche Rechte der User mit dem sie instanziert wurde hat.

    Der Zugriff auf die entsprechenden Werte/Properties der Klasse ist dann deutlich eleganter wie ein wiederkehrender Zugriff auf Tabelle/RecordSet.
     
    CptChaos, 11. März 2011
    #13
  14. Hmm, auch eine Möglichkeit. Vom Speicherverbrauch sollte das eigentlich gehen: Ich habe bisher 82 Datensätze für die Steuerelemente und 43 für die Formulare.
     
    Toast78, 11. März 2011
    #14
  15. Ich nochmal.
    Das Konzept, dass das Formular selbst überprüft, ob es sich öffnen darf, halte ich bisher für ganz akzeptabel. Hat vor allem damit zu tun, dass mehrere Formulare mal als normales Formular geladen werden und mal auch als Unterformular. Hier habe ich dann wieder Anpassungen gespart.
     
    Toast78, 15. März 2011
    #15
Thema:

Laufzeitfehler 2501: Die Aktion OpenForm wurde abgebrochen

Die Seite wird geladen...
  1. Laufzeitfehler 2501: Die Aktion OpenForm wurde abgebrochen - Similar Threads - Laufzeitfehler 2501 Aktion

  2. MS Access Lauftzeitfehler "2501"

    in Microsoft Access Hilfe
    MS Access Lauftzeitfehler "2501": Hallo Liebe Office Gemeinde, Ich habe ein Problem mit meinem MS Access, wir haben unsere MA Liste in einer Access DB. Wenn man in unserem Formular auf "Drucken MA" klickt dann wird eine PDF...
  3. Alle VBA Ereignisprozeduren werden mit Laufzeitfehler 2501 abgewiesen

    in Microsoft Access Hilfe
    Alle VBA Ereignisprozeduren werden mit Laufzeitfehler 2501 abgewiesen: Das Problem tritt seit zwei Tagen auf meinem Desktop PC unter Windows 10 Home 64 Bit letzter Servicestand und mit Office Professional Plus 2013 auf. Diese Kombination werkelt nun seit einiger Zeit...
  4. Laufzeitfehler 2501

    in Microsoft Access Hilfe
    Laufzeitfehler 2501: Guten Abend Kann mir jemand helfen? Ich bekomme einen Fehler bei folgendem Code: Private Sub Befehl19_Click() 'Anzeigen Rechnung/Quittung DoCmd.OpenReport "formular_rq_t590_v_sr", acViewPreview,...
  5. Laufzeitfehler 2501: Die Aktion Save wurde abgebrochen

    in Microsoft Access Hilfe
    Laufzeitfehler 2501: Die Aktion Save wurde abgebrochen: Guten Morgen zusammen, ich bin neu hier im Forum und wollte mich erst einmal kurz vorstellen. Bin der Markus, 29 und erstelle ab und zu kleine Accesslösungen für ein Unternehmen wo ich gerade...
  6. Laufzeitfehler 2501

    in Microsoft Access Hilfe
    Laufzeitfehler 2501: Hallo Ich habe eine Access DB erstellt. Zuerst funktionierte alles reibungslos. Nun erscheint beim Öffnen eines frm aus einem anderen frm folgende Meldung: Laufzeitfehler 2501: Die Aktion...
  7. Laufzeitfehler 2501: openform wurde abgebrochen

    in Microsoft Access Hilfe
    Laufzeitfehler 2501: openform wurde abgebrochen: hallo, ich bekomme beim öffnen eines formulares den laufzeitfehler 2501: Private Sub Form_Open(Cancel As Integer) Dim RST As Recordset Set RST = Me.Recordset If Me.Recordset.EOF Then Cancel =...
  8. Abfangen von Laufzeitfehler 2501

    in Microsoft Access Hilfe
    Abfangen von Laufzeitfehler 2501: Hallo in die Runde, im Ereignis Bei Ohne Daten eines Berichts lasse ich eine Meldung ausgeben, wenn der Bericht leer ist. Den Bericht rufe ich über eine Schaltfläche auf und habe dort - analog...
  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