Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Что я делаю - ни как все
 
 автор: час   (02.03.2010 в 08:33)   личное сообщение
 
 


Public GLB_START_FORM As Object       ' Стартовая форма

rst.Find "ID = 'Старт_Форма'", , adSearchForward, 1
Set GLB_START_FORM = rst("ZNACHENIE") ' извлекаем из таблицы имя стартовой формы

Forms(GLB_START_FORM).Show             ' - тут облом (Несовпадение типов)

  Ответить  
 
 автор: Силblч   (02.03.2010 в 08:55)   личное сообщение
 
 

а ругается оно скорее всего здесь

Set GLB_START_FORM = rst("ZNACHENIE") ' извлекаем из таблицы имя стартовой формы


нахiба так делать вообще? :)

  Ответить  
 
 автор: час   (02.03.2010 в 09:06)   личное сообщение
 
 

А что ба можно было опциоально, в программе, изменить по желанию - имя первой запускаемой формы....
=====================
имя выбирается из предложеного списка - ограничивающего только приемлемые варианты выбора, а затем имя помещается на хранение в таблицу.
И теперь при старте приложения извлекаем стартовую форму (имя) и старт - с неё.

  Ответить  
 
 автор: Силblч   (02.03.2010 в 10:05)   личное сообщение
 
 

ну просто глобальная переменная типа стринг :)

  Ответить  
 
 автор: k@s   (02.03.2010 в 10:13)   личное сообщение
 
 

может надо Form(GLB_START_FORM).Show

  Ответить  
 
 автор: час   (02.03.2010 в 10:23)   личное сообщение
 
 

пробовал и стринги - нифига кайфа нет..........
=====================================
Form(GLB_START_FORM).Show
не совпадение типов

  Ответить  
 
 автор: Denis V.   (02.03.2010 в 10:28)   личное сообщение
 
 

Чтобы был приход, надо, чтобы эта форма уже была загружена ;-) Только, конечно, не Form, а Forms.
А не может ли быть у Вас переопределения где-нибудь этой глобальной переменной?

  Ответить  
 
 автор: Denis V.   (02.03.2010 в 10:27)   личное сообщение
 
 

По слогам:

Public GLB_START_FORM As Object

Это какой-то глобальный объект, какой конкретно должно быть понятно из контекста.

Set GLB_START_FORM = rst("ZNACHENIE")

Из контекста стало казаться, что тип этого глобального объекта совпадает с типом свойства по умолчанию набора записей (если из контекста выше сделать вывод, что rst - это набор записей). А какое там свойство по умолчанию у набора записей? Поле? Нет? В общем, как-то не понятно, что за объект получили.
Следовательно ошибки можно было ожидать однозначно.

Forms(GLB_START_FORM).Show

А вот этот контекст предполоагает, что GLB_START_FORM вообще не объект, а строковая переменная...

  Ответить  
 
 автор: час   (02.03.2010 в 10:29)   личное сообщение
 
 

Всё верно.....
=============================
Имя первой запускаемой формы выбирается из предложеного списка - ограничивающего только приемлемые варианты выбора имени формы. Затем выбранное таким образом имя - помещается на хранение в таблицу в поле ZNACHENIE с типом String.
И теперь при старте приложения извлекаем имя стартовой формы и отображаем её, предварительно загрузив, на экране монитора.

  Ответить  
 
 автор: Denis V.   (02.03.2010 в 10:37)   личное сообщение
 
 

Обычно формы по имени Вы как открываете?

  Ответить  
 
 автор: час   (02.03.2010 в 11:13)   личное сообщение
 
 

Обычно - вот так
Load My_Form
My_Form.show

  Ответить  
 
 автор: Denis V.   (02.03.2010 в 13:58)   личное сообщение
 
 

В таком случае, по имени открыть форму сразу не получится, кажется. Можно, конечно загрузить все формы в определённой последовательности (которая совпадает с последовательностью в списке выбора форм). А потом в зависимости от индекса выбранного элемента в списке просто показать эту форму. Так что никакой универсальности, да ещё и память сразу забивается загрузкой форм. А потом ещё и надо бы не забыть, что формы уже загружены и лишние выгружать ;-) Какая-то странная автоматизация получается. Хотя может быть я ни туда смотрел. Ваш случай похож на работу с формами в Excel, там получается только так, как я только что написал. Или поправьте меня.

  Ответить  
 
 автор: П.Полиграфович   (02.03.2010 в 14:34)   личное сообщение
 
 

4Hour: Как помню в VB6 при вызове св-ва show, загрузка формы производиться автоматом..ну т.е. всё норм просто .show (хотя конечно строку передаем)

  Ответить  
 
 автор: час   (02.03.2010 в 15:41)   личное сообщение
 
 

Получается надо пробежать по всем формам проекта и если какая то из них своим свойством NAME совпадает с заданной - тада её и открыть......
==========================================
А сразу чё жа никак что-ли?

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList