Как изменить размер формы доступа, чтобы соответствовать экрану - PullRequest
0 голосов
/ 15 ноября 2018

Итак, я недавно обновил Access 2003 до Access 2016 и, конечно же, ненавижу иметь дело с отвратительным белым фоном, который нельзя изменить в 2016 году. Максимизация форм / отчетов для нас не вариант, как мы частоЯ буду использовать несколько форм / отчетов в любой момент времени, и у меня будет возможность просматривать и переключаться между ними, чтобы выполнять свою работу.

Я пришел к тому, что я считаю довольно умным решением, я создалфоновая форма, которая пуста, за исключением того, что она имеет темно-серый фон, чтобы облегчить ваши глаза.Когда вы открываете новую форму или отчет (On Open Event), она помещает эту форму поверх стека, чтобы у вас была иерархия открытых форм и отчетов.

Если вы щелкнете по форме или отчетуэто не на вершине (при активации события), затем он перемещается обратно на вершину стека.Затем, если вы случайно нажмете на фоновую форму, вместо того, чтобы скрыть все, над чем вы работали, она пройдет через стек, начиная с нижней части и устанавливая фокус по каждой форме или отчету по порядку?Вот как я делаю это для тех, кто заинтересован:

Private Sub Form_GotFocus()
  Dim db As DAO.Database
  Dim rst As DAO.Recordset
  Set db = CurrentDb
  Set rst = db.OpenRecordset("SELECT ID, FormName, FrmRpt FROM FormStack ORDER BY ID", dbOpenSnapshot)
  If rst.EOF Then
    DoCmd.OpenForm "frmMenu"
  Else
    While Not rst.EOF
      If rst.Fields("FrmRpt") = "Form" Then
        Forms(rst.Fields("FormName")).SetFocus
      Else
        DoCmd.SelectObject acReport, rst.Fields("FormName")
      End If
      rst.MoveNext
    Wend
  End If
  rst.Close
  Set rst = Nothing
End Sub

Это все работает отлично, мне просто нужно убедиться, что я добавляю код в любые новые формы или отчеты, которые я создаю.

Итак, вот моя дилемма, эта фоновая форма должна быть достаточно большой, чтобы заполнить экран того, кто ее использует, иначе вы бы увидели белый цвет по краям.Поскольку у всех разные мониторы, я решил сделать форму чрезвычайно большой (21 "x13"), чтобы она могла заполнить экран любого, кто ее использует.У меня есть Автоцентр, Авторазмер и По размеру экрана. Да.

У меня нет границы, селекторов записей, кнопок навигации, линий погружения, полос прокрутки, блоков управления, кнопок закрытия или минимального или максимального значения.кнопки, и это также не является подвижным.Детальный раздел может увеличиваться и уменьшаться.Так что теперь все работает, за исключением того, что эта форма больше, чем у любого окна Access, в самом окне Access нет полос прокрутки, так что вы можете перемещаться, чтобы увидеть весь фоновый вид во всей его серой, темно-серой красоте.

Было бы замечательно, если бы можно было идеально заполнить окно доступа, чтобы эти полосы прокрутки не появлялись и не запутывали пользователей.

Кто-нибудь знает, как решить эту проблему?

Ответы [ 4 ]

0 голосов
/ 02 августа 2019

Ну, это не изменяет размер формы, чтобы соответствовать экрану, но в Access теперь есть тема Dark Grey, которая дает мне темный фон и решает мою проблему.

0 голосов
/ 21 ноября 2018

Зайдите в Настройки доступа => document window options и выберите tabbed documents.Любая форма, которую вы хотите иметь определенный размер, вы можете затем установить как «всплывающее».

Вы все еще можете иметь свою пользовательскую форму с пользовательским цветом bg, размером 1cmx1cm, без прокрутки, без панели навигации, без выбора записей,пограничный стиль none.Поместите прямоугольник и установите для свойства Anchoring значение "strech down and across", которое заполнит все приложение доступа, и пользователь не сможет его закрыть.

страница настроек

enter image description here

результат выборки

enter image description here

0 голосов
/ 01 августа 2019

Поздний ответ, но лучшее решение, которое я нашел, это Shrinker-Stretcher из Peter's Software.Он циклически перебирает все элементы управления и изменяет размеры всего в форме (и ее подчиненных формах), чтобы соответствовать окну приложения.Лицензия разработчика разумна для того, что она делает.

0 голосов
/ 16 ноября 2018

Я бы

  • Максимизировал фоновую форму, чтобы покрыть фон доступа.
  • Установите для всех форм + отчетов значение Popup = Yes, тогда они не будут быть развернутым, даже если развернутая форма открыта.
  • Сообщите пользователям, что теперь у них больше свободы в перемещении окон и что им следует избегать перекрытия строки меню.
    Если некоторые из нихесть настройка с двумя мониторами, они также могут перемещать некоторые окна на второй монитор (за пределами главного окна Access).Это может быть очень полезно.
  • (и самое главное) покончить со всем этим кодом во всех формах.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...