从 Access 到 SQL 服务器错误的数据类型转换

Data type conversion from Access to SQL Server errors

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

此图像显示在 SQL 服务器

中创建的列

此图显示了它在 Access

中的 ODBC table 中的样子

这张图片显示了我选择的控件源,它来自一个查询,该查询使用表单组合框、文本框和希望的复选框的名称

这张图片显示了我尝试更新和关闭后发生的情况

谢谢

好久没做过了,问题可能出在存储的数字上。 yes/no 在 access = -1/0 中,在 sqlsrvr = 1/0(或类似)中。您可以在 sqlsrvr 中使用一个 INT 字段,该字段然后将存储任何访问发送(-1 或 0),或者保留 BIT 但不要在访问中使用 yes/no - 创建自定义 yes/no table where yes=1 and no=0 (or whatever BIT needs) and use the custom table as a lookup table for that, when updated will send the appropriate value.希望这一切都是相关且有意义的。

所以我一直在解决这个问题,并在 运行 通过 SQL、Cabinet Vision(我们的绘图软件使用古老的 access 数据库)和 crystal 报告等一些其他问题之后我开始意识到 Access 不能接受空值。

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

当在 Access 中开发数据库并且稍后通过 ODBC 将表导出到 SQLServer 时,这种情况最常见。 Access 表单上的复选框控件可能是使用 Access 'Design' 功能区上的 'Available Fields' 按钮放置在那里的。在进入对元数据等进行 T-SQL 修改的复杂解决方案之前,请尝试简单地从问题访问表单中删除复选框控件。插入一个未绑定的复选框来替换它,然后使用“属性”对话框将相关的 SQLServer 字段设置为该复选框的控件源。通常有效。