我在vb6中使用数据报表时遇到了问题。
我使用命令创建了一个Dataenvironment来访问我想要显示的行,然后创建了Datareport,并在datamember属性中使用了创建的Dataenvironment。
如果我使用下面的代码:
Load datareport
datareport.Show 1然后,如果我打开报告,然后向表中添加更多行,当我再次打开报告时,它不会改变。我看到了相同的输出。
我读到我应该重新打开连接。如何正确地打开数据端口的连接,然后将其关闭,以便MS Access数据库不被锁定。
发布于 2010-11-06 08:01:22
不确定Access中操作的确切顺序,但VB6中的Load命令在显示全局对象名称时,仅在尚未加载的情况下加载它。显然,你需要在某个时刻(比如,当你关闭它的时候)使用Unload datareport。
发布于 2010-11-06 17:31:40
首先,您不必为窗体/报表显式使用Load,只需访问属性/方法即可加载实例。
其次,不要使用窗体/报表的全局实例-- Form1、DataReport1 --这是MS Access兼容性的遗留问题,强烈建议您这样做。您可以使用operator New -- Set MyInstance = New DataReport1创建像常规类一样的窗体/报表的单独实例
在您的情况下,最简单的方法是将加载/显示代码替换为以下代码:
With New DataReport1
.Show vbModal
End With其中,DataReport1是报表类的名称。这段代码每次都会创建一个DataReport1的新实例,并以模态方式显示它。当用户关闭UI窗口时,新创建的实例将终止。
https://stackoverflow.com/questions/4111058
复制相似问题