使用select查询从连接表中获取值

时间:2015-05-01 11:45:23

标签: sql ms-access access-vba

我正在尝试从下面代码中的表格中获取表格中的值' tblJobTitles'。我想要获取的价值是' JobTitle'不幸的是,在控制盒中我一直得到#Name?错误。我试图调整属性但是我试着给我同样的错误。

注意:如果我尝试这样做而不加入&#t; tblContacts' to' tblJobTitles'并且只使用&#t; tblContacts',我可以在表单上的字段中成功检索作业标题,只是它从作业标题表中返回数字唯一ID号。是否可以重新格式化以返回文本值?

{{1}}

1 个答案:

答案 0 :(得分:2)

#Name错误可能有几个不同的来源。这意味着Access无法描绘字段或属性,因为:

  1. 它与某事共享一个名称,无论它是否为控件名称 和控制源等
  2. 无法找到您所指的字段(例如在此方案中)
  3. 因此,在您的查询中,您说,"从这两张表中提供所有内容。"

    当您有2个相同的字段并运行查询并查看结果时,Access会将表名预先挂起到该字段。 (tblContact.JobTitletblJobTitle.JobTitle)。这是因为它识别出两个表中都有重叠(相同)的字段名称,因此需要将它们标识为唯一值。您可能已经忘记在控制源前面添加表名,但最好明确指出您的位置。

    当您在控件中引用字段JobTitle时,Access会想知道您引用了哪个字段,因为JobTitle位于表格的 中。这是一些人使用别名的原因,例如:tblContact.JobTitle AS ContactJobTitle, tblJobTitle.JobTitle AS [Job_Title]。这样,您就可以非常明确地告诉Access您指的是哪个字段。

    从查询中选择字段时,您应该明确。

    众所周知,

    SELECT Table.*存在性能问题,如果您在控件中使用这些字段,则无法充分引用要从中选择的字段(如果有的话)表中重叠。)

    感谢@HansUp以及纠正。

    希望这有帮助。