|
|
|
|
Public GLB_START_FORM As Object ' Стартовая форма
rst.Find "ID = 'Старт_Форма'", , adSearchForward, 1
Set GLB_START_FORM = rst("ZNACHENIE") ' извлекаем из таблицы имя стартовой формы
Forms(GLB_START_FORM).Show ' - тут облом (Несовпадение типов)
|
| |
|
| |
|
|
|
| а ругается оно скорее всего здесь
Set GLB_START_FORM = rst("ZNACHENIE") ' извлекаем из таблицы имя стартовой формы
|
нахiба так делать вообще? :) | |
|
| |
|
|
|
| А что ба можно было опциоально, в программе, изменить по желанию - имя первой запускаемой формы....
=====================
имя выбирается из предложеного списка - ограничивающего только приемлемые варианты выбора, а затем имя помещается на хранение в таблицу.
И теперь при старте приложения извлекаем стартовую форму (имя) и старт - с неё. | |
|
| |
|
|
|
| ну просто глобальная переменная типа стринг :) | |
|
| |
|
|
|
| может надо Form(GLB_START_FORM).Show | |
|
| |
|
|
|
| пробовал и стринги - нифига кайфа нет..........
=====================================
Form(GLB_START_FORM).Show
не совпадение типов | |
|
| |
|
|
|
| Чтобы был приход, надо, чтобы эта форма уже была загружена ;-) Только, конечно, не Form, а Forms.
А не может ли быть у Вас переопределения где-нибудь этой глобальной переменной? | |
|
| |
|
|
|
| По слогам:
Public GLB_START_FORM As Object
|
Это какой-то глобальный объект, какой конкретно должно быть понятно из контекста.
Set GLB_START_FORM = rst("ZNACHENIE")
|
Из контекста стало казаться, что тип этого глобального объекта совпадает с типом свойства по умолчанию набора записей (если из контекста выше сделать вывод, что rst - это набор записей). А какое там свойство по умолчанию у набора записей? Поле? Нет? В общем, как-то не понятно, что за объект получили.
Следовательно ошибки можно было ожидать однозначно.
Forms(GLB_START_FORM).Show
|
А вот этот контекст предполоагает, что GLB_START_FORM вообще не объект, а строковая переменная... | |
|
| |
|
|
|
| Всё верно.....
=============================
Имя первой запускаемой формы выбирается из предложеного списка - ограничивающего только приемлемые варианты выбора имени формы. Затем выбранное таким образом имя - помещается на хранение в таблицу в поле ZNACHENIE с типом String.
И теперь при старте приложения извлекаем имя стартовой формы и отображаем её, предварительно загрузив, на экране монитора. | |
|
| |
|
|
|
| Обычно формы по имени Вы как открываете? | |
|
| |
|
|
|
| Обычно - вот так
Load My_Form
My_Form.show | |
|
| |
|
|
|
| В таком случае, по имени открыть форму сразу не получится, кажется. Можно, конечно загрузить все формы в определённой последовательности (которая совпадает с последовательностью в списке выбора форм). А потом в зависимости от индекса выбранного элемента в списке просто показать эту форму. Так что никакой универсальности, да ещё и память сразу забивается загрузкой форм. А потом ещё и надо бы не забыть, что формы уже загружены и лишние выгружать ;-) Какая-то странная автоматизация получается. Хотя может быть я ни туда смотрел. Ваш случай похож на работу с формами в Excel, там получается только так, как я только что написал. Или поправьте меня. | |
|
| |
|
|
|
| 4Hour: Как помню в VB6 при вызове св-ва show, загрузка формы производиться автоматом..ну т.е. всё норм просто .show (хотя конечно строку передаем) | |
|
| |
|
|
|
| Получается надо пробежать по всем формам проекта и если какая то из них своим свойством NAME совпадает с заданной - тада её и открыть......
==========================================
А сразу чё жа никак что-ли? | |
|
| |