Frage

Der folgende Code aktualisiert die Verknüpfungen zwischen meinen Tabellen und dem ausgewählten Backend.Ich habe bestätigt, dass das Update für alle Tabellen funktioniert, wenn ich den Code ausführe.Nach erfolgreicher Aktualisierung der Links wird die Ausführung jedoch unterbrochen und ohne Fehlermeldung.Der MsgBox (TableLinked) das Folgende wird nicht ausgeführt.

Wenn die anfängliche If anweisung wird ausgewertet zu False, MsgBox (TableLinked) ausgeführt wird, was mir sagt, dass in meiner Schleife ein Aufhängen vorliegt.

Irgendwelche Ideen, was hier los ist?

If Not GetBackend = "" Then
    For i = 0 To Db.TableDefs.Count
        If Not Db.TableDefs(i).Connect = "" Then
            Db.TableDefs(i).Connect = ";DATABASE=" & GetBackend
            Db.TableDefs(i).RefreshLink
            TableLinked = True
        End If
    Next i
Else
    TableLinked = False
End If

MsgBox (TableLinked)

BEARBEITEN

Nun, ich gehe davon aus, dass mein Index außerhalb des zulässigen Bereichs lag (obwohl er in diesem Fall nur stillschweigend fehlschlägt).Wenn ich das in Zeile 2 mache For i = 0 To Db.TableDefs.Count - 1, mein Code lebt nach der Schleife weiter.Hat das noch jemand jemals passiert?Meine Lösung beantwortet meine Frage immer noch nicht wirklich, weil ich immer noch nicht mit Sicherheit weiß, was den Code bricht.

War es hilfreich?

Lösung

Die Mitgliederelemente der TableDefs-Sammlung sind beginnend mit Null nummeriert.Das bedeutet, dass die Indexnummer des letzten Elements um eins kleiner ist als die Anzahl der Elemente.Ehrlich gesagt verstehe ich nicht, warum Ihr Code den Fehler # 3265 nicht auslöst, "Artikel wurde in dieser Sammlung nicht gefunden" ...weil das Äquivalent von TableDefs(TableDefs.Count) versuche, auf a zu verweisen TableDef was nicht existiert.

Überarbeiten Sie Ihren Code so...

'For i = 0 To Db.TableDefs.Count
Dim lngLastItem As Long
lngLastItem = (Db.TableDefs.Count - 1)
For i = 0 To lngLastItem
    If Not Db.TableDefs(i).Connect = "" Then
    ' and the rest ...
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top