Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
647 / 100 / 11
Регистрация: 08.06.2015
Сообщений: 1,564
1

Перемещение кнопок на форме

10.06.2018, 13:50. Показов 2598. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Бодрого дня, подскажите можно ли не переходя в режим конструктора или макета сделать возможность пользователю перемещать кнопки на форме?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.06.2018, 13:50
Ответы с готовыми решениями:

Фильтр по месяцам в форме по отношению к подчиненной форме с использованием кнопок
Суть такая. Есть сводная форма. В основной части формы (главная форма) есть ФИО (поля). А в...

Доступность кнопок в форме
Здравствуйте, уважаемые! Скажите, как сделать чтобы в зависимости от режима формы (чтение,...

Меню из группы кнопок на форме
Народ, подскажите, как через VBA оставить кнопку вдавленной после нажатия? Хочу сделать небольшое...

Создание управляющих кнопок в форме
Здравствуйте. Мне необходимо сделать на формах Прибор и Компонент управляющие кнопки Сохранить...

16
Эксперт MS Access
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
10.06.2018, 13:55 2
Да, можно. Пример здесь - Делимся наработками
1
647 / 100 / 11
Регистрация: 08.06.2015
Сообщений: 1,564
10.06.2018, 14:01  [ТС] 3
А сохранить положение кнопки после перетаскивания можно?
0
8860 / 5908 / 585
Регистрация: 27.03.2013
Сообщений: 19,574
10.06.2018, 14:06 4
alexpro1979, что то типа - Прыгающих кнопок?
Мне как то Мобайл подсказал.
Ставишь курсор мыша на поле ленточной формы и 2 кнопочки с сортировкой прыгають к этому полю и сортируют это поле.

Удалять процедуры поиска было лень, скопировал всё, но думаю разберешся что лишнее.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
Option Compare Database
Option Explicit
 
Dim S0
Public FocusSet, FocusTip
 
Sub ФильтрПоиска()
  Dim s1, s2
  Me.Refresh
  s1 = "True "
 
s2 = "" & Me.ПоискМестаУстановкиОб
  If Len(s2) > 0 Then
    s1 = s1 & " and МестоУстановки like '*" & s2 & "*'"
  End If
 
s2 = "" & Me.ПоискСредыИзмОб
  If Len(s2) > 0 Then
    s1 = s1 & " and СредаИзмерения like '*" & s2 & "*'"
  End If
 
s2 = "" & Me.ПоискВидаОб
  If Len(s2) > 0 Then
    s1 = s1 & " and ВидОборудования like '*" & s2 & "*'"
  End If
 
s2 = "" & Me.ПоискТипаОб
  If Len(s2) > 0 Then
    s1 = s1 & " and ТипОборудования like '*" & s2 & "*'"
  End If
 
s2 = "" & Me.ПоискМаркиОб
  If Len(s2) > 0 Then
    s1 = s1 & " and МаркаОборудования like '*" & s2 & "*'"
  End If
 
s2 = "" & Me.ПоискЗав№Об
  If Len(s2) > 0 Then
    s1 = s1 & " and Зав№Об like '*" & s2 & "*'"
  End If
 
s2 = "" & Me.ПоискПределаИзмеренияОб
  If Len(s2) > 0 Then
    s1 = s1 & " and ПределИзмеренияОб like '*" & s2 & "*'"
  End If
 
s2 = "" & Me.ПоискЕдИзмОб
  If Len(s2) > 0 Then
    s1 = s1 & " and ЕдИзмерения like '*" & s2 & "*'"
  End If
 
s2 = "" & Me.ПоискКлассаТочностиОб
  If Len(s2) > 0 Then
    s1 = s1 & " and КлассТочности like '*" & s2 & "*'"
  End If
 
s2 = "" & Me.ПоискДатыПоверкиОб
  If Len(s2) > 0 Then
    s1 = s1 & " and ДатаПоверки like '*" & s2 & "*'"
  End If
 
s2 = "" & Me.ПоискПримечанияОб
  If Len(s2) > 0 Then
    s1 = s1 & " and ПримечанияОб like '*" & s2 & "*'"
  End If
 
s2 = "" & Me.ПоискСтатусаОб
  If Len(s2) > 0 Then
    s1 = s1 & " and СтатусОборудования like '*" & s2 & "*'"
  End If
 
  Me.Filter = s1
  Me.FilterOn = True
End Sub
 
Private Sub Form_Current()
    DoCmd.RunCommand acCmdRefresh
End Sub
 
'Private Sub МестоУстановки_GotFocus()
'    GetFocusFld
'End Sub
Private Sub ПоискМестаУстановкиОб_Change()
  S0 = "" & Me.[ПоискМестаУстановкиОб]
    Call ФильтрПоиска
  Me.[ПоискМестаУстановкиОб].SelStart = Len(S0) + 1
End Sub
 
Private Sub ПоискСредыИзмОб_Change()
  S0 = "" & Me.[ПоискСредыИзмОб]
    Call ФильтрПоиска
  Me.[ПоискСредыИзмОб].SelStart = Len(S0) + 1
End Sub
 
Private Sub ПоискВидаОб_Change()
  S0 = "" & Me.[ПоискВидаОб]
    Call ФильтрПоиска
  Me.[ПоискВидаОб].SelStart = Len(S0) + 1
End Sub
 
Private Sub ПоискТипаОб_Change()
  S0 = "" & Me.[ПоискТипаОб]
    Call ФильтрПоиска
  Me.[ПоискТипаОб].SelStart = Len(S0) + 1
End Sub
 
Private Sub ПоискМаркиОб_Change()
  S0 = "" & Me.[ПоискМаркиОб]
    Call ФильтрПоиска
  Me.[ПоискМаркиОб].SelStart = Len(S0) + 1
End Sub
 
Private Sub ПоискЗав№Об_Change()
  S0 = "" & Me.[ПоискЗав№Об]
    Call ФильтрПоиска
  Me.[ПоискЗав№Об].SelStart = Len(S0) + 1
End Sub
 
Private Sub ПоискПределаИзмеренияОб_Change()
  S0 = "" & Me.[ПоискПределаИзмеренияОб]
    Call ФильтрПоиска
  Me.[ПоискПределаИзмеренияОб].SelStart = Len(S0) + 1
End Sub
 
Private Sub ПоискЕдИзмОб_Change()
  S0 = "" & Me.[ПоискЕдИзмОб]
    Call ФильтрПоиска
  Me.[ПоискЕдИзмОб].SelStart = Len(S0) + 1
End Sub
 
Private Sub ПоискКлассаТочностиОб_Change()
  S0 = "" & Me.[ПоискКлассаТочностиО]
    Call ФильтрПоиска
  Me.[ПоискКлассаТочностиОб].SelStart = Len(S0) + 1
End Sub
 
Private Sub ПоискДатыПоверкиОб_Change()
  S0 = "" & Me.[ПоискДатыПоверкиОб]
    Call ФильтрПоиска
  Me.[ПоискДатыПоверкиОб].SelStart = Len(S0) + 1
End Sub
 
Private Sub ПоискПримечанияОб_Change()
  S0 = "" & Me.[ПоискПримечанияОб]
    Call ФильтрПоиска
  Me.[ПоискПримечанияОб].SelStart = Len(S0) + 1
End Sub
 
Private Sub ПоискСтатусаОб_Change()
  S0 = "" & Me.[ПоискСтатусаОб]
    Call ФильтрПоиска
  Me.[ПоискСтатусаОб].SelStart = Len(S0) + 1
End Sub
 
Private Sub КнОчисткаФильтра_Click()
  DoCmd.RunCommand acCmdRemoveFilterSort ' так работает, а если без неё нет
Me.[ПоискМестаУстановкиОб] = ""
Me.[ПоискСредыИзмОб] = ""
Me.[ПоискВидаОб] = ""
Me.[ПоискТипаОб] = ""
Me.[ПоискМаркиОб] = ""
Me.[ПоискЗав№Об] = ""
Me.[ПоискПределаИзмеренияОб] = ""
Me.[ПоискЕдИзмОб] = ""
Me.[ПоискКлассаТочностиОб] = ""
Me.[ПоискДатыПоверкиОб] = ""
Me.[ПоискПримечанияОб] = ""
Me.[ПоискСтатусаОб] = ""
  Me.Filter = ""
  Me.FilterOn = True
End Sub
 
Private Sub btnUp_Click()
    If Len(FocusSet & "") = 0 Then Exit Sub
    Me.OrderBy = "[" & FocusSet & "]"
    Me.OrderByOn = True
End Sub
 
Private Sub btnDown_Click()
    If Len(FocusSet & "") = 0 Then Exit Sub
    Me.OrderBy = "[" & FocusSet & "] desc"
    Me.OrderByOn = True
End Sub
 
Public Function GetFocusFld()
    Dim ac
    ac = Me.ActiveControl.Name
      If Me.ActiveControl.Name Like "ww*" Then
        FocusSet = Replace(ac, "ww", "")
        FocusTip = "Free"
        Me.btnUp.Left = Me(ac).Left
        Me.btnUp.Top = Me(ac).Top - Me.btnUp.Height - 440
        Me.btnDown.Left = Me(ac).Left + Me.btnUp.Width
        Me.btnDown.Top = Me(ac).Top - Me.btnDown.Height - 440
      Else
        FocusSet = ac
        FocusTip = "Field"
'        ac = "ww" & ac
        Me.btnUp.Left = Me(ac).Left
'        Me.btnUp.Top = Me(ac).Top - Me.btnUp.Height - 440
        Me.btnDown.Left = Me(ac).Left + Me.btnUp.Width
'        Me.btnDown.Top = Me(ac).Top - Me.btnDown.Height - 440
      End If
End Function
Миниатюры
Перемещение кнопок на форме  
1
647 / 100 / 11
Регистрация: 08.06.2015
Сообщений: 1,564
10.06.2018, 14:54  [ТС] 5
Ничего не понял.

Добавлено через 31 минуту
Какой функцией можно определить координаты кнопки на форме?

Добавлено через 4 минуты
Me.btn.Left
Me.btn.Top
0
647 / 100 / 11
Регистрация: 08.06.2015
Сообщений: 1,564
10.06.2018, 15:24  [ТС] 6
Придумал как сделать фиксацию перемещения кнопки. С одной кнопкой проблем нет, а если их много на форме код получиться огромным.
Вложения
Тип файла: rar ButtonMove.rar (25.6 Кб, 15 просмотров)
0
647 / 100 / 11
Регистрация: 08.06.2015
Сообщений: 1,564
10.06.2018, 15:42  [ТС] 7
Помогите состряпать функцию пожалуйста с построением запроса в vba имею проблемы.

Добавлено через 3 минуты
!Коорд1 = Me.btn.Left
как вместо btn подставить значение переменной nameKN?
0
10472 / 5458 / 1375
Регистрация: 05.10.2016
Сообщений: 15,477
10.06.2018, 15:59 8
Цитата Сообщение от alexpro1979 Посмотреть сообщение
как вместо btn подставить значение переменной nameKN?
Me.Controls(nameKN).Left
2
647 / 100 / 11
Регистрация: 08.06.2015
Сообщений: 1,564
10.06.2018, 16:20  [ТС] 9
Может кому-то пригодится. Спасибо за помощь.
Вложения
Тип файла: rar ButtonMove2.rar (27.6 Кб, 24 просмотров)
0
10472 / 5458 / 1375
Регистрация: 05.10.2016
Сообщений: 15,477
10.06.2018, 17:27 10
alexpro1979, вот вам ласковые пользователи как наперетаскивают кнопки... и концов не найдёте
... а их хлебом не корми - только дай что-нить испортить ...

Я бы ещё ввёл понятие "Исходное положение" и кнопалку возврата (к исходному) ...
1
1185 / 421 / 87
Регистрация: 29.03.2016
Сообщений: 1,015
10.06.2018, 19:28 11
Лучший ответ Сообщение было отмечено alexpro1979 как решение

Решение

Цитата Сообщение от Eugene-LS Посмотреть сообщение
вот вам ласковые пользователи как наперетаскивают кнопки...
Можно конкурсы среди пользователей устраивать, на самое оригинальное размещение кнопок.
Вот у меня конвертик получился, например.
Миниатюры
Перемещение кнопок на форме  
Вложения
Тип файла: zip DIA5.zip (33.9 Кб, 15 просмотров)
5
647 / 100 / 11
Регистрация: 08.06.2015
Сообщений: 1,564
10.06.2018, 20:27  [ТС] 12
Это для меня высший пилотаж.
0
10472 / 5458 / 1375
Регистрация: 05.10.2016
Сообщений: 15,477
10.06.2018, 20:51 13
Цитата Сообщение от alexpro1979 Посмотреть сообщение
Это для меня высший пилотаж.
Задачки выше наших знаний и навыков = полезны, ибо заставляют "мозг морщить" и учиться новому ....
1
Модератор
Эксперт MS Access
11960 / 4828 / 779
Регистрация: 07.08.2010
Сообщений: 14,140
Записей в блоге: 4
10.06.2018, 21:19 14
Цитата Сообщение от Jamaica Посмотреть сообщение
Можно конкурсы среди пользователей устраивать, на самое оригинальное размещение кнопок.
Вот у меня конвертик получился, например.
код пока не смотрела, но весьма оригинально
1
10472 / 5458 / 1375
Регистрация: 05.10.2016
Сообщений: 15,477
10.06.2018, 21:21 15
Цитата Сообщение от shanemac51 Посмотреть сообщение
но весьма оригинально
Жаль чрезвычайно редко применимо ...
1
Модератор
Эксперт MS Access
11960 / 4828 / 779
Регистрация: 07.08.2010
Сообщений: 14,140
Записей в блоге: 4
10.06.2018, 21:45 16
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Жаль чрезвычайно редко применимо
применение и не обязательно --главное в том, что пример показывает сколь высоки возможности VBA
решая прикладную задачу всегда надо помнить об этом
слишком часто мы забываем об этом
1
10472 / 5458 / 1375
Регистрация: 05.10.2016
Сообщений: 15,477
10.06.2018, 22:00 17
Цитата Сообщение от shanemac51 Посмотреть сообщение
главное в том, что пример показывает сколь высоки возможности VBA
Всё правильно.
Насколько я помню: Они (возможности VBA) вообще ничем не ограничены.
... а плюс API - там кошмар вообще до безпредела (хотите форму вверх ногами?) ...
1
10.06.2018, 22:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.06.2018, 22:00
Помогаю со студенческими работами здесь

Перемещение в форме по Enter
Доброго вечера! Выкладываю свою наработку. Не могу победить переходы по enter. В форме...

Аналоги системных кнопок навигации по форме
Нужно сделать аналоги системных кнопок навигации по записям и поиск, которые на скриншоте. ...

Программное перемещение объекта по форме
Предположим есть объект activx который находится за формой, возможно ли при наведении указателя на...

Как организовать фильтр в Форме за счет кнопок
Здравствуйте, подскажите пожалуйста Как организовать фильтр в Форме за счет Кнопок.Формы


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru