ms-access の 1 ファイルに 14 個のテーブルがあります。
これらのテーブルのすべてのレコードを一度に削除したい。
私は試してみます
DELETE FROM table1
DELETE FROM table2
DELETE FROM table3
...
DELETE FROM table12
DELETE FROM table13
DELETE FROM table14
そしてそれを実行します。
しかし、それは実行できません。
どうやってするの?
ms-access の 1 ファイルに 14 個のテーブルがあります。
これらのテーブルのすべてのレコードを一度に削除したい。
私は試してみます
DELETE FROM table1
DELETE FROM table2
DELETE FROM table3
...
DELETE FROM table12
DELETE FROM table13
DELETE FROM table14
そしてそれを実行します。
しかし、それは実行できません。
どうやってするの?
MS Access SQLでは一度に1つのステートメントしか実行できませんが、MSAccessVBAを使用できます。
Sub DeleteTables()
CurrentDB.Execute "DELETE FROM Table1", dbFailOnerror
CurrentDB.Execute "DELETE FROM Table12", dbFailOnerror
End Sub
以上
astables = Split("table1,table2,table3", ",")
For Each tbl In astables
CurrentDb.Execute "DELETE FROM " & tbl, dbFailOnError
Next
いずれかのテーブルが他のテーブルと関係がある場合は、特定の順序で削除する必要があります。
すべてのテーブルから削除する必要があり、順序が重要でない場合は、システムテーブルから削除しないように注意しながら、TableDefsコレクションを使用できます。これは非常に危険なオプションです。
For Each tdf In CurrentDb.TableDefs
If Left(tdf.Name, 4) <> "Msys" And Left(tdf.Name, 1) <> "~" Then
CurrentDb.Execute "DELETE FROM " & tdf.Name, dbFailOnError
End If
Next