ODBC链接表将Tinyint字段转换为是/否

时间:2013-03-25 18:30:26

标签: ms-access odbc ms-access-2007

我正在将Access .ADP项目转换为带有链接表的.ACCDB。我知道使用SQL Server后端时的一个大问题是使用可空bit字段,因为Access的Yes/No数据类型不允许空值。所以我将所有可空的bit字段转换为tinyint。但是,Access仍将这些字段映射为Yes/No,并将所有空值转换为零。

有没有人对如何阻止它有任何建议?我已经仔细检查了有问题的字段是否设置为tinyint,并且在SSMS中查询我发现绝大多数记录都是空的。但我能想到的只是刷新或删除并重新创建链接表,而这并不能解决问题。

2 个答案:

答案 0 :(得分:1)

我使用nullable int字段存储-1(对于Yes),0(对于No)和null(不知道/未定义)有更多的运气。访问表单完全理解这些值,并且当绑定到复选框并用于过滤等时它们会正确响应。如果将Required属性设置为No,则可以使用本机Access表btw执行此操作时绑定到复选框时将显示为灰色。

答案 1 :(得分:1)

在我的案例中,答案是我应该记住的,但却让我感到不安。希望将来对其他人有所帮助。

我的链接表实际上链接到后端的视图(我在问题中肯定应该提到的)。基础表更改时视图is not automatically refreshed上的元数据。我已将基础表中的所有可空bit字段更改为tinyint,但就视图而言,它们仍为bit

昨晚,我删除并重新创建了所有视图,然后刷新了Access中的链接表。问题解决了!