Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программирование, связанное с MS Office > Добавить CheckBox на форму динамически


Автор: runaway 18.1.2005, 17:05
Задача следующая:
Запрос " select nm from user where cd = 1 " возвращает
"
User1
User2
User3
........
"
, из него берем
"Count = EmpDynaset.RecordCount" - получаем количество записей
По этому количеству на форме создать CheckBox
и им присвоить имена из запроса
CheckBox1.text = User1
CheckBox2.text = User2
CheckBox3.text = User3
......

PS "После решения этой проблемы будет еще!!!" smile

Автор: Akina 18.1.2005, 18:29
Добавь в БД кнопочную форму (мастером) и посмотри ее код.

А вообще (draft code)

Код

Dim XXX() as CheckBox
...
xCount=EmpDynaset.RecordCount-1
ReDim XXX(0 to xCount)
For i=0 to xCount
  Set XXX(i) = New CheckBox
  XXX(i).Top = i*100+20
  XXX(i).Visible=True
  XXX(i).Value=False
  ...
Next i
...
For i=0 to xCount
  Set XXX(i) = Nothing
Next i
...

При этом на форме должен быть по крайней мере один CheckBox - пусть даже невидимый и неиспользуемый.

Автор: Staruha 20.1.2005, 22:40
Цитата
PS "После решения этой проблемы будет еще!!!" 
- раз нет ,значит проблема не решена?
Я пытавлась лонять,но тщетно.Если это Access ? тогда переедем туда.Там помогут. smile

Автор: runaway 21.1.2005, 08:45
Спасибо, Добавить получилось!

Код следующий (может еще кому поможет smile ):

Код


Sub AddCheck(ByVal TopCh As Integer, ByVal Name As String, ByVal Text As String)
   Dim myCon As Control
   Set myCon = UserForm.Controls.Add("Forms.CheckBox.1", Name, True)
   With myCon
       .Left = 6
       .Top = TopCh
       .Width = 108
       .Height = 18
       .Caption = Text
   End With
End Sub


Не, все это в Excele... а БД Oracle.

Ща будет новая проблема...

Вынесу ее в новую тему...
Добавлено @ 08:52
И еще вопросик по этой же теме:
Все класно, все работает, но как убрать с формы динамически добавленные Control'ы.

Автор: ~FoX~ 26.1.2005, 11:52
А почитать?
Цитата(Akina @ 18.1.2005, 18:29)
For i=0 to xCount
  Set XXX(i) = Nothing
Next i


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)