2013-07-31 91 views
1

在Ms Access中,我有兩個未綁定的組合框:StateBoxDVPCBox。 StateBox只是美國各州的列表,DVPCBox包含基於StateBox值的查詢中的員工姓名。MS Access運行時錯誤2115

我試圖設置DVPCBox的值等於它的列表中的第一個項目。由於Employees列表基於StateBox的值,因此每次StateBox更改時都需要更新DVPCBox的值。我試過如下:

Private Sub StateBox_AfterUpdate() 
    Me.DVPCBox.Requery 
    If (Me.DVPCBox.ListCount = 1) Then 
     Me.DVPCBox.SetFocus 
     Me.DVPCBox.ListIndex = 0 //<-Error here 
    End If 
End Sub 

但我得到運行時錯誤2115 - 設置爲前或有效性規則屬性此字段的宏或功能​​是阻止微軟Office訪問從現場保存數據。

最奇怪的事情對我來說,我甚至不使用前事件或有效性規則(據我所知)。

回答

1

ItemData(0)是第一個組合框的值。所以設置組合等於。

Private Sub StateBox_AfterUpdate() 
    Me.DVPCBox.Requery 
    If (Me.DVPCBox.ListCount >= 1) Then 
     Me.DVPCBox.SetFocus 
     'Me.DVPCBox.ListIndex = 0 //<-Error here 
     Me.DVPCBox = Me.DVPCBox.ItemData(0) 
    End If 
End Sub 

我也改變ListCount >= 1,因爲我認爲你想要做同樣的事情時,該組合包括2點或更多的行。

+0

對不起,我錯誤地將你的代碼複製到了我的模塊中,這讓我覺得有錯誤。一旦我意識到這是我的錯,我就刪除了我的評論。你的解決方案就像一個魅力。謝謝! – Ben