在 ODBC 链接的访问表中,什么决定了字段大小,以及如何更改它?



我有一个通过ODBC连接链接到MS SQL Server的表。据我所知,Access 以某种方式决定了字段大小和数据类型。在我的一个字段中,Access 决定将字段大小设置为 7,而它应该是 8。对于许多记录,最后一个数字将被截断!Access 还将"数据类型"设置为"短文本"。当我尝试更改这些字段中的任何一个时,都会收到错误"此类型不支持操作"。有谁知道访问如何确定字段大小/数据类型,以及如何为 ODBC 链接表更改它?

编辑:在我的SQL表中,数据显示正确。截断仅在 Access 中的 ODBC 链接之后发生。数据类型为 nvarchar(50(

有问题的字段是 datetime2 吗? 默认情况下安装在Windows上的标准"遗留"驱动程序(我认为是从xp时代开始(看不到SQL服务器中使用的更高"较新"类型的列。

因此,如果使用 SQL Server 驱动程序,则 Access 实际上会将该列视为字符串(文本(而不是日期时间列。 修复是: 使用本机 11 或更高版本的 sql ODBC 驱动程序。这有效,但您必须确保在每个工作站上安装本机 11(或更高版本(驱动程序。

另一种可能性是将 datetime2 更改为 datetime 列服务器端,并使用长时间(及较旧(的旧版 SQL 服务器驱动程序重新链接。

但是,即使在最新版本的Windows上默认安装了标准SQL驱动程序,我也没有看到您描述的截断。我建议您尝试使用较新的本机 11(或 13 甚至更高版本(。这可能会很好地解决您的问题,但是您必须确保在每个工作站上安装此相同版本的较新驱动程序。

我仍然使用旧的 SQL 服务器驱动程序,因此这避免了我必须在每个工作站上安装较新的 ODBC 驱动程序,但反过来,为了获得这种好处,我必须避免使用较新的可用 SQL Server 数据列类型,例如 datetime2 列。

我会尝试与较新的本机 11 或更高版本驱动程序重新链接 - 看看是否可以解决此问题。

最新更新