2011-01-13 13 views
1

Ich habe den Laufzeitfehler '2501' in einem Formular. Hat jemand Ideen, warum dies passiert und wie man es beheben kann?Laufzeitfehler '2501'

Der Bericht wird durch diesen Code aufgerufen:

Private Sub Command92_Click() 
    DoCmd.SetWarnings Off 
    ''# get current reqid and version number 
    DoCmd.OpenQuery "NewReqVersion", acViewNormal 

    Dim NewReqID As Integer 
    Dim NewVerID As Integer 

    NewReqID = Me.Text58 
    NewVerID = Me.Version + 1 
    [Forms]![UWReviewForm].[StatusID] = 99 
    On Error Resume Next 
    **DoCmd.Save acForm, "UWReviewForm"** 

    DoCmd.OpenForm "NewReqVersionForm", acNormal 
    DoCmd.GoToRecord acDataForm, "NewReqVersionForm", acLast 
End Sub 

Private Sub StatusID_Change() 
    Me.LastModifiedTimeStamp = Now() 
End Sub 
+1

Befreien Sie sich von "On Error Resume Next" - es sollte nur selten verwendet werden. Welcher Code wird beim Laden oder Öffnen von NewReqVersionForm ausgeführt? – Fionnuala

+0

Verwenden Sie es nie außerhalb und Fehlerbehandlung. –

+0

'DoCmd.Save acForm' speichert den Entwurf des Formulars, nicht die Daten, die darin angezeigt werden, so dass es für mich aussieht, als ob diese Zeile überhaupt nichts Nützliches tut. Wenn Sie die Änderung in den Daten in diesem Formular speichern möchten, verwenden Sie 'Forms! UWReviewForm.Dirty = False'. –

Antwort

2

Der Fehler 2501 beim Aufruf ÖffnenFormular- kann auftreten, wenn es ein Problem mit der Datenbank. Können Sie bitte versuchen, die Schritte in dem folgenden Link unter den Überschriften "Wiederherstellen von Korruption" und "Symptom: kann ein Formular oder Bericht nicht öffnen"?

MS Access - Recovering from corruption

0

In meinem Fall hatte ich eine Tabelle mit einer externen Datenquelle verbunden sind, die eine andere Access-Datenbank war. Ich hatte mit dem Teilen dieser Datenbankanwendung in ihre Datenbankkomponente und Benutzeroberflächenkomponente experimentiert und beschlossen, die Änderung rückgängig zu machen. Irgendwo auf der ganzen Linie beschädigte dies die Verbindung zwischen meiner ursprünglichen Access-Anwendung und der externen Access-Datenquelle. Ich konnte dies überprüfen, indem ich versuchte, die verknüpfte Tabelle in meiner ursprünglichen Access-Anwendung zu öffnen, und es gab einen Fehler.

Meine Lösung war, die verknüpfte Tabelle aus meiner Access-Anwendung zu löschen und erneut zu importieren. Danach hat sich mein Problem gelöst. Die Formulare, die zuvor nicht geöffnet werden konnten, basierten auf Abfragen, die diese externe Datenquelle beinhalteten.