Ms access 不能使用";表格「;房地产;“子窗体”;MS Access中的对象?

Ms access 不能使用";表格「;房地产;“子窗体”;MS Access中的对象?,ms-access,vba,ms-office,Ms Access,Vba,Ms Office,我正在尝试修复MS Access数据库(.mdb)的一个问题,该数据库不是我创建的,并且在另一台计算机上工作正常。该数据库出现故障。有一个下拉列表可从一个值中进行选择,该值应根据所选值填充下拉列表下的一个表,错误为运行时错误: 对象“\u子窗体”的方法“窗体”失败 所以我点击了debug,得到了一个检查下拉值的if语句列表: If dropdown = 1 Then Forms!mylist![namelist subform].Form.RecordSource = "SELECT .

我正在尝试修复MS Access数据库(.mdb)的一个问题,该数据库不是我创建的,并且在另一台计算机上工作正常。该数据库出现故障。有一个下拉列表可从一个值中进行选择,该值应根据所选值填充下拉列表下的一个表,错误为
运行时错误

对象“\u子窗体”的方法“窗体”失败

所以我点击了debug,得到了一个检查下拉值的
if
语句列表:

If dropdown = 1 Then
    Forms!mylist![namelist subform].Form.RecordSource = "SELECT ...  ;"
Else
If dropdown = 2 Then
    Forms!mylist![namelist subform].Form.RecordSource = "SELECT ...  ;"
Else
错误来自:

Forms!mylist![namelist subform].Form
我试图找出对象的类型:

Debug.Print TypeName(Forms!mylist![namelist subform])
它打印了
子表单
,并且在
子表单
属性下有
表单
,那么是什么导致了这个问题呢

如果这个问题很愚蠢或者很简单,请原谅,但是我对Visual Basic以及我今天所学的只是为了解决这个问题的所有知识一无所知,对此我深表歉意

我不认为数据库是在MS Access 2003上创建的,我在XP SP3和Windows 7上尝试了Access 2003和2007上的数据库,但它不起作用,但它在Access 2007上的XP SP3上的一台计算机上起作用,我再也无法访问它了


那么是什么导致了这个问题呢?这是编码问题还是缺少一些依赖项?

您应该在这里使用点表示法

假设这段代码以相同的形式运行,那么这应该是可行的:

Me.namelist_subform.Form.RecordSource  = "select * from qyCustChild"

当表单出现问题时,需要检查以下各项:

  • 您是否尝试过编译(代码窗口,调试-->编译)
  • ?
  • ?
  • (请参阅Application.SaveAsText acForm)
  • 检查是否缺少引用(代码窗口、工具-->引用)。您可能会得到与缺少的引用完全无关的非常奇怪的错误

您确定自己的名字正确吗()?你试过编译吗?你压实并修理过吗?你反编译了吗?有时您可能需要通过复制到文本然后导入来重新创建表单。@Remou问题是我对VBA一无所知,所以我不知道如何执行您的建议。我建议的内容中有一半不是VBA,例如反编译、压缩和修复是数据库机密吗?您可以将其上载到文件共享站点吗?请参阅
Application.SaveAsText acForm
在Access 2013中重新创建今天在Win10上为我工作的表单。。。呸!