2013-03-25 25 views
0

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

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

回答

1

在我的情况下,答案应该是我应该记住的,但是我的脑海里滑了。希望对未来的其他人有所帮助。

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

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

1

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

+0

感谢您的意见。我只绑定到选项组,而不是复选框,所以我不认为这会有影响,但我会在早上试一试。 – 2013-03-25 20:27:02