【发布时间】:2016-09-28 22:27:16
【问题描述】:
好吧,经过几周的努力解决这个问题,并且(我认为)已经完成了 99% 的工作,我不得不承认失败,加入 Stack Overflow,然后发布我的问题。如果我的提问礼仪不够好,我深表歉意,但这里是;
正如标题所暗示的,我正在尝试为 Access 2010 表单中的组合框创建一个全选复选框。此组合框绑定到作为 SharePoint 列表一部分的多值字段(我们数据库中的所有表都存储为 SharePoint 列表并链接到 Access 文件。Access 文件实际上是一个前端)。
我已经设法让它在未链接到 SharePoint 的测试数据库中工作,但我似乎无法让它在我们实际链接的数据库中工作。这是单击复选框时运行的测试数据库中的代码。请注意,[Test] 是我在此示例中定义的多值字段的名称。它是一个查找字段,可以从数据库中的另一个简单表中获取其可能的值。
Private Sub testcheck_Click()
Dim counter As Integer
Dim rst As DAO.Recordset
Set rst = Me.Recordset
If testcheck.Value = True Then
With rst
.MoveFirst
.Edit
For counter = 0 To Me.testcombo.ListCount - 1
With !Test.Value
.AddNew
.Value = Val(Me.testcombo.Column(1, counter))
.Update
End With
Next counter
.Update
End With
ElseIf testcheck.Value = False Then
Me.testcombo.Value = Array()
End If
End Sub
当我尝试在我的实际数据库中运行上述代码时,它会在到达 .MoveFirst 命令时引发错误。错误是运行时错误 3426:“此操作已被关联对象取消”。我很有信心它认为我正在尝试移动到另一条记录,同时仍在编辑当前记录(即使只有一个记录)。从这里,我发现,在测试数据库中运行代码时,表单左上角的那个小铅笔图标(我假设您正在编辑记录)被一个黑色三角形替换进入 .MoveFirst 命令。这在我的实际数据库中不会发生。我不知道为什么会出现这种差异,我也不完全理解它的含义。如果有人知道如何解决此问题,我将非常感谢您的意见。
我应该注意,我的代码只有在表单已经创建了要编辑的记录时才有效。我有一个解决方法,但是这个切线超出了这个问题的范围。
【问题讨论】:
标签: ms-access sharepoint combobox vba