powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Vbs DAO и тип Numeric
7 сообщений из 7, страница 1 из 1
Vbs DAO и тип Numeric
    #32439669
Alex Daryin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем спецам!
Написал я тут скрипт на vbs для исполнения утилитой cscript

Скрипт создает таблицы в базе mdb. Доступ получает через DAO (36 или 3.6 как нравится).
Проблема у меня с типом Numeric (его еще Decimal кличут на MSDN'e) (в русском аксесе в конструкторе это тип Числовой/Действительное).
C помощью DAO я могу создать поле этого типа, но не могу выставить Precision и Scale - cscript говорит, что нет у объекта DAO.Field таких свойств.
Через ADOX получается (там такие свойства есть), но мне нужно либо через DAO либо с помощью SQL скрипта.
Пробовал что-то типа
create table tab1(f1 numeric(18,3)) - не берет зараза, говорит ошибка в определении поля.
Никто не сталкивался с этой проблемой, когда нужно через sql в аксесе создать поле типа numeric с заданной точностью и шкалой?
...
Рейтинг: 0 / 0
Vbs DAO и тип Numeric
    #32439910
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверил - работает.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
    Dim cmd As ADODB.Command
    Set cmd = New ADODB.Command
    With cmd
        .ActiveConnection = CurrentProject.Connection
        .CommandText =  "create table tab1(f1 numeric(18 , 3 )) "
        .CommandType = adCmdText
        .Execute , , adExecuteNoRecords
    End With
...
Рейтинг: 0 / 0
Vbs DAO и тип Numeric
    #32439931
Alex Daryin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо!
Но у меня задача осложнена тем, что нужно эту фигню сделать с помощью sql скрипта в запросе. Не через программный модуль.

То есть типа:
'скрипт try.vbs

Set oDAO=CreateObject("DAO.DbEngine.36")
Set oWorkspace = oDAO.WorkSpaces(0)
Set oDatabase = oWorkspace.OpenDatabase("empty.mdb")
..
Set oQueryDef = oDatabase.CreateQueryDef("query", "CREATE TABLE tab(f1 numeric(18, 3))")
oQueryDef.Execute
...
Рейтинг: 0 / 0
Vbs DAO и тип Numeric
    #32440001
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но у меня задача осложнена тем, что нужно эту фигню сделать с помощью sql скрипта в запросе. Не через программный модуль.

К сожалению данная конструкци работает ТОЛЬКО через ADO и не доступна через построитель запросов (т.е. нельзя сохранить сам запрос, а ты это пытаешся сделать).

Microsoft Access 2000 Technical Articles
Intermediate Microsoft Jet SQL for Access 2000
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
The data types listed in the previous SQL statement can be executed only through 
the Jet OLE DB provider and ADO. They will result in an error message if used 
through the Access SQL View user interface. Also note that if you create a field 
with the NUMERIC data type through the Access SQL View, it will result in a 
DOUBLE data type when you view the table design through the Access user 
interface. But if you create the NUMERIC data type through the Jet OLE DB 
provider and ADO, it will result in a data type of DECIMAL when you view the table 
design through the Access user interface.
...
Рейтинг: 0 / 0
Vbs DAO и тип Numeric
    #32440031
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
методом тыка обнаружено следующее
1) создаешь поле 16 типа (dbBigInt)
2) сохраняешь таблицу, рефрешишь набор табледефоф
при этом поле натурально сохранится как "Действительное"
3) снова открываешь таблицу и проставляешь
tField.Properties("DecimalPlaces").Value = мест после запятой

По другому - смотри Senin Victor
...
Рейтинг: 0 / 0
Vbs DAO и тип Numeric
    #32440079
Alex Daryin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОГРОМНОЕ СПАСИБО!!!
...
Рейтинг: 0 / 0
Vbs DAO и тип Numeric
    #32440423
DecimalPlaces<>Scale
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Vbs DAO и тип Numeric
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]