请教Access中VBA的多列列表框(multiple-column Listbox)的赋值问题

来源:百度知道 编辑:UC知道 时间:2024/06/04 04:36:42
请问如何将Access中VBA的多列列表框控件的某一行/列上的元素单独赋值?
比如创建一个9列不定长的列表框My_listbox(Column Count=9),先从一个数据库Table中为整个listbox赋初值:My_listbox.RowSource = "SELECT my_Number, My_name FROM Data_All WHERE my_Number=" & Text1.Value
然后用My_listbox.Column(j,i)得到i行j列上的元素的值,至此一切正常。但是我如何修改这个元素呢?用My_listbox.Column(j,i)会报错Real time error 424: Object required,listbox还有其它的方式赋值吗?

For i = 0 To My_listbox.ListCount - 1 'ok
If My_listbox.Column(8, i) = "-1" Then 'ok, it's -1 when debugging
My_listbox.Column(8, i) = "-3" 'Real time error 424
...
Next i
My_listbox.RowSource = "SELECT my_Number, My_name FROM Data_All WHERE my_Number=" & Text1.Value
语句省略了一些field name,实际是从table里取了9个field填充到listbox的9个column里,有10条record,所以下面的For循环也没问题。
关键是不知道listbox的哪个属性或函数能实现修改i行j列元素。在My_listbox的属性提示框里也没看到能用的,比如AddItem和ListIndex等。

用RemoveItem去掉想修改的行, 再用AddItem添加该行 ,试下行不行
Dim ss(8) '定义个数组把原来的行数据复制到这个数组里
Dim T, T1 as integer
For n = 0 To 8
ss(n) = List14.Column(n, i)
Next n
ss(j) = T1 ‘是想要赋的值
T = ss(0) & "," & ss(1) & "," & ss(2) & "," & ss(3) & "," & ss(4) & "," & ss(5) & "," & ss(6) & "," & ss(7) & "," & ss(8)
List14.RemoveItem (i)
List14.AddItem T, i

这样的问题技术含量太高了,去别的地方想想办法吧

祝你好运