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

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

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

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

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

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

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

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

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

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

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

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


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

//ага, нашел - при юзании LDBUser_GetUsers из MSLDBUSR.DLL//
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как узнать имена таблиц в Acces через DAO? / 25 сообщений из 30, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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