Access-VBA-Fehler 0 (null)
Ich habe eine Access 2007-Datenbank. Es nutzt SharePoint 2010-verknüpfte Listen als Tabellen. Ich habe mehrere Formulare, die immer eine Fehlernummer "0". Ich bekomme diese Fehlermeldung in diesen Szenarien:
-
klicken Sie in eine comboBox verwendet, die eine SharePoint-Liste als Quelle, geben Sie dann text, der nicht auf der Liste. (das "limit to list" - Eigenschaft muss true sein). Wenn diese Eigenschaft false ist, dann habe ich nicht den Fehler und alles funktioniert gut, aber dies muss auf true gesetzt werden, die für diese spezielle Datenbank.
-
verliert die Verbindung zu SharePoint, klicken Sie auf ein Objekt (comboBox etc.) verwendet, die eine SharePoint-Liste als Quelle. Es ist der code in einer "Got_Focus" sub zieht die Daten aus der Liste.
Wenn ich zu fangen-Fehler-Nummer 0 und aufpassen, dass unmittelbar nach der echten Beschreibung zeigt. Zum Beispiel im ersten Szenario nach dem Fang 0 der Fehler "Element nicht in Liste" - box zeigen, die ist ein echter Fehler (2237) und die zweite "can' T find record source" - Feld wird zeigen, Fehler 2580. Ich kann aber nicht fangen diese Fehler, und wenn ich in einer message-box die Anzeige der Fehler-Nummer nach dem Fang-Fehler 0, es zeigt nie/oder aktiviert.
Scheint es, bekomme ich die Fehlermeldung 0 konstant, wenn die "Limit to list" - Eigenschaft auf true festgelegt ist. Ich habe versucht zu tun, "On_Load" sub set Limit to List auf true, und "On_close" auf false gesetzt wird, aber dies verursacht einen Fehler, kann nicht Objekt auf der "On_Close()" sub. Hier ist ein Beispiel:
Private Sub Got_Focus()
On Error GoTo catchError
Me.Requery \\This could be any code that "pings" the SharePoint List
exit_catchError:
Exit Sub
catchError:
If Err.Number = 0 Then Resume Next \\i'v tried with and without this. Gives error 20 with
\\ Also tried If Then with Err.Number = 0
If Err.Number = 2580 Then \\Doesn't catch
MsgBox "Reconnect to SharePoint"
ElseIf Err.Number = 2237 Then \\Doesn't catch
MsgBox "Text not on List"
Else
MsgBox Err.Number & " " & Err.Description
End If
End Sub
Du musst angemeldet sein, um einen Kommentar abzugeben.
Error code 0 bedeutet die Abwesenheit von einem Fehler. Die einzige Zeit, die ich gesehen habe eine messagebox über den Fehler 0 ist, wenn ich verpasst haben, setzen
Exit Sub
vor dem error-handler. Wenn Sie dieExit Sub
aus deinem code oben, der Körper der sub laufen und dann ist der error-handler wird gestartet. DieElse
- Klausel ausgeführt wird, wird ein Meldungsfeld mit nur 0 drin. Ist das eine Möglichkeit?Ich es behoben, indem mit DataErr anstatt Err.Anzahl. Ich nahm auch aus der else-Anweisung zeigen Sie eine Meldung. Es scheint zu funktionieren jetzt.
Ich nur aufgespürt, so etwas wie dieses, wo ich Sie erhalten eine "error 0" angezeigt in einem Steuerelement wenn die Quelle der Kontrolle wurde eine Formel; aber wenn es nur eine Spalte einer Tabelle, es hatte keine Fehler. Zum Beispiel, wenn die Quelle der Kontrolle war "[colA]", keine Fehlermeldung. Wenn die Quelle der Kontrolle war "=[colA]", erhalten Sie eine "Error 0" angezeigt. Das problem stellte sich heraus, dass die Kontrolle hatte, standardmäßig auf den Namen "colA". Das Update war zum umbenennen der Steuerung.