2013-05-23 3 views
0

У меня есть проект Access 2003 (.ADP), который является интерфейсом базы данных SQL Server 2005.Как динамически позиционировать текстовое поле в отчете Access 2003?

В этом ADP у меня есть отчет, который представляет собой набор из 8 несвязанных текстовых полей, уложенных друг на друга, каждый со своими ярлыками. Каждое текстовое поле предназначено для инструкций для 8 разных отделов, которые будут работать над заказом.

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

Редко делать все 8 ящиков, получать значения в одно и то же время. В большинстве случаев это 2 или 3 коробки, которые имеют значения.

Учитывая это, можно каким-то образом реализовать жидкую компоновку ящиков? т. е. скрыть поля, для которых не отображаются значения, но вместо отображения пустой области отчет должен перемещаться вверх по ящикам с инструкциями под скрытым полем.

Возможно ли это через какой-либо обходной код VBA? Если нет, то какой другой вариант я могу попробовать? Спасибо.

EDIT - отчет и текстовые поля используются только для представления данных.

ответ

1

Я был в состоянии создать эффект, который вы описать, задав свойства «Может сжиматься» из текстовых полей «Да», а затем добавить следующий код в On Format случае Detail группы

Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer) 
Me.lblAccounting.Visible = Not IsNull(Me.txtAccounting.Value) 
Me.txtAccounting.Visible = Not IsNull(Me.txtAccounting.Value) 
Me.lblFinance.Visible = Not IsNull(Me.txtFinance.Value) 
Me.txtFinance.Visible = Not IsNull(Me.txtFinance.Value) 
Me.lblMarketing.Visible = Not IsNull(Me.txtMarketing.Value) 
Me.txtMarketing.Visible = Not IsNull(Me.txtMarketing.Value) 
Me.lblOperations.Visible = Not IsNull(Me.txtOperations.Value) 
Me.txtOperations.Visible = Not IsNull(Me.txtOperations.Value) 
End Sub 

Для тестовых данных

ID Accounting Finance Marketing Operations 
-- ---------- ------- --------- ---------- 
1 a1   f1     o1   
2    f2  m2     

я получаю следующий результат в Print Preview. Я использую Access 2010, и On Format твики, по-видимому, не работают в «Report View», но в режиме предварительного просмотра я получаю:

ShrinkingBoxes.png

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