Формы в VBA или Фильтр для БД!

Программирование на Visual Basic for Applications
Hamber
Новичок
Новичок
 
Сообщения: 27
Зарегистрирован: 08.09.2004 (Ср) 0:28
Откуда: Москва

Формы в VBA или Фильтр для БД!

Сообщение Hamber » 15.09.2004 (Ср) 10:52

Возможно ли в VBA, создать форму (НЕМодальную) т.е. чтобы работала форма и сам лист excel, или ещё даже не знаю как это назвать, наподобие такого как на рисунке:

Изображение

Но при этом чтобы её можно было скрывать и показывать на какую-то кнопочку ...
ICQ:673912

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 15.09.2004 (Ср) 11:13

Хе-хе... MaxBet? :)
Немодальные формы доступны в офисе, начиная с 2000. В свойствах формы ставишь Modelles=True. Рамку отключаешь, заголовок и кнопки тоже. Ну и дальше простор для творчества.
Lasciate ogni speranza, voi ch'entrate.

Hamber
Новичок
Новичок
 
Сообщения: 27
Зарегистрирован: 08.09.2004 (Ср) 0:28
Откуда: Москва

Сообщение Hamber » 15.09.2004 (Ср) 13:06

alibek,

Да-Да... Он самый MaxBeT...

Свойства Modelles нету ...

Есть свойство ShowModal=True . Делаешь его False и работает ...

А каким свойством убрать рамку и кнопки - я что-то не понял ...
==

to All:
И ещё ...
Где можно взять компоненты или не знаю что , которые мне сделают нечто-похожее как на фильтре...

Т.е. плюсик ... при нажатии на него он раскрывается и также скрывается ...
ICQ:673912

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 15.09.2004 (Ср) 13:32

Правильно, ShowModal, это я чуть напутал.
А вот заголовок и границы убираться не хотят...

Тогда, как вариант, пишешь на VB ActiveX и компилируешь, а в Excel вставляешь его (как ActiveX-компонент). Таких кнопочек (сворачивающихся и разворачивающихся) готовых не видел, но делал сам нечто подобное, ничего сложного в этом нет.
Т.е. рисуешь Frame, на нем (не внутри него, а поверх него) размещаешь CommandButton, а внутри фрэйма рисуешь нужные контролы. При нажатии на кнопку фрэйм будет изменять высоту (свернутый 180 твипов, развернутый по требованию), а остальные фреймы будут репозиционироваться.
Lasciate ogni speranza, voi ch'entrate.

Hamber
Новичок
Новичок
 
Сообщения: 27
Зарегистрирован: 08.09.2004 (Ср) 0:28
Откуда: Москва

Сообщение Hamber » 15.09.2004 (Ср) 13:54

alibek, ещё бы уметь программировать на ActiveX , тогда сделал бы ...

А если учесть что я его вообще не знаю и никогда с ним не работал, это уже сложнее)))

А у тебя есть этот готовый пример с тем что ты написал ... А то я с трудом врубился что и как ты имел ввиду ... !?
ICQ:673912

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 15.09.2004 (Ср) 14:36

Да не все в этих ActiveX страшно.
Искал пример, никак не найду, слишком много у меня мусора :) Приблизительно так (фреймы fraTools(), кнопки cmdTools(), "нормальные" высоты фреймов в aTools()):
Код: Выделить всё
Const MinHeight As Single = 180, Delta As Single = 60
ReDim aTools(1 to 5)
aTools(1) = ...
...
Private Sub cmdTools(ByVal Index As Long)
Dim I As Long
If fraTools(Index).Height = MinHeight Then
  fraTools(Index).Height = aTools(Index)
Else
  fraTools(Index).Height = MinHeight
End If
'в принципе, можно сделать и
'fraTools(Index).Height = (aTools(Index)+MinHeight) - fraTools(Index).Height
'но так нагляднее
'fraTools(1) уже спозиционирована
For I = 2 To 5
  fraTools(I).Move fraTools(I).Left, fraTools(I-1).Top+fraTools(I-1).Height+Delta
Next I
'Если общая высота развернутых фреймов больше высоты контейнера, в котором они размещены, надо отобразить ScrollBar и задать его параметры
End Sub
Lasciate ogni speranza, voi ch'entrate.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 62

    TopList