2016-07-28 3 views
0

Есть ли возможность очистить каждую таблицу моей БД? Очевидно, что существует один способ использования:MS Access: Очистить все таблицы в DB

CurrentDb.Execute "DELETE FROM Table1", dbFailOnError 

для каждого стола.

Но тогда я должен использовать этот код для каждой таблицы. Было бы неплохо, если бы было решение с Loop или что-то, что не связано с именами таблиц.

ответ

4

Вы можете цикл через все локальные таблицы, используя код

Dim tdf As TableDef 

For Each tdf In CurrentDb.TableDefs 
    If Left(tdf.Name, 4) <> "MSys" Then 
     CurrentDb.Execute "DELETE * FROM [" & tdf.Name & "]", dbFailOnError 
    End If 
Next 
End Sub 
+0

Он работает, но у меня одна проблема. Некоторые имена таблиц включают в себя «-», например «tblProducts-A» (я знаю, что это титрование глупо -.-). Это приводит к синтаксической ошибке. Как я могу это решить? – Flow74

+0

Я думал, что CurrentDb.Execute «Удалить * FROM [" & tdf.Name], dbFailOnError поможет. Но это не так ... – Flow74

+0

Да, ты прав, забыл о скобках. Отредактировал ответ. –