有谁知道这个错误意味着什么或如何解决它?我使用的是 Access 2003 和 SQL2005。当尝试在特定子表单上添加记录时会出现它。
[Microsoft][SQL Native Client] 转换规范的字符值无效 (#0)
此 MS 错误报告描述了相同的消息,但这是 SQL Server 6.5 中的一个错误,已得到解决。
Solved:显然,目标表上没有 PK 是导致此问题的原因,它与子表单或 Access 中的查询没有任何关系。我什至不知道这个数据库中有没有 PK 的表。将 PK 添加到目标表解决了这个问题。奇怪的是,通过 SQL 本机客户端执行时出错的相同查询字符串,通过 SSMS 执行时没有错误。希望这对遇到该奇怪消息的其他人有所帮助。
嗯,我会检查访问端的默认文本框。我还会在设计模式下打开链接表,并且您想要检查 ms-access 在此假定的数据类型。对于不支持的数据类型,ms-access 通常会使用字符串,而 sql server 可能需要其他内容。
因此,检查主表中的主键 (PK),然后检查子表中外键 (FK) 列使用(假设)的数据类型。当我们这样做时,检查子表单控件中用于子/主链接设置的表达式(不是表单,不是子表单,而是链接这两个表的表单中使用的子表单控件)。
如果 sql server 表中没有时间戳列,则 access 中的子表单是敏感的。如前所述,检查 PK 和 FK 数据类型并确保它们匹配(只需在 ms-access 中以设计模式调出表 - 您会收到一条有关设计模式为只读的错误消息,但只需继续,即可可以检查/查看以确保数据类型匹配)。
所以对于子表,你需要一个PK,一个FK,还需要一个时间戳列(你不必在子表单中显示TS列,但在表中需要它)。
ms-access 中的子表单很敏感,如果您不在 sql 表中包含时间戳列,则通常会失败。 (访问使用这些行版本列来确定数据是否已更改)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)