Access - это приложение MDI (Multiple Document Interface), и вот как они работают: все подокна развернуты или не развернуты.
Что вам нужно сделать, так это найти способ обнаружить размеры окна приложения Access, а затем программно установить свойства формы .InsideWidth и .InsideHeight. У объекта Application
есть hwndAccessApp
, который, вероятно, можно использовать с некоторым вызовом Windows API для определения его ширины и высоты.
дополнение
Спасибо Philippe Grondier за поиск соответствующего образца кода, общая идея из образца кода :
- объявляет следующие элементы Win32 API:
struct Rect
(Type Rect…
в VBA)
const SW_SHOWNORMAL = 1
(для ShowWindow)
GetParent
(с указанием hwnd, получить hwnd его родителя)
GetClientRect
(получить позицию и размер от hwnd)
IsZoomed
(логическое; true, если окно развернуто)
ShowWindow
(изменить состояние окна)
MoveWindow
(для изменения положения и размера окна)
- если ваша форма развернута (
IsZoomed(frm.hWnd) = True
), то восстановите ее (ShowWindow frm.hWnd, SW_SHOWNORMAL
)
- получить область клиентов MDI из hWnd вашей формы (
GetClientRect GetParent(frm.hWnd, rect)
)
- используйте данные прямоугольника, чтобы изменить положение и размер вашего окна (
MoveWindow frm.hWnd, 0, 0, rect.x2-rect.x1, rect.y2-rect.y1
)
(Выше приведено объяснение примера кода; я не копировал и не вставлял код, потому что не был уверен, разрешил ли его автор).