Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как при открытии табличной формы заморозить (freeze) поля? / 4 сообщений из 4, страница 1 из 1
30.04.2007, 21:02
    #34497860
Ivashenko Lev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как при открытии табличной формы заморозить (freeze) поля?
Захотели пользователи... Имеем табличную форму, при работе с которой они (пользователи) через меню Формат - Закрепить поля создают себе удобства. При закрытии формы мы сохраняем значение свойства Me.FrozenColumns. А затем, при открытии, по идее, делаем так:

Me.Controls(Какое_надо_поле).SetFocus
DoCmd.RunCommand acCmdFreezeColumn

И тут наступил облом и клин :( Закрепляется всегда первое поле, независимо от того, какому был сделан SetFocus. Опытным путем было выяснено, что надо делать не SetFocus, а выделять нужное число полей (как вручную мы их выделяем полностью мышью).
Вопрос: а как программно выделить столбцы в табличной форме? SelTop, SelWidth и т. п. выделяют только ячейки, ну или блок ячеек.
...
Рейтинг: 0 / 0
30.04.2007, 21:27
    #34497875
Karfaqen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как при открытии табличной формы заморозить (freeze) поля?
Ivashenko LevЗакрепляется всегда первое поле, независимо от того, какому был сделан SetFocusВообще-то закрепляется именно поле, на котором стоит фокус. Просто оно после этого перемещается на первую позицию - если закрепленных столбцов еще не было. Но это и понятно - в этом суть закрепления. Если они уже были, то - на следующую по-порядку после группы закрепленных столбцов. То же самое происходит при полностью выделенном столбце, по крайней мере в msa2000 так.

Вот такой код:
Код: plaintext
1.
2.
3.
4.
Forms( 0 )("field5").SetFocus
DoCmd.RunCommand acCmdFreezeColumn
Forms( 0 )("field10").SetFocus
DoCmd.RunCommand acCmdFreezeColumn
Закрепит вам эти поля первым и вторым столбцом - где бы они до этого не находились.
...
Рейтинг: 0 / 0
30.04.2007, 21:35
    #34497883
Ivashenko Lev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как при открытии табличной формы заморозить (freeze) поля?
Огромное спасибо!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
06.10.2016, 11:07
    #39321721
MikeLed
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как при открытии табличной формы заморозить (freeze) поля?
Интересное наблюдение по работе с Freeze

У меня подчиненная форма в табличном представлении.
При закрытии главной формы запоминаю информацию о закрепленных колонках ( ObjSubForm.Form.FrozenColumns ).
При следующем открытии восстанавливаю закрепление:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
' intFreeze  - получаю из сохранения: это число
        For Each iControl In ObjSubForm.Form
            If iControl.ControlType <> 100 Then
                iColumn = iColumn + 1
                If iColumn >= intFreeze Then Exit For
                iControl.SetFocus: DoCmd.RunCommand acCmdFreezeColumn
            End If
        Next


Оказалось:
1. перед восстановлением обязательно надо сделать: ObjSubForm.SetFocus
2. последовательность перебора зависит от того, в какой последовательности поля были вставлены в форму, а не от последовательности перехода по TAB.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как при открытии табличной формы заморозить (freeze) поля? / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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