Ответ. 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 |