我支持使用 MS Access 作为前端来查看我们机构的一些 Oracle 表的用户。他们的典型用途是使用 Access 查询构建器编写临时查询,他们也喜欢 Access,因为它使他们能够构建可打印的报告,而无需通过我们的技术支持部门提交冗长且昂贵的编程请求过程。
创建指向外部表的链接时,有时会要求他们标识表的主键。当然,他们怎么可能知道主键字段是什么?
我的问题是:为什么 Access 想知道链接表的主键字段是什么?索引应该发生在源数据库中,不是吗?
最近,当用户开始迁移到 Access 2007 时,我们遇到了一个问题,该问题最终可以通过两种方式“修复”:1) 新的 ODBC 连接,或 2) 为链接表识别不同的主键列。我的技术支持试图坚持我必须通过告诉我的用户选择正确的主键字段来修改我的做法。我认为这应该无关紧要。但我不能否认 MS Access 不会询问它是否对某些事情无关紧要的想法。只是不确定那可能是什么。
注意:“问题”在这篇文章中有描述:Access 2007 to Oracle 10g linked table -- query with flawed results, but no errors thrown
最佳答案
如果您的用户只需要只读 Access 权限以进行查询和报告,请让他们单击取消以响应 Access 的关于将哪些字段用作主键的问题。他们应该仍然能够创建链接,但它将是只读的。
如果您的用户需要修改链接的 Oracle 表中的数据,请向他们提供您为他们创建的 Access 数据库文件的副本。您设置了链接表,并且连接属性存储在链接的 TableDef 中……之后,Access 不需要为该链接返回到您的 DSN。因此,用户也不需要 DSN。
关于ms-access - 为什么 Access 要您标识链接表上的主键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3374419/