访问2007列表框记录集未在屏幕上更新列表框更新

时间:2014-11-05 18:21:29

标签: vba listbox automation ms-access-2007 recordset

我正在使用VBA Excel并尝试从Access 2007程序中提取信息。

我可以看到列表框,并且可以在第一次从记录集中提取数据,但后续的拉取只返回与第一次相同的数据,而不是在屏幕上反映新数据。

我必须浏览标签和表单才能做到这一点。

Dim string22 As String
string22 = item7.Name

If string22 = "EventsOne" Then

    Dim alb2 As Access.ListBox
    Set alb2 = Nothing
    Set alb2 = item7

    If alb2.ListCount > 1 Then

        Dim rs1 As Object
        Set rs1 = Nothing
        Set rs1 = alb2.Recordset

        rs1.MoveFirst

        Do Until rs1.EOF = True

            For i = 1 To rs1.fields.Count
                  Debug.Print rs1.fields(i).Value
            Next i

            rs1.MoveNext
        Loop


    End If

那么,我如何获取显示的数据?我需要做什么来刷新列表框对象或记录集对象?对我而言,它似乎应该像屏幕上的那样令人耳目一新。其他地方的文本框值会刷新,表示屏幕上的内容。

alb2.listcount应该大于1,以便填充。

我第一次启动应用时会收到

记录集的示例值

命令19021 截止日期为11/3/14 命令19031 截止日期为11/4/14 订单19045 截止日期为2014年11月19日

然后我转到表单上的下一个条目,并在屏幕上看到列和

订单20101 截止日期为12/11/14 订单20222 截止日期为2014年12月13日

但是,应用程序的第二次运行没有获取记录集的新数据,但alb2.columns具有新数据。记录集尚未移动。它与以下内容完全相同:

命令19021 截止日期为11/3/14 命令19031 截止日期为11/4/14 订单19045 截止日期为2014年11月19日

我不知道rs1的locktype是adLockReadyOnly而且recordcount保持不变。我在监视窗口下看到rs1.fields(1).originalvalue它是“当前Recordset不支持更新。这可能是提供者或所选锁定类型的限制。”此外,rs1.fields(1).Underlyingvalue是“用于更新或刷新的基表信息不足”。所有领域都有这些。它只是让我的外部VBA的新运行它仍然不会拾取记录集的新数据。我想知道使用什么命令,因为alb2.requery和rs1.requery不起作用。

0 个答案:

没有答案