绑定复选框与SQL Server链接表中的位列

时间:2012-12-12 14:05:25

标签: sql-server ms-access ms-access-2010

我正在尝试使用SQL Server链接表中的位列绑定一个复选框。

我首先遇到关于类型的错误,然后我进入了我的链接表,并将列的显示控制更改为复选框而不是文本框。

现在我保存记录时出现写冲突错误。

enter image description here

我尝试了在表中添加时间戳的解决方案,但我遇到了同样的问题

没有VBA可以吗?

谢谢

我的保存按钮的代码

Private Sub btnSave_Click()
  On Error GoTo Err_btnSave_Click
      DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
      DoCmd.Close
  Exit_btnSave_Click:
      Exit Sub

  Err_btnSave_Click:
      MsgBox Err.Description
      Resume Exit_btnSave_Click

End Sub

我认为那里没有任何错误。只有当某个复选框绑定到位列

时才会出现错误

我试图将文本框绑定到同一列。默认情况下该值为false,如果我没有更改值,则没有错误。

但是当表单变脏时,即使我更改了另一个控件的值,我也收到了错误。

我不明白。就像Access不知道当一个控件绑定到位列时只有一个用户。

我最后一次遇到这个问题,我放弃了,我改变了一个小型的类型,但我很好奇。有没有办法让它值得一点。我想要的只是一个布尔值。

3 个答案:

答案 0 :(得分:3)

检查SQL Server中的位字段是否可为空。如果是,则将其设置为非null并将SQL Server中的默认值设置为0(false)。这里讨论了可以为空的位字段的问题:Nullable bool fields in MS Access linked tables

答案 1 :(得分:0)

  

我最初有关于该类型的错误...

这是你的第一个线索。回到SQL Server并确保您的位实际上有点。假设您必须更改数据库中的数据类型,您需要重新链接到表或删除表并再次链接。

如果无法更改SQL Server中列的数据类型,则可能需要使用VBA。 MS Access 2010可能有一个向导配置文本数据类型字段的复选框。但是,如果数据库存储的值不是您配置的2(希望不是更多),那么可能会发生坏事。

  

我进入了我的链接表,并将列的显示控制更改为复选框而不是文本框...

这与读/写无关。它只是在使用该列创建表单时确定默认控件。

答案 2 :(得分:0)

链接到Access时的位字段,不能有NULL值。因此我们需要确保位字段的默认值为0或1,因此当新记录添加到表时,它将具有默认值而不是NULL。 这是因为ODBC驱动程序不知道位字段的NULL值。