2008-10-16 1 views
2

Поскольку Access 2003 не имеет функции привязки к управлению, как существует в 2007 году, мне было интересно, знает ли кто-нибудь или знает какой-то скрипт VBA или бесплатный элемент управления, который может дать эту функциональность?Сценарий VBA для автоматического изменения размеров элементов управления/подформ в форматах MS Access 2003?

ответ

5

Я не знаю точное дублирование функциональности 2007 года в 2003 году. Существует несколько компонентов для независимости разрешения (изменение размера элементов управления на форме на основе разрешения монитора пользователей) и изменение размера с помощью события изменения размера формы (например, http://www.fmsinc.com/products/components/ControlTour/resize.htm). Нет, что я знаю о том, чтобы полностью воспроизвести опыт 2007 года, но аналогичный вопрос (и код для его обработки) можно найти здесь: http://www.experts-exchange.com/Microsoft/Development/MS_Access/Q_23662850.html

Лично я просто обработал событие изменения размера самостоятельно. Самый простой способ - создать форму в минимальном размере, который вы хотите поддержать, а затем записать базовые позиции и ширину (либо в таблице, либо в виде констант с видимыми формами). Оттуда вы можете изменить с помощью:

resizeRatio = currentFormWidth/baseFormWidth 

control.left = baseLeft * resizeRatio 
control.width = baseWidth * resizeRatio 

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

resizeRatio = (currentFormWidth - labelsAreaWidth)/(baseFormWidth - labelsAreaWidth) 

control.left = (baseLeft - labelsAreaWidth) * resizeRatio + labelsAreaWidth 
control.width = baseWidth * resizeRatio 
1

В случае, если кто-то разыскивать на 2007 год или выше - 2010, 2013, 2016 год. Вот ответ.

Размер шрифта не будет автоматически изменяться в зависимости от разрешения экрана в любой версии Access, но начиная с Microsoft Access 2007 вы можете использовать новые свойства элементов управления, чтобы сделать их растянуть, сжать или переместить на основе размера формы (описание here)

1

Попробуйте использовать код VBA в this, чтобы узнать, дает ли он вам то, что вы хотите. Когда размер формы изменяется, все элементы управления и текст в форме будут пропорционально изменены, чтобы они выглядели одинаково независимо от размера окна или того, на что пользователь установил разрешение монитора.