分享

Excel ADO 连接自身内存无法释放内存的一种解决方案

 博览网文 2016-08-18
ADO连接自身时有个严重的BUG,多次运行查询语句是会造成内存无法释放,并且会内存占用迭加。
所以有经验的人会尽量避免这种情况,分为两个文件,一个储存数据,一个运行代码。
但很多时候,又不得不进行“ADO 连接自身”这样的操作。那如何解决这个问题就成了一个很头痛的事情。
既然分为两个文件,只要不是“ADO 连接自身”就不会有这个BUG,那么我们可以写几句代码骗一骗EXCEL。

  1. Sub 欺骗式查询()
  2.     Application.ScreenUpdating = False
  3.     Application.DisplayAlerts = False
  4.     ThisWorkbook.ChangeFileAccess xlReadOnly    '转为只读
  5.     查询
  6.     ThisWorkbook.ChangeFileAccess xlReadWrite
  7.     Application.DisplayAlerts = True
  8.     Application.ScreenUpdating = True
  9. End Sub
复制代码
ThisWorkbook.ChangeFileAccess xlReadOnly   
关键代码就这一句,实现了欺骗效果,
其他两句作用屏蔽 屏幕刷新,避免出现“只读”字样;禁止提示,避免出现询问对话框
看一下两个程序的运行10次的后效果----内存占用相差 10倍。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多