Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Памагите! DAO обосрался! / 8 сообщений из 8, страница 1 из 1
03.06.2003, 11:42
    #32174906
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Памагите! DAO обосрался!
Access97 отсервиспаченый, DAO 3.51 (3.6 тоже пробовал)
Таблица ("Таблица1"), в ней поля, есть индекс ("Индекс1")
Код
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
    Dim tds As TableDefs
    Dim td As TableDef
    Dim inds As Indexes
    Dim ind As Index
    Dim flds As Fields
    Dim fld As Field
    
    Set tds = CurrentDb.TableDefs
    Set td = tds( "Таблица1" )
    Set inds = td.Indexes
    Set ind = inds( "Индекс1" )
    Set flds = ind.Fields
    ' Сюда он уже не приходит'
    Set fld = flds( 0 )

На строке "Set flds = ind.Fields" выдается ругань "Несоответствие типа".
ind.Fields почему-то имеет значение "+Поле1"
Если добавить контрольное значение - показывает тип "Variant/Object/IndexFields", красиво его разворачивает, показывает все поля, но значение-то все равно "+Поле1" (в окне контрольных выражений).
Кто-нибудь эту дрянь у себя повторить может? Или поток нейтрино вызвал у аксеса приступ диареи, но только на моей машине?
...
Рейтинг: 0 / 0
03.06.2003, 11:47
    #32174919
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Памагите! DAO обосрался!
попробуй
На строке "Set flds = ind.Fields" выдается ругань "Несоответствие типа".

Dim flds As DAO.Fields

или

Dim flds
...
Рейтинг: 0 / 0
03.06.2003, 11:52
    #32174928
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Памагите! DAO обосрался!
Э дарагой. DAO.Fields канешна пробовал.
Если просто как variant описать - все работает. В этот вариант запихиваются филды. Как и должно быть.
Если пропустить глючную строку и сделать, скажем, так:

Код: plaintext
1.
2.
3.
4.
5.
...
Set ind = inds( "Индекс1" )

For Each fld In ind.Fields
....
Next fld

то все работает. Почему оно при сохранении в объектную переменную пытается мне вместо коллекции филдов строку подсунуть??
...
Рейтинг: 0 / 0
03.06.2003, 11:57
    #32174934
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Памагите! DAO обосрался!
2Лоху

Сам как-то писал, что для сылки на Tabledefs надо создать явную сслку на Database. Или не ты писал. В прочем не важно. По пробуй так:

Dim db as dao.databases
set db=dbengene(0)(0)
Set tds = db.TableDefs
Set td = tds("Таблица1")

Хотя чего сразу не делать
Set td = db.TableDefs("Таблица1")
...
Рейтинг: 0 / 0
03.06.2003, 12:04
    #32174947
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Памагите! DAO обосрался!
2 Виктор Сенин
Я писал. На TableDefs из дочерних TableDef-ов ссылка не держится.
Тебе кажется у меня мало явных ссылок?? Как раз без них работает. А с ними - нет. Хрен поймешь.
...
Рейтинг: 0 / 0
03.06.2003, 12:09
    #32174952
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Памагите! DAO обосрался!
2 Сенин Виктор
Только не явную ссылку на Database, а явную ссылку на TableDefs. И хранить ее как зеницу ока пока с таблицами работаешь.
Если сделать
Код: plaintext
1.
2.
3.
4.
5.
Dim tds As TableDefs
Set tds = CurrentDb.TableDefs
Dim td As TableDef
Set td = tds( 0 )
Set tds = Nothing
Debug.Print td.Name

то из-за наличия предпоследней строчки обосрется на последней
Если вместо TableDef(s) работать с QueryDefs например, то все нормально, все ссылки держатся. Но я уже в приступе паранои на все коллекции ссылки храню. Как оказалось зря.
...
Рейтинг: 0 / 0
03.06.2003, 12:10
    #32174957
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Памагите! DAO обосрался!
Разобрался. Вот срань то какая...
flds надо описывать как DAO. Index Fields
Какое свинство со стороны разработчиков DAO. Не смогли в этом скрытом классе (IndexFields) имплементировать интерфейс Fields. Уроды. Я чуть не поседел. Интересно, и что теперь с этим говном делать....
...
Рейтинг: 0 / 0
03.06.2003, 12:22
    #32174977
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Памагите! DAO обосрался!
Сдернуть? :)
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Памагите! DAO обосрался! / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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