-
Добрый день! Есть такая проблемма:
Есть база данных access, в ней таблица: ЗАКАЗЫ.
Сделал форму, на ней кнопку с кодом (нашел в инете):
Option Compare Database
Public Sub ClearTable(strTableName As String)
Dim strSQL As String
On Error GoTo m1
SysCmd acSysCmdSetStatus, "Очищаю таблицу - " & strTableName
strSQL = "DELETE FROM " & strTableName
CurrentDb.Execute strSQL
SysCmd acSysCmdClearStatus
Exit Sub
m1:
MsgBox "Произошла ошибка №" & Err.Number & " при очистке таблицы " & strTableName, vbCritical
Err.Clear
End Sub
Private Sub Кнопка0_Click()
ClearTable (заказы)
End Sub
Не работает, вызывается ошибка: Произошла ошибка №3131
Как очистить от данных данную таблицу Может есть более простой вариант?
-
Что говорит Err.Description ?
-
ошибка синтаксиса в предложении FROM
-
кажется заработало с :ClearTable ("заказы")
-
> novai (25.12.2008 8:29:00) [0]
> Сделал форму, на ней кнопку с кодом
Это вряд ли, такой код не откомпилируется.
-
> Это вряд ли, такой код не откомпилируется.
так он наверное в аксессе(программе) делал, там тоже формы и кнопки есть, и код вот примерно так и выглядит (не знаток бейсика чтобы точно сказать откомпилируется/транслируется он там или нет. но похоже.).
-
В запросе надо писать
Delete ALL from ...
либо
Delete * from ...
-
> В запросе надо писать
> Delete ALL from ...
> либо
> Delete * from ...
издеваешься?
-
> Нат (03.01.2009 2:26:06) [6]
Откуда ты такой синтаксис выкопал, наверно сам придумал.
Почитал бы хотя бы справку.
-
Насчет ALL действительно, ошибочка вышла.
Тем не менее, требуется указание поля либо *
Рабочие запросы из конструктора Акцесса
DELETE Doc.ID FROM Doc;
DELETE * FROM Doc;
-
Уважаемый Анатолий, как профи, влет сечет ошибки.
Однако, иногда можно и решение пропустить.
Не обижайте студентов.
;-)
Вырезка из Справки:
DELETE [таблица.*]
FROM таблица
WHERE условиеОтбора
-
> Однако, иногда можно и решение пропустить.
т.к. это НЕ решение то чего бы его и не пропустить?
> Вырезка из Справки:
скобочки видишь? что они значат знаешь? наверняка нет, иначене не предлагал бы глупостей в качестве решения (особо глупо выглядит после того как "пациент" уже сам его нашёл).
это значит, что эта часть в скобочках не обязательна, а тут она нужна при особых условиях, видишь там внутри написано "таблица"? так вот она нужна чтобы при объединениях с другими таблицами в условии указать из какой именно удаление (ну вот так синтаксис для jet придумали)... без этого все что в скобочках лишнее.
-
после запуска запроса, признаю, без * тоже работает
DELETE FROM Doc;
глаз замылился, и была полнейшая уверенность, что скобки касаются имени таблицы.
благодарю, одним заблуждением меньше
-
> Нат (04.01.2009 3:28:10) [10]
Ты ALL видишь?