|
|
|
| Надо изменить тип поля (с числового на плав. точкой) существующей таблицы с данными, для этого выполяется такая команда DoCmd.TransferDatabase acExport, MyTipe, MyFile, MyObjectTipe, MyName, MyName, structureonly:=true. но при выполнении существующие данные удаляются и структура заменяется., как данные сохранить? | |
|
| |
|
|
|
| А как вы представляете себе изменение типа поля командой TransferDatabase?
Ваш код выполняет экспорт (куда?) таблицы без данных (structureonly:=true). А дальше?
Изменить тип поля в той же таблице можно SQL инструкцией ALTER TABLE ... ALTER COLUMN.
Создать копию таблицы с измененным типом поля можно запросом SELECT INTO, где для поля указать CDbl([Числовое поле]).
ЗЫ. Поле с "плав. точкой" тоже - числовое. | |
|
| |
|
|
|
| у меня есть маленькая программка, которая делает экспорт, это была только одна команда, формы, отчеты, она заменяет без проблем, а вот сейчас надо изменить тип одного поля, чтобы считалось значение с запятой, было указано длинное целое, а надо с плав. запятой. | |
|
| |
|
|
|
| Уточни в ходе работы программы???
Если нет, то просто в окне делаешь
1. копируешь таблицу
2. там добавляешь своё поле с тебе нужными данными
3. запрсом в новой таблице присваиваешь значение поля из другова поля
4. в конструкторе старое поле удаляешь
5. правишь в се связи (если имеются)
И всё
Вот хотябы и алгоритм. можно руками, а можно и процедурку сделать. | |
|
| |
|
|
|
| Проблема в том, что первоначальный вариант программы разослан по районам и данные в это поле уже занесены, в процессе работы выяснилось, что надо изменить тип одного поля.С заменой через экспорт отчетов и форм проблем нет, а вот изменить тип поля и сохранить данные не получается. | |
|
| |
|
|
|
| Исли вам всего-то и нужно - изменить тип поля в существующей таблице внешней БД, то так:
Set db = OpenDatabase(MyFile)
db.Execute "ALTER TABLE ИмяТаблицы ALTER COLUMN ИмяПоля Double"
Подобное можно сделать и в ADO. | |
|
| |