尝试根据组合框中的选定内容向列表框添加值时出现错误。过滤器(?)我为记录集添加的内容并没有告诉lngRows在应用筛选器之后只使用这些项,而不是表中的所有项,我认为这是我的问题的一部分。它在添加时出错,它将值放入框中,然后由于添加空格而出错。有没有办法解决这个问题?
Private Sub Combo5_AfterUpdate()
Set lb = Me.lbSA.Object
Dim varSelection() As Variant
Dim i As Long
lngRows = CurrentDb.TableDefs("tblSA").RecordCount
varSelection = CurrentDb.OpenRecordset("SELECT PROJ_ID,ShipArea FROM tblSA WHERE PROJ_ID = '" & Me.Combo5.Column(1) & "'").GetRows(lngRows)
For i = 0 To lngRows - 1
Me.lbSA.AddItem (varSelection(0, i)) 'error is here
Me.lbSA.Column(1, i) = varSelection(1, i)
Next
End Sub
发布于 2018-10-17 03:41:27
不需要数组或列表框对象:
Private Sub Combo5_AfterUpdate()
Dim varSelection As Recordset
Set varSelection = CurrentDb.OpenRecordset("SELECT PROJ_ID, ShipArea FROM tblSA WHERE PROJ_ID = '" & Me.Combo5.Column(1) & "'")
While Not varSelection.EOF
Me.lbSA.AddItem varSelection(0), 0
varSelection.MoveNext
Wend
End Sub
或者只是设置RowSource属性。确保RowSourceType属性设置为表/查询。
Private Sub Combo5_AfterUpdate()
Me.lbSA.RowSource = "SELECT PROJ_ID, ShipArea FROM tblSA WHERE PROJ_ID = '" & Me.Combo5.Column(1) & "'")
End Sub
https://stackoverflow.com/questions/52837104
复制相似问题