ALTER TABLE не работает для SET DEFAULT

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
NicSoft
Обычный пользователь
Обычный пользователь
 
Сообщения: 80
Зарегистрирован: 05.04.2003 (Сб) 18:51
Откуда: Егорьевск

ALTER TABLE не работает для SET DEFAULT

Сообщение NicSoft » 16.03.2007 (Пт) 23:25

Для изменения значения по умолчанию в существующей таблице пробовал код:
Код: Выделить всё
DoCmd.SetWarnings False
DoCmd.RunSQL "ALTER TABLE Zakazy ALTER COLUMN Infl SET DEFAULT 5"
DoCmd.SetWarnings True

не работает - Ошибка синтаксиса в инструкции ALTER COLUMN
удалить (DROP DEFAULT) тоже не получается.

При этом менять тип данных поля получается без проблем:
Код: Выделить всё
DoCmd.SetWarnings False
DoCmd.RunSQL "ALTER TABLE Zakazy ALTER COLUMN Infl CURRENCY"
DoCmd.SetWarnings True


Где ошибка?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 16.03.2007 (Пт) 23:40

Из первого же обзора справки Access (а это ведь он? Думаешь, кроме Access ничего нет? Надо указывать базу) становится очевидно, что этот синтаксис не поддерживается, и надо использовать проперти объектной модели.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

NicSoft
Обычный пользователь
Обычный пользователь
 
Сообщения: 80
Зарегистрирован: 05.04.2003 (Сб) 18:51
Откуда: Егорьевск

Сообщение NicSoft » 16.03.2007 (Пт) 23:47

:oops: Да, забыл в попыхах указать, что это Access.
Может примерчик или ссылочку подкинешь на проперти объектной модели?
Я, конечно, найду вариант для своей программы и без изменения значения по умолчанию в таблице, но просто на будущее хотелось бы знать способ осуществить эту операцию.

NicSoft
Обычный пользователь
Обычный пользователь
 
Сообщения: 80
Зарегистрирован: 05.04.2003 (Сб) 18:51
Откуда: Егорьевск

Сообщение NicSoft » 18.03.2007 (Вс) 0:56

GSerg
Спасибо, получилось!

Кому интересно:

Код: Выделить всё
Dim TDS As DAO.TableDefs
Dim dbs As DAO.Database

Set dbs = CurrentDb
Set TDS = dbs.TableDefs

TDS("Zakazy").Fields("Infl").DefaultValue =3


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 147

    TopList