Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Q: как создать в таблице случайный счетчик?  [new]
Иван FXS
Member

Откуда:
Сообщений: 2089
Как программно создать счетчик с [Новые значения]="Случайные"? Вот так:
    Dim fld As DAO.Field
    Set fld = .CreateField("idW", dbLong)
        fld.Attributes = 17 
        fld.DefaultValue = "GenUniqueID()"
- не получается ... :-(
23 авг 04, 14:51    [901380]     Ответить | Цитировать Сообщить модератору
 Re: Q: как создать в таблице случайный счетчик?  [new]
Serge Gavrilov
Member

Откуда:
Сообщений: 3248
Дык, вы сначала добавьте поле, а потом уж меняйте его
Можно так
currentdb.execute "ALTER TABLE test ADD COLUMN id COUNTER"
currentdb.TableDefs("test").Fields("id").DefaultValue ="GenUniqueID()"
23 авг 04, 15:06    [901449]     Ответить | Цитировать Сообщить модератору
 Re: Q: как создать в таблице случайный счетчик?  [new]
Victosha
Member

Откуда: Москва
Сообщений: 2620
fld.Attributes = 16


(с выражением лица)
23 авг 04, 15:12    [901486]     Ответить | Цитировать Сообщить модератору
 Re: Q: как создать в таблице случайный счетчик?  [new]
Иван FXS
Member

Откуда:
Сообщений: 2089
Serge Gavrilov - спасибо. Хотя и ... странно немного: почему
fld.Attributes = 17
- можно делать ДО добавления поля, а

fld.DefaultValue
- только ПОСЛЕ?

Victosha. fld.Attributes = 16 - не катит ...
23 авг 04, 15:25    [901545]     Ответить | Цитировать Сообщить модератору
 Re: Q: как создать в таблице случайный счетчик?  [new]
Victosha
Member

Откуда: Москва
Сообщений: 2620
1) 17=16 Or 1, так что 16 катит

почему-то нижеприведенный код работает. В чем дело не понятно. что-то мне вокруг CollationOrder проблема чудится

Sub tt()
Dim dB As Database
Dim tD As TableDef
Dim fld As DAO.Field
Set dB = CurrentDb
Set tD = dB.TableDefs("T")
Dim tF As DAO.Fields
Set tF = tD.Fields

    Set fld = tD.CreateField("idW", dbLong, 4)
        
        fld.DefaultValue = "GenUniqueID()"
        fld.Attributes = 16         
   tD.Fields.Append fld
   tD.Fields.Refresh
   Set fld = tD.Fields("idW")
   
   fld.DefaultValue = "GenUniqueID()"
   dB.TableDefs.Refresh
End Sub
23 авг 04, 17:58    [902181]     Ответить | Цитировать Сообщить модератору
 Re: Q: как создать в таблице случайный счетчик?  [new]
Иван FXS
Member

Откуда:
Сообщений: 2089
Это Вы, типа, для надежности - дважды присвоили
fld.DefaultValue = "GenUniqueID()"
- и до, и после
tD.Fields.Append fld
?

"Не катит" у меня означало, что оно САМО ПО СЕБЕ не делает счетчик СЛУЧАЙНЫМ!
23 авг 04, 18:10    [902203]     Ответить | Цитировать Сообщить модератору
 Re: Q: как создать в таблице случайный счетчик?  [new]
Victosha
Member

Откуда: Москва
Сообщений: 2620
Иван FXS
Это Вы, типа, для надежности - дважды присвоили
fld.DefaultValue = "GenUniqueID()"
- и до, и после
tD.Fields.Append fld
?

"Не катит" у меня означало, что оно САМО ПО СЕБЕ не делает счетчик СЛУЧАЙНЫМ!

нет не для надежности, а в результате наблюдений (левым глазом) над таблами И ЗАПРОСАМИ.
23 авг 04, 19:28    [902345]     Ответить | Цитировать Сообщить модератору
 Re: Q: как создать в таблице случайный счетчик?  [new]
Иван FXS
Member

Откуда:
Сообщений: 2089
Victosha
Иван FXS
дважды присвоили
fld.DefaultValue = "GenUniqueID()"
- и до, и после
tD.Fields.Append fld

нет не для надежности, а в результате наблюдений (левым глазом) над таблами И ЗАПРОСАМИ.

- хмммм ... если первое GenUniqueID "срабатывает", то зачем нужно второе?
Если первое GenUniqueID НЕ срабатывает, то зачем нужно ОНО? Сорри.
24 авг 04, 09:20    [902767]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить