2014-11-14 87 views
1

所以我有这个简单的代码循环通过附加到表的列表框。它在列表框中找到所选项目并更新我的“操作日志”表中的相应记录集。我的问题是,即使它说lstAllGroups.Column(1, i)是持有正确的价值;它没有更新记录。我已经在调试器中介绍了这一点,它添加了一切,但groupNum。VBA记录不会更新正确的信息

 Dim recPicker As String 
     Dim recAllPicker As String 
     Set db = CurrentDb 
     Set RstRecSet = db.OpenRecordset("tblActionLog", dbOpenDynaset) 
     'Set RstRecSet = db.OpenRecordset("Select * from tblActionLog Where GroupNum = '" & recAllPicker & "';", dbOpenDynaset) 

If chkGrp = True Then 

    allGrps = lstAllGroups.ListCount 
     For i = 0 To allGrps 

      If lstAllGroups.Selected(i) = True Then 
      recAllPicker = lstAllGroups.Column(1, i) 
         RstRecSet.AddNew 

      RstRecSet("GroupNum").Value = lstAllGroups.Column(1, i) 

      RstRecSet("GroupName").Value = lstAllGroups.Column(0, i) 

      RstRecSet("ActionItem").Value = txtActionitm.Value 

      RstRecSet("GroupNum").Value = recPicker 

      RstRecSet("DateClosed").Value = txtDateClosed.Value 

      RstRecSet("DateIdentified").Value = txtDateID.Value 

      RstRecSet("Analyst").Value = txtAnalyst.Value 


      RstRecSet("Comments").Value = txtComments.Value 

      RstRecSet.Update 
      End If 
     Next 
Else 

回答

1

您的代码使用lstAllGroups.ListCount通过索引号访问列表框行。然而,.ListCount从1开始计数,并且列表框行索引值从0开始。这意味着相当于lstAllGroups.Column(1, lstAllGroups.ListCount)引用了列表框中不存在的行。

这里是一个立即窗口的例子,希望澄清的情况。我的列表框包含4行。

? Me.lstUsers.ListCount 
4 
? Me.lstUsers.Column(0, 0) ' <-- first row 
46 
? Me.lstUsers.Column(0, 3) ' <-- last row 
48 
? Me.lstUsers.Column(0, 4) ' <-- row which does not exist 
Null 

通知时,我问从列表框中行已不存在的价值,访问只是让我空毫无怨言---它不抛出一个错误消息。

我认为你的代码受到这个问题的影响。但是,我不确定这是否是唯一的因素。它在我看来像你的代码将添加一行tblActionLogGroupNumGroupName列表框中的每一行的值。然后将最后一行添加到表中(对应于不存在的列表框行),其中GroupNumGroupName

+0

嘿HansUp,对不起,如果我不清楚。除了groupnum之外,GroupName还会添加一个问题。 GroupName是我的列表框中的第一个列,GroupNum是第二个列。 – SaladSnake 2014-11-14 18:23:55

+0

仍然不知道我明白。你是说每一行添加到* tblActionLog *为* GroupNum *为空? – HansUp 2014-11-14 18:27:52

+0

是的,我停止了调试器,它显示lstAllGroups.Column(1,i)保持正确的值,它只是没有插入到具有该值的记录,而是它为空。奇怪的是每隔一个更新都没有问题。 – SaladSnake 2014-11-14 18:31:26