我有两个列表框,名为listbox1和listbox2 .
Listbox1使用SQL查询填充,并包含两列 . 它的第一列包含逗号的值 .
Listbox2在Access属性表的“行源类型”属性中设置为值列表 .
我的目标是使用控制按钮将所选项目从listbox1复制到listbox2 .
我还需要知道listbox1记录包含逗号,它们在复制期间充当分隔符 . 不过,这个问题已经解决了 .
我创建了两个模块来完成从一个列表框到另一个列表框的所选记录的复制:
Public Sub CopySelected(ByRef frm As Form)
Dim ctlSource As Control
Dim ctlDest As Control
Dim strItems As String
Dim intCurrentRow As Integer
Set ctlSource = Me!listbox1
Set ctlDest = Me!listbox2
For intCurrentRow = 0 To ctlSource.ListCount - 1
If ctlSource.Selected(intCurrentRow) = True Then
'must insert double quote around single quote to escape commas
strItems = strItems & "'" & ctlSource.Column(0, intCurrentRow) & "'" & ";"
Me!listbox2.AddItem (strItems)
End If
Next intCurrentRow
End Sub
和
Private Sub cmdAddSelected_Click()
CopySelected Me
End Sub
我确实将listbox1上的多选选项设置为“extended” .
current problem 是当我单击我的控制按钮时,只复制listbox1中的第一个选项,并且需要多次复制它(复制与所选记录相同的数字) .
显然,我的For循环存在问题 .
R是我的主要语言,我只是学习VBA .
1 回答
在程序中,您将所有选定值与分隔符连接,并将较长和较长的字符串添加到Listbox2 .
;
充当多列列表框的列分隔符,即,从Listbox1到Listbox2中选择的值是"transposing",而多余项(在Listbox2的列数上方)只是被忽略 . 如果要将单个值复制到单列Listbox2中,请执行以下操作: