MS Access中子窗体筛选时出现“Method or data member not found”编译错误求助
解决Access筛选子窗体时的“Method or data member not found”编译错误
出现这个编译错误,大概率是控件名称引用错误或者子窗体的调用方式不对,按以下步骤排查:
检查控件名称拼写
确认代码里的cmbboxStaffName(组合框)和subfrmProductionRecord(子窗体容器)的名称,和窗体设计视图里的控件名称完全一致。Access里控件名称哪怕差一个字母,都会触发这个错误。确认子窗体的引用对象
Me.subfrmProductionRecord.Form里的subfrmProductionRecord必须是子窗体的容器控件名称,不是子窗体本身的名称。打开设计视图,选中子窗体区域,查看属性面板里的「名称」字段,确保代码里用的是这个名称。验证组合框的Column属性
Me.cmbboxStaffName.Column(0)的写法没问题,但要确认组合框的数据源确实包含至少1列(索引从0开始),且第0列是StaffID。另外如果StaffID是文本类型,SQL语句要加单引号包裹:Dim intStaffID As String intStaffID = Me.cmbboxStaffName.Column(0) Me.subfrmProductionRecord.Form.RecordSource = "SELECT * FROM tblProductionRecord WHERE StaffID = '" & intStaffID & "'"数字类型则不需要单引号。
快速定位错误源
打开VBA编辑器的即时窗口(按Ctrl+G),分别输入以下代码测试:? Me.cmbboxStaffName.Column(0):测试组合框是否能正常取值? Me.subfrmProductionRecord.Form.Name:测试子窗体容器是否能正常引用
哪行报错,就说明对应的控件名称有问题。
内容的提问来源于stack exchange,提问作者Azamact
相关产品推荐
相关产品推荐

