powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как узнать имена таблиц в Acces через DAO?
25 сообщений из 30, страница 1 из 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
25 сообщений из 30, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как узнать имена таблиц в Acces через DAO?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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