MS 访问组合框"#Name?"错误



表单中的组合框有问题,每当我输入它来选择值时,它都会显示"#Name?"错误。

我正在MS Access中创建一个表单(特别是在Microsoft Office Professional Plus 2010中),它是一个通用用户界面,这意味着表单本身不会链接到任何类型的记录集。在该表单中,我创建了一个组合框,将其链接到"TblSubsystem"表。这张桌子非常简单,设计成这样:

  • ID(主键,自动编号)
  • SysShortName,文本
  • SysFullName,文本

当我试图在下拉列表中选择一个值时,组合框的测试框只显示"#Name?"(实际上,我一选择组合框,甚至在选择任何值之前)

组合框的相关(我认为)参数为:

  • 控制源="=[TblSubsytem]![ID]">
  • 行源=TblSubsystem
  • 行源类型=表/查询
  • 绑定列=2
  • 列计数=2
  • 列宽=0cm;1厘米(我试图选择并显示短代码,但要将ID作为组合框的值)

我在同一项目中有另一个表单,其中相同的设置(也在TblSubsystem上)运行良好,这些参数的值相同,但该表单链接到记录集(另一个表)。据我所知,这是唯一的区别,所以我想我一定错过了一些东西,一旦我看到它,这似乎很明显…

我在stackoverflow和更广泛的网络上寻找了"Ms Access combobox#Name?Error"的变体,但两天来,我没有看到任何回复我问题的帖子。有些是接近的,但指的是一个更复杂的设置,而我认为我的应该是非常直接的。试图根据我的情况调整解决方案(包括重新创建组合框或反编译数据库)没有帮助。

这是一个很长的问题,对此感到抱歉,但希望足够精确,让你们中的一些人能够在这方面提供帮助。我事先感谢你对我的帮助。

#Name是一个绑定问题。试着将绑定列设置为1,这样它只记录主键,看看是否有效。

编辑:您已经得到了引用表主键作为控制源的组合框。请记住,控件源是应用程序用户正在更改的值。以下是使用组合框时需要考虑的一些关键事项:

  • 控制源应该(通常)引用表的外键
  • 行源应引用您希望在框中显示的文本
  • 绑定列应设置为1,除非应用程序设计要求同时更新两个字段,这是一种不常见的做法
  • 将列宽设置为0;1.这将隐藏行源中的第一个字段,该字段应该是外键

示例如下:控制源:EmployeeID-123456行来源:EmployeeID,EmployeeName--123456 | John Doe

设置为1的绑定列将记录值1234556。设置为2的绑定列将记录123456, John Doe

相关内容

  • 没有找到相关文章

最新更新