1

ms-access の 1 ファイルに 14 個のテーブルがあります。

これらのテーブルのすべてのレコードを一度に削除したい。

私は試してみます

DELETE FROM table1
DELETE FROM table2
DELETE FROM table3
...
DELETE FROM table12
DELETE FROM table13
DELETE FROM table14

そしてそれを実行します。

しかし、それは実行できません。

どうやってするの?

4

1 に答える 1

2

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
于 2012-11-04T10:31:50.940 に答える