除非我关闭并重新打开数据库

时间:2016-07-23 00:14:42

标签: access-vba

我有一个不会刷新的联合查询,除非我关闭Access并重新打开它。

联盟查询跟踪2个边,1个边有已分配的数字。另一边有不明身份的号码。

为了使这个简单尽可能简单,查询的名称是“TOTALS_FINAL”,它会产生我想要的结果。

但这是一个繁重的查询,所以不要在表单上创建记录源 以下是我在表单上显示值的方法

Public Sub RefreshTOTALS()

Dim db As DAO.Database
Dim rs As DAO.Recordset
'Dim rsSP As DAO.Recordset

'dbOpenSnapshot is dramatically quicker than multiple Dlookups
Set db = CurrentDb
Set rs = db.OpenRecordset("TOTALS_FINAL", dbOpenSnapshot)



With Form_frm_COB

.txtTOTALS_AFP = rs!AFP
.txtTOTALS_ALLT = rs!ALLT
.txtTOTALS_SP_C = rs!SP_C
.txtTOTALS_SP_O = rs!SP_O
.txtTOTALS_COMMITS = rs!COMMITS
.txtTOTALS_OBS = rs!OBS
.txtTOTALS_COM_SP_RATE = rs!COM_SP_RATE
.txtTOTALS_OBS_SP_RATE = rs!OBS_SP_RATE
.txtTOTALS_UNC = rs!UNC

Set rs = Nothing
Set db = Nothing

End Sub

如果我可以请你的许可,我没有显示查询的细节,因为它会使这个问题变得不必要地复杂化。只需说完,如果我关闭数据库并重新打开它,这就是刷新此查询中值的唯一方法。

我已经尝试过rs.requery,但它也不起作用。

我可以在询问相关问题时显示此查询的更多部分。

希望有一种编程方式可以在基础查询中更改数据时刷新它。

1 个答案:

答案 0 :(得分:1)

解决方案是:查询从其他查询中缓存数据的表中获取了一些数据,并且可能在启动时填充。