表单按钮间歇性地返回运行时错误2101

时间:2016-11-02 18:42:16

标签: sql vba ms-access access-vba ms-access-2010

我有一个简单的表单,用户从组合框中的列表中选择一个值,然后单击一个按钮打开由选择过滤的另一个表单。在开发和测试中,它工作正常,但在Prod中,用户偶尔会收到运行时错误2101:'您输入的设置对此属性无效'。如果用户重新启动他们的机器,则错误不会持续存在,至少会持续一段时间。

当用户点击“确定”时会发生这种情况。按钮,关闭选择表单并打开主界面表单。该按钮的代码只是:

Private Sub btnOK_Click()
    DoCmd.OpenForm "CC_Tracker_from_form", acNormal, , , acFormEdit
    DoCmd.CLOSE acForm, "frmCoord_Selector"
End Sub

当用户关闭错误弹出窗口时,选择表单在主界面顶部仍然可见,如果失败位于DoCmd.CLOSE行,这种情况有意义,因为Access已经打开了主窗体

当用户执行完全相同的操作(即使是组合框中的相同选择)时,为什么错误2101仅在某些时间触发?

我不认为此错误与主表单的基础记录源有任何关系,但以下是代码:

SELECT 
    [Bunch of columns],
    IIf(dbo_CC_Tracker.RISK_LVL='Low',Null,dbo_CC_Tracker.CHRA+365) AS CHRA_Next, 
    IIf(dbo_CC_Tracker.RISK_LVL='High',dbo_CC_Tracker.[ICP/Review]+29,
    IIf(dbo_CC_Tracker.RISK_LVL='Medium',dbo_CC_Tracker.[ICP/Review]+89,Null)) AS ICP_Next, 
    IIf((dbo_CC_Tracker.RISK_LVL='Low' Or dbo_CC_Tracker.RISK_LVL='Medium'),Null,dbo_CC_Tracker.F2F+179) AS F2F_Next, 
    IIf(dbo_CC_Tracker.RISK_LVL='Low',Null,dbo_CC_Tracker.ICTCont+89) AS ICT_Next,
    dbo_CC_Tracker.HTR_Letter +30 AS Final_Follow, 
    dbo_CC_Tracker.ASSIGNED +59 AS Deadline_1, 
    dbo_CC_Tracker.ASSIGNED +89 AS Deadline_2
FROM dbo_CC_Tracker
WHERE 
(((dbo_CC_Tracker.ASSIGNED_CARE_COORDINATOR)=Forms!frmCoord_Selector!cmbCoords)         
      And dbo_CC_Tracker.[CLOSE] is null)    
Or Forms!frmCoord_Selector!cmbCoords Is Null;

2 个答案:

答案 0 :(得分:1)

由于某种原因,您尝试关闭的表单可能无法保存任何更新。

我会确保如果表单中有任何数据已更改,则会保存,因此可以添加

If Me.Dirty Then Me.Dirty = False

在关闭现有表单之前强行保存。

答案 1 :(得分:0)

根据第一个表单在将下拉选择传递给第二个表单之前关闭的想法我已经从关闭表单DoCmd.CLOSE acForm, "frmCoord_Selector"更改为隐藏表单Me.Visible = False尽管第一种形式不再显示,但应该保持选择有效。