【问题标题】:SQL Server BackEnd Access Front-End ODBC ErrorSQL Server 后端访问前端 ODBC 错误
【发布时间】:2020-07-05 22:36:21
【问题描述】:

我可以在 SSMS 中很好地读取/写入/更新表,如果我在 Access 2013 中打开表本身,我可以很好地打开/读取/写入表,但是如果我尝试查询表,我会获得通用访问权限

的错误信息

ODBC -- 调用失败

此表有 558,672 行。我尝试过使用带有 VBA 的 DSNLess 连接以及通过访问中的工具栏手动链接表格。是什么导致访问抛出此错误?

编辑
我也尝试过压缩和修复数据库,但无济于事。

编辑 #2
似乎只有一个元素(一个子表单)引发了 ODBC 错误。奇怪的是主窗体和子窗体基于相同的数据源,但只有子窗体抛出错误?

【问题讨论】:

  • “查询表”是指在访问中创建选择查询并运行它吗?
  • @Nick.McDermaid - 是的,这就是我查询表格的意思,抱歉我不清楚。
  • 您可能应该发布您的查询。是针对链接表的查询还是直通查询?
  • 针对链接表。这是一个直接的 Select 查询。如果我选择 1 个字段或 10 个字段,则会引发相同的错误。我什至尝试创建仅包含 2 - 3 个字段的视图,以查看字段是否已损坏但结果相同。
  • 你能把表格定义发给我们吗

标签: sql-server ms-access ms-access-2013


【解决方案1】:

在此之前我遇到了这个问题,我必须更改为使用 MS Access 访问表并对其进行编辑。

1.你的表应该有一个主键。在列属性中,将标识规范设置为yes,并将标识递增1。我更愿意设置一个具有int 数据类型的全新列。 2.布尔字段中没有空值,一切都应该是1或0。并将约束设置为0。

【讨论】:

  • 我有一个 PK 设置为标识并递增 1,所有其他字段都是日期时间、nvarchar(255) 或实数。
  • 重新链接表。链接时,它会要求您为每个表提供唯一标识符。如果您不选择一个,那么您将遇到问题,因为当您更改数据时它不知道要更新哪条记录,并可能导致它更新多条记录而不是您要更新的一条记录。如果您已经这样做了,那么我想它一定是别的东西,但听起来肯定像上面的人发布的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多