Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как массово перемещать поля в форме/изменить высоту формы / 15 сообщений из 15, страница 1 из 1
10.06.2019, 18:02
    #39825058
quickstar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как массово перемещать поля в форме/изменить высоту формы
Добрый день!

Одно из полей формы доступно определенному типу учетной записи.
Для остальных - оно скрыто.

ВОПРОС: когда поле скрыто, как все остальные поля подвигать выше (чтобы не было пустоты) и делать высоту формы меньше на размер скрытого поля?

соответственно, если поле отображается, то все поля нужно сдвинуть вниз на высоту поля и на это же значение увеличить высоту самой формы.
...
Рейтинг: 0 / 0
10.06.2019, 18:52
    #39825084
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как массово перемещать поля в форме/изменить высоту формы
quickstar, для начала нужно сказать что всё таки форма одиночная.
У контролов есть свойства характеризующие положение на форме - Left, Top, Width, Height. Оперируя ими перемещай контролы по форме.
...
Рейтинг: 0 / 0
10.06.2019, 19:39
    #39825103
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как массово перемещать поля в форме/изменить высоту формы
quickstar,
если форма создана мастером:выделить все поля, щелчок правой кнопкой мыша на выделении-в контекстном меню макет>удалить-теперь все поля независимы.Переместите, изменив размер(если хотите),скрытое поле куда хотите(чтоб не мешало). Остальные выделите с shift,перемещение любого выделенного поля будет двигать всю группу
(это написано в любом справочном материале по ACCESS)
...
Рейтинг: 0 / 0
11.06.2019, 03:15
    #39825158
quickstar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как массово перемещать поля в форме/изменить высоту формы
sdku, я, видимо, некорректно задачу сформулировал. Речь про то, чтобы средствами VBA (не руками) двигать все поля. И все же, благодарю Вас за подробный ответ.

Панург, т.е. для каждого поля нужно прописать "новые координаты", услышал. Спасибо.
А как размер формы по высоте уменьшить? Тоже через Left, Top, Width, Height?
...
Рейтинг: 0 / 0
11.06.2019, 04:08
    #39825162
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как массово перемещать поля в форме/изменить высоту формы
quickstar, если формы в виде вкладок, то никак. В противном случае есть InsideHeight , InsideWidth (можно попробовать WindowHeight, WindowWidth ), но если хочется красиво (чтобы визуально со всех сторон изменения шли), можно задействовать и WindowLeft, WindowTop . Кто же мешает? Не забываем про секции формы, возможно их тоже нужно будет изменять (Detail - область данных)
...
Рейтинг: 0 / 0
11.06.2019, 11:17
    #39825245
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как массово перемещать поля в форме/изменить высоту формы
quickstar,
группу можно перебрать так:
(учтите что элементы,в зависимости от Type имеют\не имеют определенные свойства-если элемент не имеет свойства-ошибка)
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
For Each ctl In frm.Controls
		If ctl.ControlType = acTextBox and ctl.name<>"имя" Then
			'задать свойства
			With ctl
				.Enabled = True
				.left=100
                                .top=200
				.Height = 400
				.SpecialEffect = 0
			End With
		End If
Next ctl
...
Рейтинг: 0 / 0
11.06.2019, 11:38
    #39825258
Как массово перемещать поля в форме/изменить высоту формы
quickstar, а зачем эти танцы с бубном? Может проще вместо видимости менять доступность поля? Тогда оно (и связанная надпись) будет сереньким.
...
Рейтинг: 0 / 0
11.06.2019, 12:34
    #39825305
Лапух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как массово перемещать поля в форме/изменить высоту формы
sdku,

а - SpecialEffect это что7
что то ни как не догадаюсь.
...
Рейтинг: 0 / 0
11.06.2019, 12:47
    #39825313
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как массово перемещать поля в форме/изменить высоту формы
F1-" Свойство Оформление (SpecialEffect) позволяет указать способ объемного представления раздела или элемента управления ."
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
myTop=100
myLeft=200
For Each ctl In frm.Controls
		.....
                    .top=myTop
                    .left=myLeft
                .....
              myTop=myTop+100
              myLeft=myLeft+200
Next ctl
...
Рейтинг: 0 / 0
11.06.2019, 13:57
    #39825383
Лапух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как массово перемещать поля в форме/изменить высоту формы
А́аааааа, понял чё это.
Спасибо.
...
Рейтинг: 0 / 0
11.06.2019, 14:36
    #39825420
alecko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как массово перемещать поля в форме/изменить высоту формы
quickstar,
если поле одно и перемещать надо только в одном направлении (например только по высоте), то сделайте переменную, скажем offset
(поскольку изменения не динамические, то можно в событии Load формы сделать)
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
' когда поле0 невидимо
dim ctrl as control
if not Me.Поле0.visible then
offset=Me.Поле1.top-Me.Поле0.top
else 
' когда поле0 видимо, сделайте 
offset=0
end if
' соответственно все поля имеют (если в области данных)
for each ctrl in me.section(acdetail).controls
with ctrl
if .name<>"Поле0" then.top=.top-offset
end with
next
' высота секции
Me.section(acdetail).height=Me.section(acdetail).height-offset


при этом поля должны находится в форме в положении когда Поле0 - открыто
по этому поводу я даже статью писал (там другое решение - у контролов значения расположения не высчитываются, а являются постоянными, но меняются состояния формы и в этих состояниях у контролов значения расположения разные) на сайт Митина Андрея ,но он пока недоступен, да и из-за одного поля париться вряд ли стоит, хотя аппетит приходит во время еды.
...
Рейтинг: 0 / 0
11.06.2019, 15:43
    #39825452
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как массово перемещать поля в форме/изменить высоту формы
alecko,
А у поля есть offset-разве это не свойство Range?
...
Рейтинг: 0 / 0
11.06.2019, 15:52
    #39825458
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как массово перемещать поля в форме/изменить высоту формы
прошу прощения-глянул мельком и не понял что это просто переменная
...
Рейтинг: 0 / 0
11.06.2019, 21:26
    #39825607
alecko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как массово перемещать поля в форме/изменить высоту формы
sdku, оно мне и самому не нравится - похоже на зарезервированное, но... пока не пришло ничего на ум.
...
Рейтинг: 0 / 0
26.07.2019, 15:58
    #39841993
quickstar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как массово перемещать поля в форме/изменить высоту формы
Итого изменение размера формы решил вот таким путем, возможно, кому-то пригодится
Код: vbnet
1.
2.
3.
4.
Private Sub Form_Load()
    DoCmd.MoveSize Width:=8000
    DoCmd.MoveSize Height:=5000
End Sub
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как массово перемещать поля в форме/изменить высоту формы / 15 сообщений из 15, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]