Я получаю ошибку 3125 при попытке удалить связанную таблицу - PullRequest
0 голосов
/ 06 января 2020

Я пытаюсь удалить все связанные таблицы в моем интерфейсе, но в первой таблице происходит сбой с ошибкой: 3125 " пунктуация и то, что она не слишком длинная. ".

Эта таблица содержит многозначное поле. Я включил это, потому что это может быть проблемой.

Я пытался использовать «Drop table ...» SQL и метод DoCmd.DeleteObject.

Моя процедура:


Sub relinkRequestHelp()
   Const csConnnectPrefix  As String = ";DATABASE="
   Dim bLenConnectPrefix   As Byte
   Dim db As dao.Database
   Dim tbl As dao.TableDef
   Dim s As String

   On Error GoTo eh
   bLenConnectPrefix = Len(csConnnectPrefix)
   Set db = CurrentDb()
   For Each tbl In db.TableDefs
      If Left(tbl.Connect, bLenConnectPrefix) = csConnnectPrefix Then
'         s = "DROP TABLE " & tbl.Name & ";"
'         Debug.Print s
'         db.Execute s, dbFailOnError
'         Debug.Print , db.RecordsAffected
         DoCmd.DeleteObject acTable, tbl.Name
      End If
   Next

   Exit Sub

eh: Debug.Print Err.Number, Err.Description
End Sub

Есть предложения?

Ответы [ 2 ]

0 голосов
/ 08 января 2020

В этой записи Даниэль Пино предложил мне удалить проблемную таблицу из всех отношений.

Как только я это сделал, я смог удалить связанную таблицу.

0 голосов
/ 06 января 2020

Удалить текущий объект из коллекции. Это работает для меня:

For Each tbl In db.TableDefs
    If Left(tbl.Connect, bLenConnectPrefix) = csConnnectPrefix Then
        db.TableDefs.Delete tbl.Name
    End If
Next
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...