Доступ к VBA, выход из вызываемого саба и пропуск оставшегося саба - PullRequest
0 голосов
/ 07 марта 2019

У меня есть подпункт CreaNewT, как показано ниже, для создания новой таблицы.В CreatNewT я вызываю общедоступную подпрограмму ChecTabl, чтобы проверить, существует ли эта таблица уже.

Sub CreaNewT()

Dim ...
Dim ...

Call ChecTabl("TableName")
...

В ChecTabl у меня есть

Dim TS As TableDefs
Dim T As TableDef

Set TS = CurrentDb.TableDefs

For Each T In TS
    If T.Name = Str_Tabl Then
        MsgBox "This table already exists. Please choose another table name.", vbOKOnly
        Exit Sub
    End If
Next

Я написал Exit Sub, потому чтоЯ хотел бы выйти ChecTabl и подпрограмма, которая вызывает его, если эта таблица уже существует.Однако он только останавливает выполнение ChecTabl и продолжает с остальной частью CreaNewT.Как я могу кодировать, чтобы он прекратил выполнение ChecTabl и подпрограмма, которая его вызывает?Спасибо

1 Ответ

0 голосов
/ 08 марта 2019

Спасибо, Тим, я изменил ChecTabl на булеву функцию. Я могу проверить возвращаемое значение и решить, следует ли выйти из подпрограммы, которая вызывает эту функцию.

Public Function ChecTabl(Str_Tabl As String) As Boolean

    Dim TS As TableDefs
    Dim T As TableDef

    Set TS = CurrentDb.TableDefs

    For Each T In TS
        If T.Name = Str_Tabl Then
            MsgBox "This table already exists. Please choose another table name.", vbOKOnly
            ChecTabl = True
            Exit Function
        End If
    Next

    ChecTabl = False

Exit_Func:
    Set TS = Nothing
    Set T = Nothing

End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...