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

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

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

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

Панург, т.е. для каждого поля нужно прописать "новые координаты", услышал. Спасибо.
А как размер формы по высоте уменьшить? Тоже через Left, Top, Width, Height?
...
Рейтинг: 0 / 0
Как массово перемещать поля в форме/изменить высоту формы
    #39825162
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
quickstar, если формы в виде вкладок, то никак. В противном случае есть InsideHeight , InsideWidth (можно попробовать WindowHeight, WindowWidth ), но если хочется красиво (чтобы визуально со всех сторон изменения шли), можно задействовать и WindowLeft, WindowTop . Кто же мешает? Не забываем про секции формы, возможно их тоже нужно будет изменять (Detail - область данных)
...
Рейтинг: 0 / 0
Как массово перемещать поля в форме/изменить высоту формы
    #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
Как массово перемещать поля в форме/изменить высоту формы
    #39825258
quickstar, а зачем эти танцы с бубном? Может проще вместо видимости менять доступность поля? Тогда оно (и связанная надпись) будет сереньким.
...
Рейтинг: 0 / 0
Как массово перемещать поля в форме/изменить высоту формы
    #39825305
Фотография Лапух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku,

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


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