|
|
|
| Еще одна просьба о помощи: Как можно программно изменить значение по умолчанию для существующего поля в таблице? Свойство поля DefaultValue у меня устанавливается только для вновь создаваемого поля или для существующего, для которого еще не было задано значение по умолчанию. | |
|
| |
|
|
|
|
Set dbsNorthwind = OpenDatabase("Northwind.mdb")
Set tdfEmployees = dbsNorthwind.TableDefs!Employees
intDefValue = 1
'установка значения свойства DefaultValue
tdfEmployees.Fields!PostalCode.DefaultValue = intDefValue
|
| |
|
| |
|
|
|
| Я так и пытаюсь сделать, но, если ранее уже было задано другое значение по умолчанию, ничего не получается. В чем тут дело? Помогите, очень-очень-очень нужно... | |
|
| |
|
|
|
| Какое нибудь сообщение пишет? | |
|
| |
|
|
|
| Пишет следующее:
Run-Time Error '3320'
Ошибка синтаксиса (пропущен оператор) в выражении условия на значение уровня таблицы. | |
|
| |
|
|
|
| Хм, ругается то на ошибку синтаксиса... а не на то, что не может изменить значение defaultValue... Не понятно... | |
|
| |
|
|
|
| Мой фрагмент:
Dim DataBase_Data As Database
Dim sBase As String
Dim MyTable As DAO.TableDef
sBase = ПутьКДанным
Set DataBase_Data = OpenDatabase(sBase)
Set MyTable = DataBase_Data.TableDefs("МояТаблица")
MyTable.Fields("МоеПоле").DefaultValue = НовоеЗначение
Ругается на последнюю строку. При наведении курсора на MyTable.Fields("МоеПоле").DefaultValue показывает установленное ранее значение. Не могу найти ошибку. | |
|
| |
|
|
|
|
>Хм, ругается то на ошибку синтаксиса... а не на то, что не
>может изменить значение defaultValue... Не понятно...
|
а чего тут непонятного... просто не понятно пишется слитно - непонятно
вот он и ругается на ошибку синтаксиса - надо отключить русский спеллчекер в настройках
*******************
ЗЫ
не по теме я ругнулся - сам забыл что Jet не поддерживает SET/DROP DEFAULT в инструкциях ALTER [TABLE] ALTER [COLUMN]
передайте новое значение DefaultValue в переменной типа string или integer | |
|
| |
|
|
|
| Уважаемый Експлорер, может быть в таком случае мне поучить вас, что предложения начинаются с большой буквы а заканчиваются как минимум точкой? И что слова "спеллчекер" нет в русском языке, хотя мы все понимаем о чем идет речь?
К чему эти проявления наблюдательности, не относящиеся к теме? | |
|
| |
|
|
|
| сначала мне показалось странным такое длинное и сложное обращение к своиствам поля таблицы вот я и разворчался...
давайте не будем флеймить в топике - ИМХО тема себя исчерпала | |
|
| |
|
|
|
| Муторно, но должно работать (если очень нужно ;) )
Программно:
переименовать старый столбец
добавить новый с новым значением по умолчанию
перекатать туда данные из старого столбца
удалить старый столбец | |
|
| |
|
|
|
| Я уже думаю об этом, но мне важна последовательность столбцов, она должна совпадать с последовательностью в другой таблице (не очень здорово, но переделать сложно), а как ее потом восстановить я не знаю. | |
|
| |
|
|
|
| А у меня все получается (А2000), только вместо OpenDatabase(sBase) использовал CurrentDB.
tdf.Fields("MyText").DefaultValue = "Proba"
tdf.Fields("MyNum").DefaultValue = 0
ALTER COLUMN тоже работает, но не с CurrentDB, а так:
CurrentProject.Connection.Execute "ALTER TABLE Proba ALTER COLUMN MyNum LONG DEFAULT 0" | |
|
| |
|
|
|
|
>ALTER COLUMN тоже работает, но не с CurrentDB, а так:
|
а при чем тут CurrentDB? | |
|
| |
|
|
|
| Потому, что у девушки: Set DataBase_Data = OpenDatabase(sBase)
Вероятно это другая БД. Я поленился это проверять. | |
|
| |
|
|
|
| >ALTER COLUMN тоже работает, но не с CurrentDB, а так:
>а при чем тут CurrentDB?
Потому, что CurrentDB.Execute "ALTER TABLE Proba ALTER COLUMN MyNum LONG DEFAULT 0" - не работает. Ошибка синтаксиса.
Вообще ADODB.Connection побогаче насчет синтаксиса SQL. Например, с помощью CREATE TABLE можно создать DBF файл с желаемым количеством десятичных разрядов в числовых полях. | |
|
| |
|
|
|
| >Вообще ADODB.Connection побогаче насчет синтаксиса SQL.
у автора вопроса DAO судя по куску кода | |
|
| |
|
|
|
| Это был мой ответ на ваше утверждение:
>не по теме я ругнулся - сам забыл что Jet не поддерживает SET/DROP DEFAULT в >инструкциях ALTER [TABLE] ALTER [COLUMN] | |
|
| |
|
|
|
| Большое спасибо всем, кто мне отвечал. Я нашла ошибку. Поле, которому я пыталась назначить значение по умолчанию, было текстовым, новое значение нужно было присваивать с добавлением кавычек с каждой стороны . Прошу прощения за то, что отняла у вас время. | |
|
| |