从Access到SQL Server错误的数据类型转换

时间:2015-03-16 23:09:34

标签: sql-server-2008 ms-access sqldatatypes

我有一个SQL Server,它是我的Access中的ODBC,它被用作我的前端。我在SQL中创建了一个带有BIT数据类型的列,并创建了一个带有yes / no数据类型的复选框,该类型使用我的SQL列作为其控制源。当我进入我的表单并尝试更改其中的任何内容并更新我的表格时,我收到了写入错误,并且它不会让我附加我正在尝试制作的更新。只要删除位数据类型和复选框,我就可以再次将信息附加到表单中。有没有人知道一个解决方案或方法我可以利用布尔复选框向我的SQL数据库报告,以便我可以跟踪订单的进度,但仍然能够追加我的记录?此外,如果有人知道为什么会发生这种情况,我会非常感谢我自己的笔记和理解。

此图显示了在SQL Server中创建的列

enter image description here

此图显示了Access

中ODBC表中的外观

enter image description here

此图显示了我选择的控件源,该控件源来自使用表格组合框,文本框和希望复选框的名称的查询

enter image description here

这是图片显示我尝试更新和关闭后发生的事情

enter image description here

由于

3 个答案:

答案 0 :(得分:0)

很长时间没有这样做,但问题可能与存储的数字有关。 access = -1/0中的yes / no,sqlsrvr = 1/0(或类似)。您可以在sqlsrvr中使用INT字段,然后存储任何访问发送(-1或0),或保留BIT但不要在访问中使用是/否 - 创建自定义是/否表,其中yes = 1并且没有= 0(或任何BIT需要)并使用自定义表作为该字段的查找表,当更新时将发送适当的值。希望这些都是相关的,也是有道理的。

答案 1 :(得分:0)

所以我一直在搞乱这个问题,经过SQL,Cabinet Vision(我们的古老访问数据库的绘图软件)和水晶报告之后的其他几个问题,我开始意识到Access不能接受空值。

因此,在我的SQL位数据类型列中,我将默认值设置为0,并且不允许空值。现在它将我的所有复选框记录为true或false。我不再有写冲突。

答案 2 :(得分:0)

最常见的情况是在Access中开发数据库,​​之后某些日期将表通过ODBC导出到SQLServer。可以使用Access“设计”功能区上的“可用字段”按钮将Access表单上的复选框控件放在那里。在使用对元数据等进行T-SQL修改的复杂解决方案之前,请尝试从问题Access窗体中删除复选框控件。插入未绑定的复选框以替换它,然后使用“属性”对话框将相关的SQLServer字段设置为该复选框的控制源。通常有效。