3 Stimmen

Wie kann man auf die Rückkehr der Ausführungskontrolle nach dem Löschen einer Tabelle warten?

Ich habe den folgenden Code:

CurrentDb.Execute "DROP TABLE [" & DatabaseName & "].[" & TableName & "];"

die eine Tabelle aus einer MS Access-Datenbank löschen kann. Normalerweise wird dies mit einer Datenbank in einem gemeinsamen Netzwerk durchgeführt.

Wie kann ich sicherstellen, dass die DROP Methode abgeschlossen ist, bevor das Steuerelement zur nächsten Zeile in meinem Code übergehen kann?

Dies geschieht in VBA MS Access 2003; aber mich würde interessieren, ob die Version Auswirkungen auf die Antwort hat.

2voto

Hier ist meine Meinung zur Loop-Methode:

Public Function DeleteTable(DatabaseName as String, TableName as String) as Boolean
     DeleteTable = False

        CurrentDb.Execute "DROP TABLE [" & DatabaseName & "].[" & TableName & "];"
        Do
        Loop Until TableExists(TableName, DatabaseName) = False     

     DeleteTable = True
End Function

Public Function TableExists(TableName As String, DatabaseName As String) As Boolean   

        If 0 = CurrentDb.OpenRecordset("SELECT COUNT(*) As Count FROM [" &   DatabaseName & "].[MSysObjects] WHERE [Name] = '" & TableName & "';").Fields("Count").Value Then
             TableExists = False
        Else
             TableExists = True
        End If
End Function

0voto

UltraCommit Punkte 2056

Sie können eine Schleife schreiben, die den Befehl CurrentDb.Execute enthält. Innerhalb der Schleife speichern Sie in einer Variablen die Anzahl der Tabellen namens TableName. Solange diese Zahl = 1 ist, können Sie die Schleife nicht verlassen. Wenn die Zahl endlich Null wird, können Sie die Schleife verlassen und die Ausführung fortsetzen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X