Dim lastcomp As String
Dim qty As Integer
Dim rs As New ADODB.Recordset
rs.Open "select Prem1Item,Prem1Qty from [TU FAR Before VB] order by Prem1Item", accCon
Do While Not rs.EOF
If Not IsNull(rs(0).Value) Then
If rs(0).Value <> "n/a" Then
If rs(0).Value <> "" Then
premlist.AddItem rs(0).Value & Format(rs(1).Value, "00")
End If
End If
End If
rs.MoveNext
Loop
rs.Close
Dim i As Integer
Dim j As Integer
i = 1
For i = 1 To premlist.ListCount
For j = 1 To finallist.ListCount
**If Not finallist(j) = premlist(i) Or finallist(j) = "" Then**
finallist.AddItem premlist(i)
End If
Next j
Next i
AccessConnection ("Close")
End If
我正在尝试取记录并拉出Prem1Item中的所有项目然后缩小然后不显示重复项,并从Prem1Qty获取金额并显示它找到的每个项目的总数。我试图将它们放在这些列表框中,然后将它们导出到一个包含2列(Premium和Sum)的表中
我收到错误13类型不匹配突出显示我放入Bold的区域(“If Not finalist(j)= premlist(i)或finalist(j)=”“Then Then”)。我的计划是填充该列表,然后填写表格以生成我的报告。
答案 0 :(得分:2)
列表框对象不允许您检索具有索引值的行值,就像您对数组,VBA集合或记录集Fields
集合一样,等等。
可能有更好的方式来表达,但我不知道如何。但是如下所示的尝试会抛出&#34; Type Mismatch&#34; 错误......
Debug.Print Me.finallist(1)
Debug.Print TypeName(Me.finallist(1))
如果要从每个列表框的行中检索绑定列值,请使用ItemData
属性。
Dim i As Long
For i = 0 To (Me.finallist.ListCount - 1)
Debug.Print Me.finallist.ItemData(i)
Next
Debug.Print "done"
答案 1 :(得分:0)
我认为你应该尝试将.value添加到你的比较中,例如
finallist(j).value = premlist(i).value