4

我正在尝试将复选框与 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 不理解只有一个用户。

上次我遇到这个问题时,我放弃了,我将类型更改为一个小的 int 但我很好奇。有没有办法让它变得有价值。我想要的只是一个布尔值。

4

3 回答 3

4

检查 SQL server 中的位域是否可以为空。如果是,则将其设为非 null 并将 SQL Server 中的默认值设置为 0 (false)。这里有一个关于可为空位字段的问题的讨论:MS Access 链接表中的 Nullable bool fields

于 2013-01-24T12:34:12.350 回答
1

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

于 2017-02-23T07:49:32.833 回答
0

一开始我有一个关于类型的错误......

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

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

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

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

于 2012-12-12T15:36:28.630 回答