powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Памагите! DAO обосрался!
8 сообщений из 8, страница 1 из 1
Памагите! DAO обосрался!
    #32174906
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Памагите! DAO обосрался!
    #32174919
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуй
На строке "Set flds = ind.Fields" выдается ругань "Несоответствие типа".

Dim flds As DAO.Fields

или

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

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

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

то все работает. Почему оно при сохранении в объектную переменную пытается мне вместо коллекции филдов строку подсунуть??
...
Рейтинг: 0 / 0
Памагите! DAO обосрался!
    #32174934
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Памагите! DAO обосрался!
    #32174947
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Виктор Сенин
Я писал. На TableDefs из дочерних TableDef-ов ссылка не держится.
Тебе кажется у меня мало явных ссылок?? Как раз без них работает. А с ними - нет. Хрен поймешь.
...
Рейтинг: 0 / 0
Памагите! DAO обосрался!
    #32174952
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Памагите! DAO обосрался!
    #32174957
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разобрался. Вот срань то какая...
flds надо описывать как DAO. Index Fields
Какое свинство со стороны разработчиков DAO. Не смогли в этом скрытом классе (IndexFields) имплементировать интерфейс Fields. Уроды. Я чуть не поседел. Интересно, и что теперь с этим говном делать....
...
Рейтинг: 0 / 0
Памагите! DAO обосрался!
    #32174977
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сдернуть? :)
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Памагите! DAO обосрался!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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