Конференция "Прочее" » как очистить таблицу от записей в access?
 
  • novai (25.12.08 08:29) [0]
    Добрый день! Есть такая проблемма:
    Есть база данных 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

    Как очистить от данных данную таблицу Может есть более простой вариант?
  • Сергей М. © (25.12.08 08:42) [1]
    Что говорит Err.Description ?
  • novai (25.12.08 08:45) [2]
    ошибка синтаксиса в предложении FROM
  • novai (25.12.08 08:51) [3]
    кажется заработало с :ClearTable ("заказы")
  • Anatoly Podgoretsky © (25.12.08 12:11) [4]
    > novai  (25.12.2008 8:29:00)  [0]

    > Сделал форму, на ней кнопку с кодом

    Это вряд ли, такой код не откомпилируется.
  • sniknik © (25.12.08 14:37) [5]
    > Это вряд ли, такой код не откомпилируется.
    так он наверное в аксессе(программе) делал, там тоже формы и кнопки есть, и код вот примерно так и выглядит (не знаток бейсика чтобы точно сказать откомпилируется/транслируется он там или нет. но похоже.).
  • Нат (03.01.09 02:26) [6]
    В запросе надо писать
    Delete ALL from ...
    либо
    Delete * from ...
  • wicked © (03.01.09 03:12) [7]

    > В запросе надо писать
    > Delete ALL from ...
    > либо
    > Delete * from ...

    издеваешься?
  • Anatoly Podgoretsky © (03.01.09 14:23) [8]
    > Нат  (03.01.2009 2:26:06)  [6]

    Откуда ты такой синтаксис выкопал, наверно сам придумал.
    Почитал бы хотя бы справку.
  • Нат (04.01.09 03:11) [9]
    Насчет ALL действительно, ошибочка вышла.

    Тем не менее, требуется указание поля либо *
    Рабочие запросы из конструктора Акцесса
    DELETE Doc.ID FROM Doc;
    DELETE * FROM Doc;
  • Нат (04.01.09 03:28) [10]
    Уважаемый Анатолий, как профи, влет сечет ошибки.
    Однако, иногда можно и решение пропустить.
    Не обижайте студентов.
    ;-)

    Вырезка из Справки:
    DELETE [таблица.*]
       FROM таблица
       WHERE условиеОтбора
  • sniknik © (04.01.09 11:40) [11]
    > Однако, иногда можно и решение пропустить.
    т.к. это НЕ решение то чего бы его и не пропустить?

    > Вырезка из Справки:
    скобочки видишь? что они значат знаешь? наверняка нет, иначене не предлагал бы глупостей в качестве решения (особо глупо выглядит после того как "пациент" уже сам его нашёл).
    это значит, что эта часть в скобочках не обязательна, а тут она нужна при особых условиях, видишь там внутри написано "таблица"? так вот она нужна чтобы при объединениях с другими таблицами в условии указать из какой именно удаление  (ну вот так синтаксис для jet придумали)... без этого все что в скобочках лишнее.
  • Нат (04.01.09 16:31) [12]
    после запуска запроса, признаю, без * тоже работает
    DELETE  FROM Doc;
    глаз замылился, и была полнейшая уверенность, что скобки касаются имени таблицы.
    благодарю, одним заблуждением меньше
  • Anatoly Podgoretsky © (04.01.09 21:59) [13]
    > Нат  (04.01.2009 3:28:10)  [10]

    Ты ALL видишь?
 
Конференция "Прочее" » как очистить таблицу от записей в access?
Есть новые Нет новых   [134453   +33][b:0][p:0]