Access
 sql >> база данни >  >> RDS >> Access

ListView Control с Ms-Access TreeView

Въведение.

Проектът за контрол на Microsoft Access ListView е проектиран и демонстриран тук, в този епизод на урока за TreeView Control. Основната задача е първо да попълните TreeView Control с елементи от категорията на продукта. След това при избора на елемент от категория в контролата TreeView, свързаните записи на продукти са филтрирани от таблицата с продукти и са изброени в контролата ListView. Стойностите на полето на всеки запис се показват в различни колони.

Ние сме запознати с TreeView, ImageList и ImageCombo Controls и работихме с тях в по-ранни епизоди.

Контролата ListView ще покаже данните от три различни полета в три различни колони. Колоните ще имат заглавки на колони и други свойства на колони, като ReportIcons, Tooltip Text .

Записът на продукта има няколко полета и всички те не могат да бъдат показани в контролата ListView, с няколко колони в малка област. Вместо това, когато даден артикул е избран в ListView Control, друг формуляр ще се отвори с пълни подробности за избрания запис на продукта. Накратко, това е, което планираме да направим тук, като използваме контролите TreeView, ListView и ImageList.

Свойствата на ListView Control имат подобни характеристики като на Microsoft Access ListBox Control. Той има колони за показване на свързани стойности една до друга, под заглавката на всяка колона. Ширина на колоната стойността на свойството за всяка колона гарантира, че стойността на полето има достатъчно място за правилното показване на съдържанието. Елементът ListView реагира на щраквания, за да можем да извършим други действия, като отваряне на формуляр, отчет, макрос или извикване на други функции, ако е необходимо.

Връзки към по-ранните учебни сесии.

  1. Урок за управление на Microsoft TreeView.
  2. Създаване на меню за достъп с TreeView Control.
  3. Присвояване на изображения към TreeView Control.
  4. Присвояване на изображения към TreeView Control-2, създаване на ImageList Control за споделяне с други проекти.
  5. TreeView Control Поставете отметка за добавяне, изтриване на възли.
  6. DreeView ImageCombo падащо меню за достъп.
  7. Пренаредете възлите на TreeView чрез плъзгане и пускане.

Статии в Access ListBox Control.

В Microsoft Access бихме могли да използваме контролата ListBox за показване на информация и да ги използваме по различни начини. За изграждане на персонализиран съветник за формуляри и съветник за отчети по поръчка. За създаване на хипервръзки в ListBox, създаване на списъчни елементи от изходни данни на друг Listbox, внасяне на списък с външни файлове в ListBox или присвояване на изход на функция Filter() в ListBox. Това бяха някои от методите, които изпробвахме по-рано с Access ListBox. Връзките са дадени по-долу за справка.

  1. Изработен по поръчка съветник за формуляри.

  2. Персонализиран отчет - съветник.

  3. Отворете формуляри с хипервръзки в Listbox.

  4. Създайте списък от друг ListBox.

  5. Съдържание на динамичен ListBox ComboBox.

  6. Извеждане на функция за филтриране в ListBox.

  7. Изход на филтърна функция в ListBox-2

  8. Списъчно поле и дата, първа част.

  9. Списъчно поле и дата, част втора.

Демонстрационното изображение ListView с TreeView Control.

Изгледът на демонстрационно изображение на формуляра, с контроли TreeView и ListView:

Демонстрационният формуляр ListView в Design View.

Проектиране на формуляра frmListView.

  1. Създайте нов формуляр с името frmListView и вмъкнете следните три контроли в секцията с подробности на формуляра с имената, посочени за всяка контрола, както е дадено по-долу.

  2. Вмъкнете контрола TreeView във формуляра, от списъка с ActiveX контроли, от лявата страна, променете името на TreeView0 . Покажете неговия нормален лист със свойства за достъп и променете Ширина Стойност на имота до6,614 см иВисочина до9,709 сми .

  3. Вмъкнете контрола ListView от ActiveX контролите, от дясната страна на контролата TreeView и променете името й на ListView0 . Контролата ListView е около 12,462 см широко и9,709 см в Височина , достатъчно място за показване на три колони с данни от таблицата с продукти. Поставете двата контрола близо един до друг и горните ръбове са подравнени.

  4. Вмъкнете контрола ImageList от списъка с ActiveX контроли, поставете я някъде от дясната страна на контролата ListView и променете нейната стойност на свойството Name на ImageList3 .

    Забележка : Ако сте нов в тази тема и не можете да намерите горните контроли сред Контролите на ActiveX списък, след което трябва да прикачите MSCOMLIB.OCX ( Общи контроли на Microsoft Windows) в прозореца за редактиране на VBA Инструменти - -> Препратки Списък с файлове.

    Предлагам да преминете през първата връзка, дадена в горната част на тази страница, Урок за управление на Microsoft TreeView Страница за насоки, къде да търсите свързаните файлове и как да добавите Microsoft Windows MSCOMLIB.OCX файл в референтната библиотека на Access. След това ще можете да намерите тези файлове на ActiveX Controls Списък.

Ако сте преминали през по-ранните учебни сесии и сте изтеглили демо базата данни от 4-та връзка, дадена в горната част, тогава отворете тази база данни.

Отворете формуляра с контролата ImageList в Design View. Направете копие на ImageList Control от формуляра и го поставете в клипборда. Затворете тази база данни, отворете текущата база данни на проекта и отворете Form frmListView в Design View. Поставете контролата ImageList от клипборда във формуляра frmListView. Променете името на контролата ImageList на ImageList3 . Тези, които имат ImageList Control с предварително заредени изображения, пропускат следните шест стъпки и продължават от Стъпка-7.

Качване на изображения в контрола ImageList.

Като алтернатива, ако сте вмъкнали контролата ImageList от ActiveX контролите, можете да качите няколко изображения (4 или 5) от самия компютър. Направете следното:

  1. Щракнете с десния бутон върху контролата ImageList, маркирайте ImageListCtrl_Object и изберете Свойства .

  2. Изберете опцията 16 x 16 опция за размер на изображението в Общи Раздел.

    Внимание: След качване на изображения не можете да промените стойността на размера на изображението. Ако смятате, че имате нужда от изображения с различен размер, когато се показват, тогава трябва да премахнете всички съществуващи изображения и след това да изберете желания размер на изображението в раздела Общи и след това да качите всички изображения отново.,

  3. След това изберете Изображения Раздел.

  4. Кликнете върху Вмъкване на картина Команден бутон и изберете изображението от вашия диск (повечето типове изображения:bmp, png, JPG, JPEG и tiff са валидни). Избраното изображение ще се появи в Изображения контрол. Избраният размер на изображението ще бъде намален до 16 x 16 пиксела и може да повлияе на качеството на изображението, ако сте избрали голямо изображение.

  5. Индексната стойност на изображението се въвежда от системата. Въведете подходящо уникално име в Ключ контрол. Името е чувствително, ако планирате да използвате Key-Name на параметъра на изображението на TreeView Node или на ListView Item, вместо индексния номер на изображението.

  6. Можете да качите необходимия брой изображения по този начин. Можете да копирате и поставите този ImageList Control за другите си проекти.

  7. Когато приключите с качването на необходимите изображения, затворете диалоговия прозорец.

  8. Поставете команден бутон в долната част на контролите на формуляра със стойността на свойството Name:cmdExit и с надпис Изход .

  9. Можете да запазите формуляра frmListView сега с промените.

Нуждаем се от две таблици за демонстрационни цели, за да изпробваме контролата ListView с TreeView. Създадох две таблици от таблицата с продуктите, взети от примерната база данни Northwind.accdb . Поле с числов тип BelongsTo се добавя към таблицата lvCategory.

Добавени четири нови записа в таблицата. Първите два нови записа имат своя BelongsTo поле със стойност 4, което показва, че тези записи са дъщерните възли на запис ID номер 4. По същия начин последните два записа имат стойност 10 в BelongsTo поле.

Записите с идентификационни номера 4 и 10, полето Име на продукта Описание показва, че имат множество групи артикули. Имената на групите по категории се разделят на две различни категории, за да се поставят като записи на дъщерни възли под основната група Елемент. Стойностите на идентификатора на новия групов запис за категория са актуализирани в полето ParentID на артикулите на продукта в таблицата lvProducts, която принадлежи към новата категория. Първият запис с две различни категории елементи е оставен недокоснат поради някои други съображения за предпочитания.

lvCategory Изображението на таблицата е дадено по-долу. Това ще се използва и за TreeView възли, като родителски възли към контролните елементи на ListView.

lvПродукти Таблицата има около 45 записа. Изображението на таблицата с няколко примерни записа е дадено по-долу за справка:

Работа с две таблици.

Преди да продължим по-нататък, трябва да разгледаме по-отблизо двете таблици и да видим как и двете са свързани помежду си в TreeView и ListView Controls. Досега сме работили само с една таблица, с полета с ключ на възел, описание и родителски идентификатор в същата таблица.

Надявам се тези от вас, които са следвали досегашните епизоди на урока, да имат ясно разбиране за връзката между едни и същи стойности на полета в същата таблица. Сега ще видим как и двете таблици (lvCategory и lvProducts) са свързани една с друга за две различни контроли.

Първо проверете lvCategory Таблица. Има BelongsTo поле със стойности в последните четири записа. Тези четири записа са дъщерните възли на запис ID 4 и 10 на възлите от lvCategory. Тези четири възли влизат в TreeView Control като дъщерни възли, в родителските възли:Консервирани плодове и зеленчуци и Сушени плодове и ядки в самия TreeView Control.

Сега вземете lvProducts Таблица и има ParentID Стойности на полето. За всяка категория артикул в lvCategory Таблица, има един или повече свързани продуктови артикули в lvProducts Таблица. Номерът в ParentID поле на lvProducts Таблицата принадлежи към родителския запис в lvCategory Таблица. Казано по друг начин, всички продукти на продуктите, изброени в контролата ListView, със същия ParentID стойност, принадлежат на конкретен запис в таблицата lvCategory със същия CID Стойност.

Забележка: Създаването на двете таблици от таблицата с продукти може да отнеме доста време. Ако сте следвали този урок досега, тогава можете да изтеглите Демо базата данни от връзката за изтегляне, дадена в края на тази страница. ИмпортlvCategory и lvПродукти Таблици от базата данни във вашата текуща база данни с този проект. Когато завършите този проект с текущата база данни, ако срещнете проблеми с нея, можете да използвате демонстрационната база данни като отправна точка, за да коригирате работата си.

Кодът VBA на модула на формуляра.

  1. Отворете frmListView формуляр в Design View.

  2. Покажете модула на класа на формуляра.

  3. Копирайте и поставете следния пълен VBA код в модула и натиснете Ctrl+S за да запазите кода.

Опция Compare DatabaseOption ExplicitDim tv As MSComctlLib.TreeViewDim lvList Като MSComctlLib.ListViewDim imgList Като MSComctlLib.ImageListConst Prfx As String ="X" Private Sub Form_Load()DafView As.Debast As.Debast As. Object tv.Nodes.Clear Set imgList =Me.ImageList3.Object With tv .Font.Size =9 .Font.Name ="Verdana" .ImageList =imgList 'задаване на предварително зареден контролен списък с изображения Край с Set db =CurrentDb Set tbldef =db. TableDefs("lvProducts") Задайте lvList =Me.ListView0.Object lvList.ColumnHeaders.Clear lvList.ListItems.Clear lvList.Icons =imgList 'Инициализиране на ListView и заглавки на колони Стойности на свойствата с lvList. Font.Name ="Verdana" .Font.Bold =False .View =lvwReport .GridLines =True 'ColumnHeaders.Add() Синтаксис:'lvList.ColumnHeaders.Добавяне на индекс, ключ, текст, ширина, подравняване, икона 'Подравняване:0 - ляво, 1 - дясно, 2 - център .ColumnHeaders.Add 1, , tbldef.Fields(1).Name, 2600, 0, 5 .ColumnHeaders.Add 2, , tbldef.Fields(3). , 2600, 0, 5 .ColumnHeaders.Add 3, , tbldef.Fields(4).Name, 1440, 1, 5 End With Set db =Nothing Set tbldef =Нищо LoadTreeView 'Създаване на TreeView NodesEnd Node SubPrivate като Lo MSComctlLib.Node Dim firstCatID As Long Dim strCategory As String Dim strCatKey As String Dim strProduct Като String Dim strPKey Като String Dim strPKey As String Dim strBelongsTo As String Dim strSQL As String Dim db As DAO.Database Dim rst As DAO.Review tree. .Clear 'Initialize Listview възли Докато lvList.ListItems.Count> 0 lvList.ListItems.Remove (1) Wend strSQL ="SELECT lvCategory.CID, lvCategory.Category, " strSQL =strSQL &"lvcategory.Category lvCate lvcategory.lv. CID;" Задайте db =CurrentDb Задайте rst =db.OpenRecordset(strSQL, dbOpenSnapshot) Ако не rst.BOF и не rst.EOF Тогава rst.MoveFirst firstCatID =rst!CID Else Exit Sub End If ' Попълнете всички записи, както Rootlevel възлите правят, докато не го правят .BOF И не rst.EOF strCatKey =Prfx &CStr(rst!CID) strCategory =rst!Category Set Nod =tv.Nodes.Add(, , strCatKey, strCategory, 1, 2) Nod.Tag =rst!CID rst. MoveNext Loop 'При втория проход на същия набор от записи 'Преместете дъщерните възли под техните родителски възли rst.MoveFirst Направете, докато не rst.BOF И не rst.EOF strBelongsTo =Nz(rst!BelongsTo, "") Ако Len( strBelongsTo)> 0 Тогава strCatKey =Prfx &CStr(rst!CID) strBelongsTo =Prfx &strBelongsTo strCategory =rst!Category Set tv.Nodes.Item(strCatKey).Parent =tv.Nodes.Item(strNelongrst.)M End If BelongrstTo)M ло op rst.Затворете „Попълване на контрола ListView с подробности за продукта“ на първия елемент от категорията LoadListView firstCatID Край SubPrivate Sub LoadListView(ByVal CatID) Dim strProduct като низ Dim strPKey като низ Dim intCount като цяло число Dim tmpLItem като DSLmctl като DSLmctl Dim. База данни Dim rst As DAO.Recordset Dim strSQL As String ' Инициализирайте ListView Control Докато lvList.ListItems.Count> 0 lvList.ListItems.Remove (1) Wend strSQL ="SELECT lvProducts.* FROM lvProducts " strSQL "strSQL "strSQLProducts =strSQL .ParentID =" &CatID &") " strSQL =strSQL &"ПОРЪЧАЙ ПО lvProducts.[Име на продукта];" „Отворете филтриран списък с продукти за избраната категория Задайте db =CurrentDb Задайте rst =db.OpenRecordset(strSQL, dbOpenSnapshot) Правете, докато не rst.BOF И не rst.EOF intCount =intCount + 1 strProduct =rst![Име на продукта] strPKey =Prfx &CStr(rst!PID) 'Добавяне на елемент от списъка() Синтаксис:'lvList.ListItems.Add Index,Key,Text,Icon,SmallIcon Set tmpLItem =lvList.ListItems.Add(, strPKey, strProduct, , 3) ​​'fir lvList.ForeColor =vbBlue 'Списък на поделемент от втора колона Синтаксис:'tmpLItem.ListSubItems.Добавяне на колона - индекс, ключ, текст, икона на отчет, ToolTipText tmpLItem.ListSubItems.Add 1, str(strPKey) &Cz. Количество на единица], ""), 6 'Поделемент от трета колона на списък tmpLItem.ListSubItems.Add 2, strPKey &CStr(intCount + 1), Format(rst![list Price], "0.00"), 6, " В местна валута." rst.MoveNext Loop Set db =Nothing Set rst =Nothing Ако intCount> 0 Тогава lvList.ListItems(1).Selected =True End SubPrivate Sub TreeView0_NodeClick(ByVal Node като обект)Dim Cat_ID като StringCat_ID =StringCat_ID =SubView Cat_IDL SubPrivate_TagLo. )Dim lvKey като низ, lvLong като LongDim Критерий като StringlvKey =lvList.SelectedItem.KeylvLong =Val(Mid(lvKey, 2))DoCmd.OpenForm "Подробности за продукта", , , , , , lvteLongEnd cmd. 

Нека прегледаме Кодекса и се опитаме да разберем какво правят.

В областта на глобалната декларация обектът TreeView (tv ), ListView (lvList ) и Списък на изображения (imgList ) Обектните променливи са декларирани. Постоянният Prfx променливата е декларирана със стойността „X ” и се използва като стойност на префикса на възел.

Когато frmListView е отворен, Form_Load() Процедурата за събитие се изпълнява. Обектът на базата данни db и обектна променлива TableDef tbldef са декларирани.

TreeView0 Управлението във формуляра се присвоява на обекта Променлива tv. Изявление tv.Nodes.Clear инициализира екземпляра на TreeView Control Object в паметта.

След това imgList обектната променлива е инициализирана с ImageList3 Контрол върху формуляра.

Свойства на шрифта и списъка с изображения за контрол на TreeView.

Следните изрази задават името на шрифта, размера на шрифта на TreeView Control и неговия ImageList Собствеността е заредена с imgList обект, за да можем да използваме имената на ключовете на изображенията или индексните номера на изображенията за изображения на възел на TreeView.

С tv .Font.Size =9 .Font.Name ="Verdana" .ImageList =imgList 'задаване на контрола за предварително зареден списък с изображения Край с

Настройки на свойството ListView Control и заглавки на колони.

След това, следният сегмент от кода инициализира контролата ListView и присвоява нейните стойности на свойства.

 Задайте db =CurrentDb Задайте tbldef =db.TableDefs("lvProducts") Задайте lvList =Me.ListView0.Object lvList.ColumnHeaders.Clear lvList.ListItems.Clear lvList.Icons =imgList View 'Initialize Head lvList .ColumnHeaderIcons =imgList .Font.Size =9 .Font.Name ="Verdana" .Font.Bold =False .View =lvwReport .GridLines =True 'ColumnHeaders.Add() Синтаксис:Colu 'm.x InLde , Текст, Ширина, Подравняване, Икона 'Подравняване:0 - ляво, 1 - дясно, 2 - Център .ColumnHeaders.Add , , tbldef.Fields(1).Name, 2600, 0, 5 .ColumnHeaders.Add , , tblde Полета(3).Име, 2600, 0, 5 .ColumnHeaders.Add , , tbldef.Fields(4).Name, 1440, 1, 5 Край с Set db =Нищо Задаване tbldef =Нищо

Обектът на базата данни tbldef променлива се присвоява с lvProducts Определение на таблицата. Имаме нужда от имена на полета с данни, които да използваме като Заглавки на колони на ListView , за съответните им стойности на данни, в горната част. Стойността на параметъра Header Text може да бъде взета от името на полето в таблицата.

Изображение също може да бъде показано в заглавката на колоната. Затова сме присвоили imgList Обект на lvList.ColumnHeaderIcons Имот.

След това необходимите стойности на шрифта, размера на шрифта и стила са присвоени на съответните им свойства на контролата ListView, ако стойностите по подразбиране не се намират за подходящи.

ListView може да се разглежда по различен начин, като промените View Стойност на имота. Избрахме lvwReport (стойност 3 с максимални характеристики). Можете да променяте и експериментирате с други стойности 0,1 или 2. Стойността на свойството View 3 (lvwReport ) показва стойности в колони със заглавки на колони, Икони на изображения и решетъчни линии.

Взехме три полета с данни (Име на продукта , Количество на единица, и Списъчна цена) от таблицата lvProducts за показване в три различни колони в контролата ListView.

Стойността на колоната Ширина е в пиксели. Диапазоните на стойностите на свойството за подравняване са от 0 до 2 и значението на всяка стойност е както е дадено по-долу:

0 – Подравняване вляво

1 – Подравняване вдясно

2 – Подравняване в центъра.

За да създадете информация за заглавката на колоната lvList .ColumnHeaders.Add() методът е извикан с параметри.

Add() метод Синтаксис:

Обект .ColumnHeaders.Добавяне на индекс, ключ, текст, ширина на колоната, подравняване, икона

С горните три изявления в сегмента на кода сме добавили и трите заглавки на колони с имената на полета:Име на продукта , Количество на единица, и Списъчна цена Колони.

Ние предприехме тази стъпка, преди да добавим който и да е елемент към контролата ListView, а също и в процедурата за събитие Form_Load(), а не по време на попълване на елементи на ListView.

След това извиква LoadTreeView() Подпрограма за създаване на контролните възли на TreeView. Както обсъдихме в по-ранни епизоди, разделихме тази задача на процес от две стъпки.

След декларациите на променливи контролите TreeView и ListView са инициализирани.

Веднага след отваряне на lvCategory запис набор, стойността на ключовото поле на първия запис (идентификатор на категория:CID) е запазена в firstCatID Променлива за по-късна употреба.

След това всички записи от таблицата lvCategory първоначално се добавят към TreeView Control като възли на коренно ниво.

При второто преминаване на същия набор от записи той проверява BelongsTo стойността на полето, ако е празна, тогава тези възли се запазват като възел на коренно ниво, в противен случай стойността на полето ParentID е идентификаторът на възел на коренно ниво. Използвайки стойността на ParentID, текущият възел е преместен под родителския възел, като негов дъщерен възел.

Обясних този аспект на процедурата в две стъпки за попълване на възли в TreeView Control в по-ранен епизод и доказах подробно чрез експерименти в последната сесия на урока.

След затваряне на обекта recordset LoadListView(ByVal CatID) Подпрограмата е извикана. Стойността на полето CID на първия запис на категория, запазена в firstcatID променливата е предадена като параметър на функцията.

Стойността на полето за уникален идентификационен номер на категорията се предава в променлива firstCatID като параметър е използван като критерии в strSQL низа за филтриране на свързаните продуктови записи.

Взехме само четири данни за полета от филтрираните записи за показване в контролата ListView. Ключово поле:PID , Име на продукта , Количество на единица, и каталожна цена . Стойността на полето PID е използвана като ключ и няма да се появи на дисплея.

The ColumnHeaders.Add() методът е извикан три пъти, за да добави всичките три заглавки на колони.

Забележка: Проверете изявлението, че не сме предоставили стойност на ключов параметър, но стойността на индекса ще бъде вмъкната от системата. Не сме планирали да работим със заглавките на колони, след като бъдат заредени. Дори и да го направим, можем да адресираме колоната със стойността на индекса. Но трябва да заредим стойностите на полето за запис на продукта в същия ред като последователността на заглавките на колони.

Попълване на контрола ListView със стойности на продукти в колони.

За да покажем списъка с данни в контролата ListView, имаме нужда от два набора от методи Add() с три различни стойности на ключ, за да добавим и трите колони стойности към контролата ListView.

Стойността на първата колона ще бъде добавена с lvList .ListItems Добавяне() метод. Всички други стойности на колони могат да се добавят с lvList .ListSubItems Добавяне() метод.

Създадохме една променлива за брояч:intCount, и увеличава стойността си при всяко Do While . . . Цикълът на цикъла и неговата текуща стойност ще бъдат добавени към стойността на ключа (PID), за да направят ключ-стойност уникален в lvList. ListSubItems.Add() метод.

ListItems.Add() на първата колона Метод Синтаксисът е както е даден по-долу:

 

„lvList.ListItems .Добавяне Индекс, Ключ, Текст, Икона, Малка Икона

Задайте tmpLItem =lvList.ListItems.Add(, strPKey, strProduct, , 3) ​​

Горното твърдение е подобно на метода Add на TreeView Node. tmpLItem е деклариран като ListItem Object и съдържа препратка към добавения ListItem, така че да може да се използва за добавяне на неговите ListSubItem.

lvList.ListSubItems.Add() МетодСинтаксисът е малко по-различен както е дадено по-долу. Показаният синтаксис е за втория метод .ListSubItems.Add() със стойността на втория параметър strPKey &Cstr(intCount + 1) . Първият метод ListSubItems.Add() ще има ключовата стойност като strPKey &Cstr(intCount) .

 

„tmpLItem.ListSubItems .Добавяне Индекс, Ключ, Текст, Икона на отчет, ToolTipText

tmpLItem.ListSubItems.Add 2, strPKey &CStr(intCount + 1) , Формат(rst![Списъчна цена], "0,00"), 6, "В местна валута."

Методът Add на ListSubItem има ReportIcon и TooltipText като последните два параметъра. Използвахме стойността на параметъра Tooltip-Text само за последната колона.

Забележка: Стойностите, заредени в колони и всички други настройки, свързани с това, ще работят само когато изберете опцията за преглед – 3 (lvwReport) с изключение на първата колона. В противен случай всички те се игнорират.

Текстът на подсказката се показва, когато показалецът на мишката се задържи над последната колона.

Във всичките три колони (ListItems &ListSubItems) методът Add() използва един и същ запис PID Стойност като ключ. Тъй като различните колони на един и същи запис изискват уникална стойност на идентификатора като ключ, стойността на променливата intCount е увеличена с единица за ListSubItems и е преобразувана в низ, след което се добавя със стойността на полето PID.

По този начин избраните продуктови записи, свързани с артикули от категория, са изброени в контролата ListView.

Отделен формуляр за показване на пълните подробности за записа на продукта.

Тъй като вlvProducts Таблицата има повече полета и стойности от това, което бихме могли да покажем в контролата ListView, елементът ListView Click Event ще отвори отделен формуляр ProductDetails и показва пълните подробности за записа.

Изображението на формуляра с всички подробности за записа на избрания продукт е дадено по-долу:

Процедурата за събитие ListView0_Click().

Private Sub ListView0_Click()Dim lvKey като низ, lvLong като LongDim критерий като StringlvKey =lvList.SelectedItem.KeylvLong =Val(Mid(lvKey, 2))DoCmd.OpenForm "ProductDetails, lv, lv 

Събитието ListView0_Click() извлича Ключ- на продукта Стойност и я предава на формуляра като отворен аргумент (OpenArgs).

Формулярът с подробности за продукта.

В процедурата за събитие Form_Open() OpenArgs стойността е използвана за създаване на критерии за филтриране за филтриране на изходните записи и показването им във формуляра.

Списък с кода на модула за формуляр ProductDetails:

Опция Compare DatabaseOption ExplicitPrivate Sub cmdClose_Click()DoCmd.CloseEnd SubPrivate Sub Form_Open(Cancel As Integer)Dim lngID As LonglngID =Nz(Me.OpenArgs, 0)If lngID> &ter =0 "MengID. Me.FilterOn =TrueEnd IfEnd SubPrivate Sub Form_Unload(Cancel As Integer)С мен .Filter ="" .FilterOn =FalseEnd WithEnd Sub

Подробности за продукта Изходните данни на формуляра идват от филтрираните записи въз основа на кода на PID (идентификатор на продукта), предаден на формуляра чрез OpenArgs. Таблицата с оригинални продукти беше изтеглена от базата данни NorthWind.accdb и преименувана на ProductsNew.

Надяваме се, че ви е харесало да правите контролния проект ListView. Още с ListView Control.

Изтеглете демо базата данни от връзката, дадена по-долу, и щастливо разглеждане на списъка.

Весела Коледа и Честита Нова година.

Изтегляне на демонстрационна база данни.


  1. Функция ROUNDDOWN на Excel
  2. Извикване на функция от събитие MouseMove
  3. Функция Date2Text и Text2Date
  4. Учебник за модула за клас WithEvents Ms-Access
  5. Със събития и дефиниране на собствени събития
  6. Раздел на текстовото поле на комбинирания списък с бутони за събития

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Пребройте всички обекти във вашата база данни

  2. Типове полета и употреби в бази данни на Access 2019

  3. Поддръжката на dBase се завръща в Microsoft Access!

  4. 5 мощни функции на Microsoft Access

  5. Криптиране на база данни:3-те типа и защо са ви необходими