powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как узнать имена таблиц в Acces через DAO?
30 сообщений из 30, показаны все 2 страниц
Как узнать имена таблиц в Acces через DAO?
    #32475578
zeratul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Как узнать имена таблиц в Acces через DAO?
    #32475588
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TableDefs
Ф1
...
Рейтинг: 0 / 0
Как узнать имена таблиц в Acces через DAO?
    #32475652
zeratul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо уважаемый Лох!
Заработало. Дело в том что я пытаюсь узнать имена из под Delphi, и для этого использую такого типа строчки:
......
DBEngine := CreateOleObject('DAO.DBEngine.35');
except
raise;
end;
end;

try
DataBase:=DBEngine.OpenDatabase(DatabaseName);
TabL:=DataBase.TableDefs; //с Вашей подсказки
......
где Tabl - переменная типа variant.
Может подскажете что дальше с ней делать, чтоб извлечь имена? :)
Заранее благодарен.
...
Рейтинг: 0 / 0
Как узнать имена таблиц в Acces через DAO?
    #32475720
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
TabL(i).name - имя i-й таблицы
TabL.count - количество (нумерация от 0)
...
Рейтинг: 0 / 0
Как узнать имена таблиц в Acces через DAO?
    #32475787
zeratul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо Владимир Саныч!
Только вот TabL.count работает, а TabL(i).name - имя i-й таблицы не хочет.
Как я понял, i - это индекс элемента массива, а в Дельфи он прописывается через квадратные скобки. Тогда, если это исправить, при компиляции вылетает исключение - variant is not an array.
Не хочет Tabl считать себя переменной типа массива.
...
Рейтинг: 0 / 0
Как узнать имена таблиц в Acces через DAO?
    #32475791
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хелп к DAO читать будешь или нет?
tds.item(i).name
на паскакаль сам переводи :)
...
Рейтинг: 0 / 0
Как узнать имена таблиц в Acces через DAO?
    #32475810
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Это не масив, это коллекция. А синтаксис Паскаля я не помню, у нас тут все говорят на VBA...
...
Рейтинг: 0 / 0
Как узнать имена таблиц в Acces через DAO?
    #32475832
sposad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы считал названия из системной таблички MSysObjects. ИМХО удобнее.
...
Рейтинг: 0 / 0
Как узнать имена таблиц в Acces через DAO?
    #32475847
zeratul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>Хелп к DAO читать будешь или нет?

Буду, конечно буду!

>s.item(i).name
>а паскакаль сам переводи :)

Пытаюсь, при таком варианте:
....
DataBase:=DBEngine.OpenDatabase(DatabaseName);
TabL:=DataBase.TableDefs;
strName:=TabL.item[2].name;
....
работает, но вместо имени таблицы strName принимает сначение - MSysAccessObject.
:(
...
Рейтинг: 0 / 0
Как узнать имена таблиц в Acces через DAO?
    #32475856
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а ты чего хотел?
...
Рейтинг: 0 / 0
Как узнать имена таблиц в Acces через DAO?
    #32475858
zeratul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>Я бы считал названия из системной таблички MSysObjects. ИМХО удобнее.

Примерно, как это выглядит? Надо открыть таблицу с таким именем, а её записи и будут названия моих таблиц? Я правильно понял?
...
Рейтинг: 0 / 0
Как узнать имена таблиц в Acces через DAO?
    #32475867
zeratul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> а ты чего хотел?

А я хотел узнать названия таблиц в базе.
...
Рейтинг: 0 / 0
Как узнать имена таблиц в Acces через DAO?
    #32475875
sposad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В этой табличке (она скрытая системная) есть поля Name и Type. Выбираешь те, где Type=1 и Name не начинается с MSys.
...
Рейтинг: 0 / 0
Как узнать имена таблиц в Acces через DAO?
    #32475885
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А я хотел узнать названия таблиц в базе
Ты это сделал. Чего еще надо-то?
...
Рейтинг: 0 / 0
Как узнать имена таблиц в Acces через DAO?
    #32475900
zeratul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>В этой табличке (она скрытая системная) есть поля Name и Type. Выбираешь >те, где Type=1 и Name не начинается с MSys.

Спасибо, понял. Попробую если по-другому не получится.
...
Рейтинг: 0 / 0
Как узнать имена таблиц в Acces через DAO?
    #32475903
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Просто в Аксессе есть юзерские таблицы и есть системные. Первым выдалось название системной таблицы MSysAccessObject.
...
Рейтинг: 0 / 0
Как узнать имена таблиц в Acces через DAO?
    #32475906
zeratul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>Ты это сделал. Чего еще надо-то?

Я, наверно, торможу, но как мне кажется я не добился того чего хотел.
Ведь я не получил имя таблиц, (не системных), которае были в базе.
...
Рейтинг: 0 / 0
Как узнать имена таблиц в Acces через DAO?
    #32475916
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пилять...
тебя что, еще объяснить что такое цикл??? от 1 до ХХХ?
...
Рейтинг: 0 / 0
Как узнать имена таблиц в Acces через DAO?
    #32475918
sposad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Владимир Саныч

Саныч, може я чего не понимаю, но смотрю на эти системные таблицы и не вижу таблицы с названием MSysAccessObject. Сейчас А97, может это в версиях попозже ?
...
Рейтинг: 0 / 0
Как узнать имена таблиц в Acces через DAO?
    #32475938
zeratul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>пилять...
>тебя что, еще объяснить что такое цикл??? от 1 до ХХХ?

Всё, понял. Я почему-то был уверен что моя таблица будет первой.
Прогнал в цикле, всё нашлось.
Огромное спасибо всем ответившим. Вопрос решён!
...
Рейтинг: 0 / 0
Как узнать имена таблиц в Acces через DAO?
    #32475939
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Только цикл не от 1, а от 0.
...
Рейтинг: 0 / 0
Как узнать имена таблиц в Acces через DAO?
    #32475947
zeratul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>Саныч, може я чего не понимаю, но смотрю на эти системные таблицы и не >вижу таблицы с названием MSysAccessObject. Сейчас А97, может это в >версиях попозже ?

Возможно и так. В своей программе я создаю базу в формате Access 2000.
...
Рейтинг: 0 / 0
Как узнать имена таблиц в Acces через DAO?
    #32475950
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только цикл не от 1, а от 0.
вырвал все волосы. в том числе и на голове.
...
Рейтинг: 0 / 0
Как узнать имена таблиц в Acces через DAO?
    #32475958
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Все в порядке, 1 - это было для красного словца.
...
Рейтинг: 0 / 0
Как узнать имена таблиц в Acces через DAO?
    #32475975
LBound
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторТолько цикл не от 1, а от 0.


надежнее от лебонда до убонда :0).
Как-то раз напарывался на плавающую нижнюю границу в массиве. (но не вспомню, где). Сделал от 0 - ашипка по эл-ту 0. Сделал от 1 - ашипка (при другом обращении) по верхнему краю :0).

//ага, нашел - при юзании LDBUser_GetUsers из MSLDBUSR.DLL//
...
Рейтинг: 0 / 0
Как узнать имена таблиц в Acces через DAO?
    #32475981
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
надежнее от лебонда до убонда :0).
еще один.
Не массив TableDefs. НЕ МАССИВ!
...
Рейтинг: 0 / 0
Как узнать имена таблиц в Acces через DAO?
    #32475983
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А разве у коллекций есть лебонд?
...
Рейтинг: 0 / 0
Как узнать имена таблиц в Acces через DAO?
    #32475985
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Опппппоздал.
...
Рейтинг: 0 / 0
Как узнать имена таблиц в Acces через DAO?
    #32476054
лябонда
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну дак про тебледефсы не спорю. Паспешил непрухой поделиться. Не вник. Но и на коллекшены тоже проруха быват:0):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Public Function tCollection()
Dim tC As New Collection
    tC.Add  1 
    Debug.Print tC.Count
    On Error Resume Next
    Debug.Print  0 ; ; tC.Item( 0 )
    Debug.Print  1 ; ; tC.Item( 1 )
End Function

?tCollection
1
1 1

т.е. бывают "пральные" и "непральные" коллекции. Вот вшитые коллекции акса и Дао - "праильные" а объект VBA.коллекшн - кривой какой-то :0). Вот токо жалко, что лябонды для их нет.
...
Рейтинг: 0 / 0
Как узнать имена таблиц в Acces через DAO?
    #32476068
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Кстати, эта процедура вполне годится для проверки, откуда нумеруется коллекция.

function MyLBound(c as collection)as integer
dim v as variant '(а может, object?)
on error resume next
v=c(0)
if err=0 then
MyLBound=0
exit function
endif
err=0
v=c(1)
if err=0 then
MyLBound=1
else
MyLBound=-1 '(значит, коллекция пустая)
endif
end function
...
Рейтинг: 0 / 0
30 сообщений из 30, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как узнать имена таблиц в Acces через DAO?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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