| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Открытие формы Access из программы |
| Автор: Dimon007 2.5.2008, 22:41 | ||
| Очень нужна помощь в этом вопросе, если бы дело касалось программирования работы с данными БД то проблем бы не возникла а так тут суть такая что есть база данных в которой уже есть формы, так вот надо чтобы они из проги вызывались. Я попытался сделать через компоненты вкладки office2k но при попытке открыть компоненты типа TAccessForm у меня выдается "Класс не зарегистрирован". Единственный способ который может сработать это AccessApplication1->DoCmd->OpenForm но я не знаю как им правильно воспользоваться. Там появляется переменная типа tagVARIANT и я чесно уже запутался. Кто знает как привильно решить эту задачку подскажите, а лучше код набросайте чтобы открывал форму в базе данных. Вот что у меня есть но это не работает...
Воть, мож кто знает как это правильно сделать ???? |
| Автор: Данкинг 3.5.2008, 00:10 |
| А почему нельзя просто запустить на выполнение mdb ? |
| Автор: Dimon007 3.5.2008, 00:21 |
| Данкинг, А я дурак не догадался что можно просто открыть Access и запустить форму, помоему если бы в поставленная задача звучала "Как открыть форму в Access ?" то я бы задавал её в разделах про office... Это не мне надо чтобы все именно так работало, мне надо только помочь осуществить эту часть... И поэтому желательно по теме, прошу помощи так как нормального описания и примеров нигде не нашел... |
| Автор: Данкинг 3.5.2008, 10:58 |
| По-моему, вопрос этот всё равно про "офис". А просто DoCmd.OpenForm (forma) почему нельзя написать? Должно же работать. |
| Автор: Dimon007 3.5.2008, 11:30 | ||
| Данкинг, Я ж говорю просто не получается после строки
надо задать 6 параметров 4 из которых tagVARIANT , это если делать через TAccessApplication если кто знает как это правильно сделать или каким другим образом это можно сделать... |
| Автор: Данкинг 3.5.2008, 11:34 | ||
Я просто смотрю код нашего бывшего программера, крутого спеца по VBA. Он открывает форму именно так:
Причём пример этот не единичный. По логике, при создании объекта должно быть то же самое (признаюсь, сам не пробовал, подобных задач решать не доводилось). Какие там ещё могут параметры... |
| Автор: Dimon007 3.5.2008, 12:00 |
| Данкинг, Ну если бы на VBA надо было то я бы не мучился... проблема заключается в том что например название формы должно быть описано как tagVARIANT но тут свои проблемы когда я выполняю выше написанный код то просто ничего не происходит. По VBA я совершенно согласен, но вот на С++ хотелось бы лицезреть рабочий пример по теме... |
| Автор: xvr 4.5.2008, 15:29 | ||||
В Builder'e надо вместо tagVARIANT пользовать переменные типа TVariant и присваивать им нужные значения (нужных типов). Т.е. как то так
Что касается сообщения "Класс не зарегистрирован", то оно наводит на мысль что какая то часть Оффиса не установлена. |
| Автор: Dimon007 4.5.2008, 16:12 |
| xvr, Спасибо огромное теперь заработало, действительно надо было вместо tagVARIANT использовать тип TVariant. Выручил, тема закрыта... |