sql >> Databáze >  >> RDS >> Access

ListView Control s Ms-Access TreeView

Úvod.

Microsoft Access ListView Control Project byl navržen a předveden zde, v této epizodě kurzu TreeView Control Tutorial. Hlavním úkolem je nejprve naplnit ovládací prvek TreeView položkami kategorie produktu. Poté při výběru položky kategorie v ovládacím prvku TreeView byly příslušné záznamy o produktech odfiltrovány z tabulky produktů a uvedeny v ovládacím prvku ListView. Hodnoty polí každého záznamu se zobrazují v různých sloupcích.

Známe ovládací prvky TreeView, ImageList a ImageCombo a pracovali jsme s nimi v dřívějších epizodách.

Ovládací prvek ListView zobrazí data ze tří různých polí ve třech různých sloupcích. Sloupce budou mít záhlaví sloupců a další vlastnosti sloupců, jako jsou ReportIcons, Tooltip Text .

Produktový záznam má několik polí a všechna nelze zobrazit v ovládacím prvku ListView s několika sloupci v malé oblasti. Místo toho, když byla položka vybrána v ovládacím prvku ListView, otevře se jiný formulář s úplnými podrobnostmi o vybraném záznamu produktu. Stručně řečeno, to je to, co zde plánujeme udělat pomocí ovládacích prvků TreeView, ListView a ImageList.

Vlastnosti ListView Control mají podobné vlastnosti jako Microsoft Access ListBox Control. Má sloupce pro zobrazení souvisejících hodnot vedle sebe pod záhlavím každého sloupce. Šířka sloupce Hodnota vlastnosti pro každý sloupec zajišťuje, že hodnota pole má dostatek místa pro správné zobrazení obsahu. Položka ListView reaguje na kliknutí, takže můžeme v případě potřeby provádět další akce, jako je otevření formuláře, sestavy, makra nebo volání dalších funkcí.

Odkazy na dřívější výukové programy.

  1. Výukový program pro ovládání Microsoft TreeView.
  2. Vytvoření přístupové nabídky pomocí TreeView Control.
  3. Přiřazení obrázků k ovládacímu prvku TreeView.
  4. Přiřazení obrázků k TreeView Control-2, vytvoření ImageList Control, které lze sdílet s jinými projekty.
  5. Ovládací prvek TreeView Zaškrtněte Přidat, Odstranit uzly.
  6. Rozbalovací nabídka přístupu TreeView ImageCombo.
  7. Změňte uspořádání uzlů TreeView přetažením.

Články o ovládání Access ListBox.

V aplikaci Microsoft Access jsme mohli použít ovládací prvek ListBox k zobrazení informací a jejich použití různými způsoby. Pro vytváření přizpůsobeného Průvodce formulářem a Průvodce sestavou na míru. Pro vytváření hypertextových odkazů v ListBox, vytváření položek seznamu ze zdrojových dat jiného Listboxu, vkládání seznamu externích souborů do ListBoxu nebo přiřazení výstupu funkce Filter() do ListBoxu. To byly některé z metod, které jsme dříve vyzkoušeli s Access ListBox. Odkazy jsou uvedeny níže pro referenci.

  1. Custom-made Form-Wizard.

  2. Vlastní sestava – průvodce.

  3. Otevřete formuláře s hypertextovými odkazy v seznamu.

  4. Vytvořit seznam z jiného seznamu.

  5. Dynamický seznam ComboBox Obsah.

  6. Funkce filtru Výstup v seznamu.

  7. Funkce filtru Výstup v ListBox-2

  8. List-Box a Date Part-1.

  9. Seznam a datum, část 2.

Ukázkový obrázek ListView s ovládacím prvkem TreeView.

Ukázkové zobrazení obrázku formuláře s ovládacími prvky TreeView a ListView:

Ukázkový formulář ListView v návrhovém zobrazení.

Návrh formuláře frmListView.

  1. Vytvořte nový formulář s názvem frmListView a vložte následující tři ovládací prvky do části podrobností formuláře s názvy zadanými pro každý ovládací prvek, jak je uvedeno níže.

  2. Vložte do formuláře ovládací prvek TreeView, ze seznamu ovládacích prvků ActiveX na levé straně změňte název na TreeView0 . Zobrazte jeho normální list vlastností Access a změňte Šířku Hodnota vlastnosti 6,614 cm a Výška na9,709 cm .

  3. Vložte ovládací prvek ListView z ovládacích prvků ActiveX na pravou stranu ovládacího prvku TreeView a změňte jeho název na ListView0 . Ovládací prvek ListView je přibližně 12,462 cm široký a 9,709 cm ve Výšce , dostatek místa pro zobrazení tří sloupců dat z tabulky produktů. Umístěte oba ovládací prvky blízko sebe a horní okraje zarovnané.

  4. Vložte ovládací prvek ImageList ze seznamu ovládacích prvků ActiveX, umístěte jej někam na pravou stranu ovládacího prvku ListView a změňte jeho hodnotu vlastnosti Name na ImageList3 .

    Poznámka : Pokud jste v tomto tématu noví a nenašli jste výše uvedené ovládací prvky mezi ovládacími prvky ActiveX seznam, pak musíte připojit MSCOMLIB.OCX ( Společné ovládací prvky systému Microsoft Windows) v okně úprav VBA Nástroje - -> Reference Seznam souborů.

    Doporučuji, že si můžete projít první odkaz uvedený v horní části této stránky, Výukový program pro ovládání Microsoft TreeView Stránka s pokyny, kde hledat související soubory a jak přidat Microsoft Windows MSCOMLIB.OCX soubor do Access Reference Library. Poté budete moci tyto soubory najít na Ovládací prvky ActiveX Seznam.

Pokud jste prošli předchozími konzultacemi a stáhli si ukázkovou databázi ze 4. odkazu uvedeného nahoře, otevřete tuto databázi.

Otevřete formulář pomocí ovládacího prvku ImageList v návrhovém zobrazení. Vytvořte kopii ovládacího prvku ImageList z formuláře a umístěte jej do schránky. Zavřete tuto databázi, otevřete aktuální databázi projektu a otevřete formulář frmListView v návrhovém zobrazení. Vložte ovládací prvek ImageList ze schránky na formulář frmListView. Změňte název ovládacího prvku ImageList na ImageList3 . Ti, kteří mají ImageList Control s předinstalovanými obrázky, přeskočte následujících šest kroků a pokračujte od Kroku-7.

Nahrávání obrázků do ovládacího prvku ImageList.

Alternativně, pokud jste vložili ovládací prvek ImageList z ovládacích prvků ActiveX, můžete nahrát několik obrázků (4 nebo 5) ze samotného počítače. Proveďte následující:

  1. Klikněte pravým tlačítkem na ovládací prvek ImageList a zvýrazněte ImageListCtrl_Object a vyberte Vlastnosti .

  2. Vyberte možnost 16 x 16 možnost velikosti obrázku v Obecné Tab.

    Upozornění: Po nahrání obrázků nelze změnit hodnotu Velikost obrázku. Pokud si myslíte, že potřebujete obrázky jiné velikosti, když se zobrazí, musíte odstranit všechny existující obrázky a poté vybrat požadovanou velikost obrázku na kartě Obecné a poté znovu nahrát všechny obrázky.,

  3. Dále vyberte Obrázky Tab.

  4. Klikněte na Vložit obrázek Příkazové tlačítko a vyberte obrázek z vašeho disku (platná je většina typů obrázků:bmp, png, JPG, JPEG a tiff). Vybraný obrázek se zobrazí v Obrázcích řízení. Vybraná velikost obrázku se zmenší na 16 x 16 pixelů a může ovlivnit kvalitu obrázku, pokud jste vybrali velký obrázek.

  5. Indexovou hodnotu obrázku zadává systém. Do Klíče zadejte vhodný jedinečný název řízení. V názvu se rozlišují velká a malá písmena, pokud plánujete použít název klíče parametru obrázku uzlu TreeView nebo položky ListView, nikoli indexové číslo obrázku.

  6. Tímto způsobem můžete nahrát požadovaný počet obrázků. Tento ovládací prvek ImageList můžete zkopírovat a vložit pro své další projekty.

  7. Po dokončení odesílání požadovaných obrázků zavřete dialogové okno.

  8. Vložte příkazové tlačítko do spodní části ovládacích prvků formuláře s hodnotou vlastnosti Name:cmdExit a s titulkem Konec .

  9. Formulář můžete uložit frmListView nyní se změnami.

Potřebujeme dvě tabulky pro účely ukázky, abychom vyzkoušeli ovládací prvek ListView s TreeView. Vytvořil jsem dvě tabulky z tabulky produktů, převzaté z ukázkové databáze Northwind.accdb . Pole číselného typu Patří se přidá do tabulky lvCategory.

Do tabulky přidány čtyři nové záznamy. První dvě nové desky mají své BelongsTo pole s hodnotou 4, což znamená, že tyto záznamy jsou podřízené uzly záznamu ID číslo 4. Podobně poslední dva záznamy mají hodnotu 10 v BelongsTo pole.

Záznamy s ID čísly 4 a 10, pole Název produktu Popis ukazuje, že mají více skupin položek. Názvy skupin kategorií jsou rozděleny do dvou různých kategorií, aby byly umístěny jako záznamy podřízeného uzlu pod položku hlavní skupiny. Hodnoty ID záznamu nové skupiny v kategorii byly aktualizovány v poli ParentID položek produktu v tabulce lvProducts, která patří do nové kategorie. První záznam se dvěma různými kategoriemi položek zůstává nedotčen kvůli některým dalším preferenčním úvahám.

lvCategory Obrázek tabulky je uveden níže. To bude použito pro uzly TreeView a také jako nadřazené uzly pro ovládací položky ListView.

lvProducts Tabulka má asi 45 záznamů. Obrázek tabulky s několika ukázkovými záznamy je uveden níže pro referenci:

Práce se dvěma tabulkami.

Než budeme pokračovat dále, musíme se blíže podívat na obě tabulky a zjistit, jak spolu obě souvisí v ovládacích prvcích TreeView a ListView. Dosud jsme pracovali pouze s jednou tabulkou, s poli Klíč uzlu, Popis a ParentID ve stejné tabulce.

Doufám, že ti z vás, kteří doposud sledovali předchozí epizody výukového programu, jasně rozumí vztahu mezi stejnými hodnotami polí ve stejné tabulce. Nyní uvidíme, jak spolu obě tyto tabulky (lvCategory a lvProducts) souvisí pro dva různé ovládací prvky.

Nejprve zkontrolujte lvCategory Stůl. Má BelongsTo pole s hodnotami v posledních čtyřech záznamech. Tyto čtyři záznamy jsou podřízené uzly záznamů ID 4 a 10 uzlů lvCategory. Tyto čtyři uzly přejděte do ovládacího prvku TreeView jako podřízené uzly do nadřazených uzlů:Konzervované ovoce a zelenina a Sušené ovoce a ořechy v samotném ovládacím prvku TreeView.

Nyní si vezměte lvProducts Tabulka a má ParentID Hodnoty polí. Pro každou položku kategorie v lvCategory Tabulka, na lvProducts je jedna nebo více souvisejících položek produktu Stůl. Číslo v ParentID pole lvProducts Tabulka patří do nadřazeného záznamu v lvCategory Stůl. Jinak řečeno, všechny položky produktu uvedené v ovládacím prvku ListView se stejným ParentID hodnota, patří ke konkrétnímu záznamu v tabulce lvCategory se stejným CID Hodnota.

Poznámka: Vytvoření obou těchto tabulek z tabulky produktů může být časově náročné. Pokud jste doposud postupovali podle tohoto návodu, můžete si demo databázi stáhnout z odkazu ke stažení uvedeného na konci této stránky. Importovat lvCategory a lvProducts Tabulky z databáze do vaší aktuální databáze s tímto projektem. Když dokončíte tento projekt s aktuální databází, pokud s ní narazíte na nějaké problémy, můžete demo databázi použít jako referenční bod pro opravu své práce.

Kód VBA modulu formuláře.

  1. Otevřete frmListView formulář v návrhovém zobrazení.

  2. Zobrazte modul třídy formuláře.

  3. Zkopírujte a vložte následující úplný kód VBA do modulu a stiskněte Ctrl+S pro uložení kódu.

Option Compare DatabaseOption ExplicitDim tv As MSComctlLib.TreeViewDim lvList As MSComctlLib.ListViewDim imgList As MSComctlLib.ImageListConst Prfx As String ="X"Private Sub Form_Load()Dim db Me DAOtBleDatabase set. Objekt tv.Nodes.Clear Nastavit imgList =Me.ImageList3.Object With tv .Font.Size =9 .Font.Name ="Verdana" .ImageList =imgList 'přiřadit předinstalovaný ovládací prvek seznamu obrázků Konec na Nastavit db =CurrentDb Nastavit tbldef =db. TableDefs("lvProducts") Nastavit lvList =Me.ListView0.Object lvList.ColumnHeaders.Clear lvList.ListItems.Clear lvList.Icons =imgList 'Inicializovat ListView &Column Headers Property Values ​​=lvListFadert.Column.Column. Font.Name ="Verdana" .Font.Bold =False .View =lvwReport .GridLines =True 'ColumnHeaders.Add() Syntaxe:'lvList.ColumnHeaders.Add Index, Key, Text, Width, Alignment, Icon 'Zarovnání:0 – vlevo, 1 – vpravo, 2 – na střed .ColumnHeaders.Add 1, , tbldef.Fields(1).Name, 2600, 0, 5 .ColumnHeaders.Add 2, , tbldef.Fields(3).Name , 2600, 0, 5 .ColumnHeaders.Add 3, , tbldef.Fields(4).Name, 1440, 1, 5 End With Set db =Nic Set tbldef =Nic LoadTreeView 'Create TreeView NodesEnd SubPrivate Sub Load As MSComctlLib.Node Dim firstCatID As Long Dim strCategory As StrCatKey Dim As StrProduct As StrProduct As String Dim strPKey As String Dim strBelongsTo As String Dim strSQL As String Dim db As DAO.Database Dim rst As DAO.InitializeRecordset nodes .Clear 'Initialize Listview nodes While lvList.ListItems.Count> 0 lvList.ListItems.Remove (1) Wend strSQL ="SELECT lvCategory.CID, lvCategory.Category, " strSQL =strSQL &"lvcategory.BelongvORyC CID;" Set db =CurrentDb Set rst =db.OpenRecordset(strSQL, dbOpenSnapshot) If Not rst.BOF And Not rst.EOF Then rst.MoveFirst firstCatID =rst!CID Else Exit Sub End If ' Naplnit všechny záznamy jako uzly na kořenové úrovni Provést, zatímco ne rst .BOF And Not 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 'V druhém průchodu stejné sady záznamů 'Přesunout podřízené uzly pod jejich nadřazené uzly rst.MoveFirst Do While Not rst.BOF And Not rst.EOF strBelongsTo =Nz(rst!BelongsTo, "") If Len( strBelongsTo)> 0 Potom strCatKey =Prfx &CStr(rst!CID) strBelongsTo =Prfx &strBelongsTo strCategory =rst!Kategorie Set tv.Nodes.Item(strCatKey).Parent =tv.Nodes.Item(strBelongsTo) End Ift rst.Move hle op rst.Close ' Naplnit ovládací prvek ListView podrobnostmi o produktu ' první položky kategorie LoadListView firstCatID End SubPrivate Sub LoadListView(ByVal CatID) Dim strProduct As String Dim strPKey As String Dim intCount As Integer Dim tmpLItem As MSComctlLib.ListItem. Database Dim rst As DAO.Recordset Dim strSQL As String ' Initialize ListView Control While lvList.ListItems.Count> 0 lvList.ListItems.Remove (1) Wend strSQL ="SELECT lvProducts.* FROM lvProducts " strSQL =(strSQL &"WHERE .ParentID =" &CatID &") " strSQL =strSQL &"OBJEDNAT PODLE lvProducts.[Název produktu];" 'Otevřít filtrovaný seznam produktů pro vybranou kategorii Set db =CurrentDb Set rst =db.OpenRecordset(strSQL, dbOpenSnapshot) Udělej, když ne rst.BOF A ne rst.EOF intCount =intCount + 1 strProduct =rst![Název produktu] strPKey =Prfx &CStr(rst!PID) 'List Item Add() Syntaxe:'lvList.ListItems.Add Index,Key,Text,Icon,SmallIcon Set tmpLItem =lvList.ListItems.Add(, strPKey, strProduct, , 3) ​​'první sloupec lvList.ForeColor =vbBlue 'Seznam podpoložky druhého sloupce Syntaxe:'tmpLItem.ListSubItems.Add Sloupec - Index, Klíč, Text, ReportIcon, ToolTipText tmpLItem.ListSubItems.Add 1, strPKey &CStr(intCount![), Nz Množství na jednotku], ""), 6 'Vypsat podpoložku třetího sloupce tmpLItem.ListSubItems.Add 2, strPKey &CStr(intCount + 1), Format(rst![ceník], "0,00"), 6, " V místní měně." rst.MoveNext Loop Set db =Nic Set rst =Nic If intCount> 0 Then lvList.ListItems(1).Selected =True End SubPrivate Sub TreeView0_NodeClick(ByVal Node As Object)Dim Cat_ID As StringCat_ID =Node.TagCLoadListView Cat_View0 )CDim lvKey As String, lvLong As LongDim Criterion As StringlvKey =lvList.SelectedItem.KeylvLong =Val(Mid(lvKey, 2))DoCmd.OpenForm "ProductDetails", , , , , , , , , , , , SubClose, SubClose. 

Pojďme si Kodex prohlédnout a pokusit se pochopit, co dělají.

V oblasti globální deklarace objekt TreeView (tv ), ListView (lvList ) a ImageList (imgList ) Objektové proměnné jsou deklarovány. Konstanta Prfx proměnná byla deklarována s hodnotou „X ” a používá se jako hodnota předpony klíče uzlu.

Když frmListView je otevřená, Form_Load() Spustí se událostní procedura. Databázový objekt db a objektová proměnná TableDef tbldef byly prohlášeny.

StreeView0 Ovládací prvek na formuláři je přiřazen objektu Proměnná tv. Výpistv.Nodes.Clear inicializuje instanci objektu TreeView Control Object v paměti.

Dále imgList objektová proměnná byla inicializována pomocí ImageList3 Ovládací prvek na formuláři.

Vlastnosti zobrazení písma a seznamu obrázků pro ovládání zobrazení stromu.

Následující příkazy nastavují název písma, velikost písma a jeho ImageList ovládacího prvku TreeView Vlastnost byla načtena pomocí imgList objekt, takže můžeme použít názvy obrázků klíčů nebo indexová čísla obrázků pro obrázky uzlu TreeView.

With tv .Font.Size =9 .Font.Name ="Verdana" .ImageList =imgList 'přiřadit předinstalovaný ovládací prvek seznamu obrázků End With

Nastavení vlastností ovládacího prvku ListView a záhlaví sloupců.

Poté následující segment kódu inicializuje ovládací prvek ListView a přiřadí jeho hodnoty vlastností.

 Nastavit db =CurrentDb Nastavit tbldef =db.TableDefs("lvProducts") Nastavit lvList =Me.ListView0.Object lvList.ColumnHeaders.Clear lvList.ListItems.Clear lvList.Icons =imgList &Columnize Initialize HeadView Property lvList .ColumnHeaderIcons =imgList .Font.Size =9 .Font.Name ="Verdana" .Font.Bold =False .View =lvwReport .GridLines =True 'ColumnHeaders.Add() Syntaxe, KeyHeders:'lvL. , Text, Width, Alignment, Icon 'Alignment:0 - Left, 1 - Right, 2 - Center .ColumnHeaders.Add , , tbldef.Fields(1).Name, 2600, 0, 5 .ColumnHeaders.Add , , tbldef. Fields(3).Name, 2600, 0, 5 .ColumnHeaders.Add , , tbldef.Fields(4).Name, 1440, 1, 5 End With Set db =Nothing Set tbldef =Nothing

Objekt databáze tbldef proměnná se přiřadí pomocí lvProducts Definice tabulky. Potřebujeme názvy datových polí, která budeme používat jako záhlaví sloupců ListView , pro jejich související datové hodnoty, nahoře. Hodnotu parametru Text záhlaví lze převzít z názvu pole tabulky.

V záhlaví sloupce lze také zobrazit obrázek. Proto jsme přiřadili imgList Objekt proti lvList.ColumnHeaderIcons Vlastnictví.

Dále byly požadované hodnoty Font, Font-Size a Style přiřazeny k jejich příslušným vlastnostem ovládacího prvku ListView, pokud nejsou výchozí hodnoty shledány jako vhodné.

ListView lze zobrazit jinak změnou Zobrazení Hodnota majetku. Vybrali jsme lvwReport (hodnota 3 s maximálními funkcemi). Můžete změnit a experimentovat s jinými hodnotami 0, 1 nebo 2. Hodnota vlastnosti zobrazení 3 (lvwReport ) zobrazuje hodnoty ve sloupcích se záhlavím sloupců, Obrazové ikony a čáry mřížky.

Vzali jsme tři pole dat (Název produktu , Množství na jednotku, a katalogová cena) z tabulky lvProducts k zobrazení ve třech různých sloupcích v ovládacím prvku ListView.

Hodnota ve sloupci Šířka je v pixelech. Rozsahy hodnot vlastnosti zarovnání jsou od 0 do 2 a význam každé hodnoty je uveden níže:

0 – Zarovnání doleva

1 – Zarovnat vpravo

2 – Zarovnat na střed.

Chcete-li vytvořit informace o záhlaví sloupce, lvList .ColumnHeaders.Add() metoda byla volána s parametry.

Funkce Add() Syntaxe metody:

Objekt .ColumnHeaders.Add Index, Key, Text, Column Width, Alignment, Icon

S výše uvedenými třemi příkazy v segmentu Kód jsme přidali všechny tři záhlaví sloupců s názvy polí:Název produktu , Množství na jednotku, a Katalogová cena Sloupce.

Tento krok jsme provedli před přidáním jakékoli položky do ovládacího prvku ListView a také do procedury události Form_Load(), nikoli během naplňování položek ListView.

Dále zavolá LoadTreeView() Podprogram pro vytvoření řídicích uzlů TreeView. Jak jsme diskutovali v předchozích epizodách, rozdělili jsme tento úkol do dvou kroků.

Po deklaracích proměnných byly inicializovány ovládací prvky TreeView a ListView.

Ihned po otevření lvCategory sada záznamů, hodnota pole Klíč prvního záznamu (ID kategorie:CID) byla uložena do firstCatID Proměnná pro pozdější použití.

Dále jsou všechny záznamy z tabulky lvCategory zpočátku přidány do ovládacího prvku TreeView jako uzly na úrovni kořene.

Ve druhém průchodu stejné sady záznamů zkontroluje BelongsTo hodnota pole, pokud je prázdné, budou tyto uzly zachovány jako uzel na kořenové úrovni, jinak je hodnota pole ParentID ID uzlu na kořenové úrovni. Pomocí hodnoty ParentID byl aktuální uzel přesunut pod nadřazený uzel jako jeho podřízený uzel.

Vysvětlil jsem tento aspekt dvoufázového postupu naplnění uzlů v ovládacím prvku TreeView v dřívější epizodě a podrobně jsem to ověřil experimenty v poslední lekci.

Po zavření objektu sady záznamů LoadListView(ByVal CatID) Podprogram byl vyvolán. Hodnota pole CID prvního záznamu kategorie uložená v firstcatID proměnná byla předána jako parametr funkci.

Jedinečná hodnota pole CID kategorie předaná v proměnné firstCatID jako parametr byl použit jako kritérium v ​​řetězci strSQL k filtrování souvisejících záznamů produktu.

Vzali jsme pouze čtyři data polí z filtrovaných záznamů k zobrazení v ovládacím prvku ListView. Klíčové pole:PID , Název produktu , Množství na jednotku, a Katalogová cena . Hodnota pole PID byla použita jako klíč a na displeji se nezobrazí.

Funkce ColumnHeaders.Add() metoda byla volána třikrát, aby se přidaly všechny tři záhlaví sloupců.

Poznámka: Zkontrolujte prohlášení, že jsme nezadali žádnou hodnotu klíčového parametru, ale hodnotu Index vloží systém. Po jejich načtení jsme neplánovali pracovat s záhlavími sloupců. I když to uděláme, můžeme oslovit sloupec hodnotou indexu. Musíme však načíst hodnoty pole záznamu produktu ve stejném pořadí jako sekvence záhlaví sloupců.

Vyplnění ovládacího prvku ListView hodnotami produktů ve sloupcích.

Pro zobrazení výpisu dat v ovládacím prvku ListView potřebujeme dvě sady metod Add() se třemi různými hodnotami klíče, abychom do ovládacího prvku ListView přidali všechny tři sloupce hodnot.

Hodnota prvního sloupce bude přidána s lvList .Položky seznamu Přidat() metoda. Všechny ostatní hodnoty sloupců lze přidat pomocí lvList .ListSubItems Přidat() metoda.

Vytvořili jsme jednu proměnnou čítače:intCount, a zvyšuje jeho hodnotu při každém Do While . . . Cyklus smyčky a jeho aktuální hodnota budou přidány k hodnotě Key (PID), aby byla hodnota Key-Value jedinečná v lvList. ListSubItems.Add() metoda.

V prvním sloupci je ListItems.Add() Metoda Syntaxe je uvedena níže:

 

‘lvList.ListItems .Přidat Index,Klíč,Text,Ikona,SmallIcon

Set tmpLItem =lvList.ListItems.Add(, strPKey, strProduct, , 3) ​​

Výše uvedené prohlášení je podobné metodě Add uzel TreeView. tmpLItem je deklarován jako Objekt ListItem a uchovává referenci přidané položky ListItem, takže ji lze použít pro přidávání jejích položek ListSubItem.

The lvList.ListSubItems.Add() MetodaSyntaxe se mírně liší jak je uvedeno níže. Zobrazená syntaxe je pro druhou metodu .ListSubItems.Add() s hodnotou druhého parametru strPKey &Cstr(intCount + 1) . První metoda ListSubItems.Add() bude mít hodnotu klíče jako strPKey &Cstr(intCount) .

 

‘tmpLItem.ListSubItems .Přidat Index, Key, Text, ReportIcon, ToolTipText

tmpLItem.ListSubItems.Add 2, strPKey &CStr(intCount + 1) , Format(rst![Katalogová cena], "0,00"), 6, "V místní měně."

Metoda Add ListSubItem má ReportIcon a TooltipText jako poslední dva parametry. Hodnotu parametru Tooltip-Text jsme použili pouze pro poslední sloupec.

Poznámka: Hodnoty načtené do sloupců a všechna další související nastavení budou fungovat pouze tehdy, když vyberete možnost Zobrazit – 3 (lvwReport) kromě prvního sloupce. V opačném případě jsou všechny ignorovány.

Text Tooltip se zobrazí, když ukazatel myši najede na poslední sloupec.

Ve všech třech sloupcích (ListItems &ListSubItems) metoda Add() používá stejný záznam PID Hodnota jako klíč. Vzhledem k tomu, že různé sloupce stejného záznamu vyžadují jako klíč jedinečnou hodnotu ID, byla hodnota proměnné intCount zvýšena o jednu pro ListSubItems a převedena na řetězec a poté přidána s hodnotou pole PID.

Tímto způsobem jsou všechny záznamy o produktech související s vybranou kategorií uvedeny v ovládacím prvku ListView.

Samostatný formulář pro zobrazení úplných podrobností záznamu o produktu.

Od lvProducts Tabulka má více polí a hodnot, než kolik bychom mohli zobrazit v ovládacím prvku ListView, položka ListView Click Event otevře samostatný formulář ProductDetails a zobrazí úplné podrobnosti záznamu.

Obrázek formuláře se všemi podrobnostmi o vybraném záznamu produktu je uveden níže:

Procedura události ListView0_Click().

Private Sub ListView0_Click()Dim lvKey As String, lvLong As LongDim Criterion As StringlvKey =lvList.SelectedItem.KeylvLong =Val(Mid(lvKey, 2))DoCmd.OpenForm "Long,EndDetails, 

Událost ListView0_Click() extrahuje Key- produktu Value a předá jej formuláři jako otevřený argument (OpenArgs).

Formulář podrobností o produktu.

V Proceduře události Form_Open() OpenArgs hodnota byla použita k vytvoření kritérií filtru pro filtrování zdrojových záznamů a jejich zobrazení ve formuláři.

Výpis kódu modulu formuláře ProductDetails:

Option 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> 0 Then Me.Filter ="ID =" Me.FilterOn =TrueEnd IfEnd SubPrivate Sub Form_Unload(Cancel As Integer)Se mnou .Filter ="" .FilterOn =FalseEnd WithEnd Sub

Podrobnosti o produktu Zdrojová data formuláře pocházejí z filtrovaných záznamů na základě kódu PID (ID produktu) předávaného do formuláře prostřednictvím OpenArgs. Tabulka původních produktů byla stažena z databáze NorthWind.accdb a přejmenována na ProductsNew.

Doufám, že se vám práce s ListView Control Project líbila. Více s ovládacím prvkem ListView.

Stáhněte si ukázkovou databázi z níže uvedeného odkazu a přejeme příjemné prohlížení seznamu.

Veselé Vánoce a šťastný nový rok.

Stažení ukázkové databáze.


  1. Funkce ZAokrouhlení dolů v Excelu
  2. Volání funkce z události MouseMove
  3. Funkce Date2Text a Text2Date
  4. Výukový program modulu třídy WithEvents Ms-Access
  5. S událostmi a definováním vlastních událostí
  6. Seznam tlačítka s událostmi karta TextBox

  1. Export databáze pro převod

  2. Jak uložit výsledek dotazu MySQL do souboru .CSV

  3. Použití výrazů CASE na serveru SQL

  4. Nastavení atributů připojení ODBC bez nutnosti psát kód