访问Shell - 未关闭

时间:2018-01-19 16:49:35

标签: vba excel-vba excel

我在excel中使用vba从访问数据库中获取/写入。

我在程序开头声明对象并设置它们的值。最后还有一段代码可以关闭连接。但访问shell仍然出现。

以下是代码的副本

rep_sample_n <- function(tbl, size, replace = FALSE, reps = 1)
{
rep_tbl = replicate(reps, tbl[sample(1:nrow(tbl), size, replace = replace), 
], simplify = FALSE) %>%
bind_rows() %>%
mutate(replicate = rep(1:reps, each = size)) %>%
select(replicate, everything()) %>%
group_by(replicate)
return(rep_tbl)
}

1 个答案:

答案 0 :(得分:2)

Set objAccess = Nothing

这将释放您持有Access.Application对象的引用:除此之外它不会执行任何操作。

因为该对象有很多其他引用(在其自身内),释放你的引用不会产生任何影响 - 引用计数不为零,因此对象仍然存在。

调用objAccess.Quit会指示对象释放其内容并清理遗留下来的内容,例如db来自Close的{​​{1}}引用。

也就是说,考虑使用ADODB连接而不是加载整个Access应用程序和对象模型。