我正在尝试使用SQL Server链接表中的位列绑定一个复选框。
我首先遇到关于类型的错误,然后我进入了我的链接表,并将列的显示控制更改为复选框而不是文本框。
现在我保存记录时出现写冲突错误。
我尝试了在表中添加时间戳的解决方案,但我遇到了同样的问题
没有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不知道当一个控件绑定到位列时只有一个用户。
我最后一次遇到这个问题,我放弃了,我改变了一个小型的类型,但我很好奇。有没有办法让它值得一点。我想要的只是一个布尔值。
答案 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值。