Ms access 如何使用VBA在访问表单周围移动列表框?

Ms access 如何使用VBA在访问表单周围移动列表框?,ms-access,listbox,vba,Ms Access,Listbox,Vba,我对这一切都是全新的,所以如果这是一个愚蠢的问题,请原谅。我在MS Access表单上有两个列表框。我正在根据返回的数据量调整列表框的大小。但是,此表单需要打印,并且列表框中有足够的数据,需要将一个堆叠在另一个之上。当第一个列表框展开时,它将覆盖第二个列表框。如何向下移动第二个列表框,以便您可以清楚地看到它?这里有一个非常好的提示,即避免打印表单,而使用报表。表格用于数据输入,报告用于打印数据 您不需要任何代码来让控件根据需要展开和收缩。只需将列表框放在报表上,并将它们的“可以增长”和“可以收缩

我对这一切都是全新的,所以如果这是一个愚蠢的问题,请原谅。我在MS Access表单上有两个列表框。我正在根据返回的数据量调整列表框的大小。但是,此表单需要打印,并且列表框中有足够的数据,需要将一个堆叠在另一个之上。当第一个列表框展开时,它将覆盖第二个列表框。如何向下移动第二个列表框,以便您可以清楚地看到它?

这里有一个非常好的提示,即避免打印表单,而使用报表。表格用于数据输入,报告用于打印数据

您不需要任何代码来让控件根据需要展开和收缩。只需将列表框放在报表上,并将它们的“可以增长”和“可以收缩”设置为true。事实上,比列表框更好的方法是使用两个子报告。子报告将允许多列数据,允许对每列进行格式化,并且“可以增长”和“可以设置为true”将允许它们根据需要进行扩展和收缩


因此,您不需要编写大量代码,但强烈建议您使用报表而不是表单进行打印,因为有许多选项设置允许控件在打印数据时根据需要进行扩展和收缩。因此,报表上的列表框可能会增长,但子报表可能会工作得更好,它们允许数据格式化。

谢谢。打印表单的原因是表单已经存在,是交互式的,并且具有发票所需的所有数据。报表用于打印,表单用于查看/编辑数据。如您所知,不遵守这一区别会导致问题。创建一个报告,CanGrow属性将为您完成所有这些,而不需要任何代码。