Удалить данные из нескольких таблиц - PullRequest
1 голос
/ 15 июля 2009

У меня есть запрос ниже, который удалит данные из нескольких таблиц

не работает

пожалуйста, помогите мне:

DoCmd.RunSQL ("delete tblTesting,tblCodes,tblContract,tblScheduled,tblAbsense,tblClock from tblTesting,tblCodes,tblContract,tblScheduled,tblAbsense,tblClock where tblTesting.TestId = " & lstResults.Column(1) & " And tblTesting.Empid = " & Me.txtEmpIdSearch.Value & " And (tblTesting.Empid= tblCodes.EmpId Or tblTesting.Empid= tblContract.EmpId Or tblTesting.Empid= tblScheduled.EmpId Or tblTesting.Empid= tblAbsense.EmpId Or tblTesting.Empid= tblClock.EmpId ) ")

Ответы [ 3 ]

5 голосов
/ 15 июля 2009

Ваш оператор SQL неверен. Вы не можете удалить из нескольких таблиц таким образом. Смотрите здесь как это делается, таблица за таблицей.

1 голос
/ 15 июля 2009

Ваши удаления должны быть по одной таблице за раз - именно так работает SQL. Некоторые инструменты позволят вам объединить несколько операторов SQL в строку:

"delete table1 where RowId=123; delete table2 where RowID=456; delete table3 where RowID=789;"

Только что проверил, что этот метод НЕ работает в Access. Итак, вы смотрите на отдельную строку DoCmd.RunSQL для каждой таблицы.

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

0 голосов
/ 15 июля 2009

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

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