代码之家  ›  专栏  ›  技术社区  ›  dave

为什么Access希望您标识链接表上的主键?

  •  5
  • dave  · 技术社区  · 14 年前

    我支持使用MS Access作为前端的用户在我们的机构中查看一些Oracle表。他们的典型用途是使用access querybuilder编写即席查询,而且他们喜欢access,因为它允许他们构建可打印的报告,而无需通过我们的技术支持部门提交冗长且昂贵的编程请求过程。

    创建到外部表的链接时,有时会要求它们标识表的主键。当然,他们怎么可能知道主键字段是什么?

    我的问题是:为什么Access想要知道链接表的主键字段是什么?索引应该发生在源数据库中,不是吗?

    最近,当用户开始使用Access2007时,我们遇到了一个问题:1)新的ODBC连接,或2)为链接表标识不同的主键列。我的技术支持试图坚持我必须通过告诉我的用户选择正确的主键字段来修改我的实践。我认为这不重要。但我不能否认这样的想法,即微软Access不会问这是否无关紧要 某物 . 只是不知道那可能是什么。

    注:“问题”在本帖中有描述: Access 2007 to Oracle 10g linked table -- query with flawed results, but no errors thrown

    3 回复  |  直到 9 年前
        1
  •  4
  •   HansUp    14 年前

    如果您的用户只需要只读访问权,在查询和报告时,请让他们单击“取消”,以回答Access关于使用哪个字段作为主键的问题。他们应该仍然能够创建链接,但它是只读的。

    如果您的用户需要修改链接的Oracle表中的数据,请为他们提供您为其创建的Access数据库文件的副本。您设置了链接表,并且连接属性存储在链接的tabledef中…之后,访问不需要为该链接返回DSN。所以用户也不需要DSN。

        2
  •  2
  •   nvogel    14 年前

    除非用户知道键是什么,否则他们将如何知道表的含义或如何将它连接到其他表?要从SQL数据库中获得有用的结果,知道哪些键是非常重要的。

        3
  •  0
  •   user4555000    9 年前

    不仅使用pk进行更新。同样,在进行异类联接时,即在ODBC表和本地表或来自不同ODBC源的表之间,访问需要将所有数据都获取到本地才能进行联接。让pk循环使用pk向外部源执行多个查询。这对于小的本地表和长的ODBC表非常有用。