我有一个不会刷新的联合查询,除非我关闭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,但它也不起作用。
我可以在询问相关问题时显示此查询的更多部分。
希望有一种编程方式可以在基础查询中更改数据时刷新它。
答案 0 :(得分:1)
解决方案是:查询从其他查询中缓存数据的表中获取了一些数据,并且可能在启动时填充。