MS Access 2016 在某个链接的 SQL Server 表上崩溃

Posted

技术标签:

【中文标题】MS Access 2016 在某个链接的 SQL Server 表上崩溃【英文标题】:MS Access 2016 crashes on a certain linked SQL Server table 【发布时间】:2018-12-09 00:59:11 【问题描述】:

我将 MS Access 表导入 SQL Server 2012 数据库。在 MS Access 中,当我更改 SQL Server 表的链接时,数据库没有打开(停止响应并关闭)。

我将它们改回 Access 表,它们可以正常打开。然后我一次更改一个表的链接并重新打开。直到我到达一张桌子(只有一个int Identity 和一个nvarchar(20) 列)它才停止打开。

发生了什么事?当它链接到 SQL Server 表时(我使用 shift 键打开 MS Access 数据库),我可以打开表并添加/编辑记录。它似乎只是不喜欢打开使用此表的初始表单。

我什至删除了 SQL Server 表并从头开始构建它,但它仍然崩溃。

【问题讨论】:

请提供minimal reproducible example。 【参考方案1】:

    当您不按 shift 键阻止执行时,了解发生了什么对我们来说很重要。 请向我们展示正在执行的代码。

    一般来说,如果出现奇怪的行为,总是值得尝试反编译/压缩数据库:"c:\Program Files\Microsoft Office\Office16\MSACCESS.EXE" "c:\test\YourDatabase.accdb" /decompile /compact

    备注:exe的路径取决于您安装的Access版本/平台。 因此,对于 Access 2016,它可能是其中之一(64 位/32 位):

    c:\Program Files\Microsoft Office\Office16\MSACCESS.EXE c:\Program Files (x86)\Microsoft Office\Office16\MSACCESS.EXE

    此外,在这种奇怪的情况下,确保 Microsoft Access 已完全修补也是值得的。应考虑搜索和安装更新。

【讨论】:

【参考方案2】:

表的名称是什么? (access 和 sql 有不同的保留字),如果你使用其中一个,你可能可以创建一个表但永远不能访问它。 如果表名里面有空格,Access一般是可以的,但是sql真的不行。

简单的解决方案:如果名称中有空格 - 删除它们并重新链接。 由于大多数保留字都是单个字 - 如果您使用单个字作为表名,请将其更改为连接在一起的两个字。

【讨论】:

以上是关于MS Access 2016 在某个链接的 SQL Server 表上崩溃的主要内容,如果未能解决你的问题,请参考以下文章

MS Access JOIN 访问表与 SQL Server 表

VB.NET 创建(类似 MS ACCESS)“链接表单”

MS-Access/SQL 拆分:如果我将其移动到不同的文件夹,前端安全性会发生变化

MS Access - SQL Server 登录提示不会消失

sql MS SQL链接到Excel和Access示例

MS Access 链接到 SQL 服务器视图