MS Access VBA运行时错误459

时间:2014-01-28 13:53:55

标签: vba ms-access

我在选项卡式控件中使用多个子表单在MS Access 2010中构建了一个表单。某些子表单包含一个TextField,其中OnClick宏打开一个PopUp表单。单击"确定" -Button时,它使用someFn()计算值,从主窗体获取当前Tab并将值写入相应SubForm中的TextField。

这是PopUp表格中" OK" -Button的代码:

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

如果单击01_subform(Tab 0)上的txt_field,Sub运行完全正常但为什么它会在04_subform(Tab 3)上抛出错误?

编辑:我发现这篇提到错误的微软文章,但解决问题的方法都无法解决问题:http://support.microsoft.com/kb/2748410

由于我在2014/01/26创建了01_subform,并且在创建04_subform之前在2014/01/27安装了更新,这可能就是原因,但我该如何解决?

1 个答案:

答案 0 :(得分:1)

在重新编译数据库之后,抛出了一些其他错误我创建了一个新表单,将所有控件和VBA代码复制到其中,重命名子表单并交换它们,现在一切正常。