ListView - этот элемент имитирует рабочую область стола Windows. Таким образом, с помощью него Вы можете создать в форме базы данных область, с иконками которые можно будет передвигать или при двойном нажатии вызывать нужную программу или объект базы данных.
Данный элемент не встроен в Access, поэтому, прежде чем его использовать надо сделать ссылку на библиотеку mscomctl.ocx через редактор VBA. Также с этим объектом используется другой элемент ImageList. Он необходим для сохранения иконок. Настройку и связь этих элементов в форме лучше использовать через конструктор, т.е. дважды нажмите на элемент и перед Вами отобразиться окно с группой вкладок и настройками. Пример использования этих элементов дан ниже.
' la_activex1.mdb (Пример 11) ===========================================
' Данный код необходимо добавить в форму
Public myNewList As MicrosoftList
Private Sub Form_Load()
If myNewList Is Nothing Then
Set myNewList = New MicrosoftList
Set myNewList.Tree = Me.myList.Object
' Загружаем узлы дерева из запроса
myNewList.Load "sqlListView"
End If
End Sub
' MicrosoftList =======================================================
' Объявляем класс ListView из Mscomctl.ocx
Public WithEvents Tree As MSComctlLib.ListView
' События при нажатии на иконку
Private Sub Tree_DblClick()
MsgBox Me.Tree.SelectedItem.Text, vbInformation, "Двойное нажатие"
End Sub
' Загрузка элемента данными из запроса
Public Function Load(strSQL As String) As Boolean
Dim myKey As String, idx As Long
Dim rst As ADODB.Recordset
On Error GoTo 999
' Загрузка дерева
Set rst = New ADODB.Recordset
rst.Open strSQL, Application.CurrentProject.Connection
Me.Tree.ListItems.Clear
idx = 1
Do Until rst.EOF
' Создание узла и его ключей
myKey = "la_" & rst!Тип
Me.Tree.ListItems.Add idx, myKey, Nz(rst!Наименование), "PC", "PC"
rst.MoveNext
idx = idx + 1
Loop
Load = True
998:
rst.Close
Set rst = Nothing
Err.Clear
Exit Function
999:
Load = False
MsgBox Err.Description
On Error Resume Next
Resume 998
End Function
Ссылки по теме