在做数据库程序时,通常会要求用户将数据从一个列表框移动到别一个列表框中。 下面的子程序可以让你轻松实现这一功能。同时还提供参数,指定操作是移动数据 (不保留原数据),还是拷贝数据(保留数据的副本在原列表框或组合框中);并且还 可以选择是全部移动或拷贝数据,还是只移动或拷贝用户选定的部分。
参数 值 说明 FromCtl 源列表框或组合框名 源列表框或组合框 ToCtl 目的列表框或组合框名 目的列表框或组合框 strMode 可选参数,默认情况下只拷贝 选中的项目 - 移动选中的项目 ALL 拷贝所有的项目,不需选中 -ALL 移动所有的项目,不需选中
源程序如下:
Public Sub CopyComboList(FromCtl As Control, ToCtl As Control, Optional strMode As String)
On Error Resume Next
Dim intN As Integer
Screen.MousePointer = vbHourglass
If strMode <> "" Then strMode = UCase(strMode) End If
With FromCtl
If TypeName(FromCtl) = "ListBox" Then For intN = .ListCount - 1 To 0 Step -1 If .Selected(intN) Or InStr(strMode, "ALL") Then ToCtl.AddItem .List(intN) ToCtl.ItemData(ToCtl.NewIndex) = .ItemData(intN) If InStr(strMode, "-") = 1 Then .RemoveItem (intN) End If Next Else For intN = .ListCount - 1 To 0 Step -1 ToCtl.AddItem .List(intN) ToCtl.ItemData(ToCtl.NewIndex) = .ItemData(intN) If InStr(strMode, "-") = 1 Then .RemoveItem (intN) Next End If End With
Screen.MousePointer = vbDefault
End Sub  
|