2014-01-28 304 views
0

我已經在MS Access 2010中使用選項卡式控件中的多個子表單構建了一個表單。一些子窗體包含一個帶有OnClick宏的TextField,用於打開PopUp窗體。當點擊「OK」按鈕時,它使用someFn()計算一個值,從主窗體獲取當前的Tab並將該值寫入相應SubForm中的TextField。MS Access VBA運行時錯誤459

這是彈出的形式了代號爲「OK」 - 鍵:如果我點擊01_subform(標籤0),txt_field但爲什麼它拋出一個錯誤

Private Sub btn_ok_Click() 
    Dim page As Integer 
    page = Forms![00_data].Form.tabbed.Value 
    Dim Val As Integer 
    Val = someFn 'returns some Value between -1 and 100 
    DoCmd.Close acForm, "10_my_popup_form", acSaveNo 
    If Val >= 0 Then '0-100 are valid 
     Select Case page 
      Case 0 
       Forms![00_main]![01_subform].Form.txt_field.Value = Val 
      Case 3 
       Forms![00_main]![04_subform].Form.txt_field.Value = Val 'Error 459 
     End Select 
    ElseIf Val = -1 Then '-1 is an error code, delete the Value 
     Select Case page 
      Case 0 
       Forms![00_main]![01_subform].Form.txt_field.Value = Null 
      Case 3 
       Forms![00_main]![04_subform].Form.txt_field.Value = Null 'Error 459 
     End Select 
    End If 
End Sub 

小組運行完全正常在04_subform上(表3)?

編輯:我發現,提到了錯誤,但沒有解決問題的辦法的可能解決問題Microsoft文章:http://support.microsoft.com/kb/2748410

正如我已經創建了2014年1月26日和更新01_subform在創建04_subform之前安裝在2014/01/27上,這可能是真正的原因,但我該如何解決它?

+0

如果你還沒有這樣做,你可以嘗試徹底[反編譯](http://stackoverflow.com/a/3268188/2144390)並重新編譯Access數據庫。 –

+0

我還沒有這樣做,但重新編譯數據庫後,我得到一個運行時錯誤'-2146500594(800f000e)':對象'_SubForm'的方法'窗體'失敗,只爲04_subform再次 –

回答

0

由於重新編譯數據庫後引發了一些其他錯誤我創建了一個新窗體,將所有控件和VBA代碼複製到它中,重命名子窗體並交換它們,現在一切正常。