Создание счётчика

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Создание счётчика

Сообщение Alexanbar » 30.10.2004 (Сб) 19:02

Есть такой код:


Dim tblOrganization As TableDef

Set tblOrganization = db.TableDefs("Organizations")
If Err.Number = 3265 Then

Set tblOrganization = db.CreateTableDef("Organizations")

End If
Err.Clear


With tblOrganization
Err.Clear
.Fields.Append .CreateField("Organization ID", dbLong)
.Fields("Organization ID").Attributes = dbAutoIncrField


end with


Если такая таблица уже была, почему-то нельзя создать счётчик, ДАЖЕ, ЕСЛИ ПОЛЯ НЕ БЫЛО, в то время, как в MS Access-97 это успешно делается.

Не делается только тогда, когда поле уже было, и было просто числовым.

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Re: Создание счётчика

Сообщение Ennor » 31.10.2004 (Вс) 2:28

Alexanbar писал(а):...
в то время, как в MS Access-97 это успешно делается.
...


А ты в чем это пытаешься сделать?

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 31.10.2004 (Вс) 12:40

Я создаю базу программно с нуля, если её не было, а если есть, корректирую её структуру.

В частности, если в нужной таблице нет поля со счётчиком, мне хотелось бы, чтобы оно образовалось.

Ещё не указал такие строки:


Dim db As Database
Dim fso As New FileSystemObject



If fso.FileExists(Path) Then
Set db = DBEngine.OpenDatabase(Path)
Else
Set db = DBEngine.CreateDatabase(Path, dbLangGeneral, _
dbVersion30 Or dbEncrypt)
end if
Последний раз редактировалось Alexanbar 31.10.2004 (Вс) 23:04, всего редактировалось 1 раз.

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

Сообщение GSerg » 31.10.2004 (Вс) 18:32

Мож фишка в физическом присутсвии удалённых вещей, и нужно просто сжать базу? :roll:
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 31.10.2004 (Вс) 23:03

Пробовал сжимать - ничего не меняется. Если таблицы нет вообще, всё создаётся нормально, в том числе и поле со счётчиком.
Если таблица уже есть, но поля со счётчиком ещё нет - создаётся только числовое поле, но не счётчик.

А в MS-Access-97 можно создать новое поле, которое будет счётчиком. Нельзя толко переделать уже существующее числовое в счётчик.

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 31.10.2004 (Вс) 23:36

Ммм. А ALTER TABLE в Аксессе не позволяет добавить полю атрибут AutoIncrement?

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 01.11.2004 (Пн) 0:02

Сделал так:

db.Execute "Alter Table PostAddresses Add Column [Address ID] Counter"

Вроде работает


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

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

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

    TopList  
cron