sql >> Database teknologi >  >> RDS >> Access

ListView-kontrol med Ms-Access TreeView

Introduktion.

Microsoft Access ListView Control Project er designet og demonstreret her i denne episode af TreeView Control Tutorial. Hovedopgaven er først at udfylde TreeView-kontrollen med produktets kategorielementer. Derefter ved valget af et kategorielement på TreeView Control, er de relaterede produktposter blevet filtreret fra produkttabellen og opført i ListView Control. Hver posts feltværdier vises i forskellige kolonner.

Vi er bekendt med TreeView, ImageList og ImageCombo Controls og arbejdede med dem i tidligere episoder.

ListView-kontrollen viser data fra tre forskellige felter i tre forskellige kolonner. Kolonnerne vil have kolonneoverskrifter og andre kolonneegenskaber, såsom Rapportikoner, Værktøjstiptekst .

Produktposten har flere felter, og alle kan ikke vises i ListView Control, med flere kolonner i et lille område. I stedet, når en vare er blevet valgt i ListView Control, åbnes en anden formular med alle detaljer om den valgte produktpost. Kort fortalt er det, hvad vi planlægger at gøre her, ved at bruge kontrolelementerne TreeView, ListView og ImageList.

ListView Control-egenskaberne har lignende egenskaber som Microsoft Access ListBox Control. Den har kolonner til at vise relaterede værdier ved siden af ​​hinanden under hver kolonneoverskrift. Søjlebredden egenskabsværdi, for hver kolonne, sikrer, at feltværdien har nok plads til at vise indholdet korrekt. ListView-elementet reagerer på klik, så vi kan udføre andre handlinger, såsom at åbne formular, rapport, makro eller kalde andre funktioner, hvis det er nødvendigt.

Links til de tidligere selvstudiesessioner.

  1. Microsoft TreeView Control Tutorial.
  2. Oprettelse af adgangsmenu med TreeView-kontrol.
  3. Tildeling af billeder til TreeView-kontrol.
  4. Tildeling af billeder til TreeView Control-2, oprettelse af ImageList Control, der kan deles med andre projekter.
  5. TreeView Control Check-Mark Tilføj, Slet noder.
  6. TreeView ImageCombo Drop-Down Access Menu.
  7. Omarranger TreeView-noder ved at trække og slippe.

Artikler om adgangslistebokskontrol.

I Microsoft Access kunne vi bruge ListBox Control til at vise oplysninger og bruge dem på forskellige måder. Til opbygning af skræddersyet formularguide og skræddersyet rapportguide. Til oprettelse af hyperlinks i ListBox, oprettelse af listeelementer fra kildedata fra en anden listeboks, indføring af ekstern filliste i listeboksen eller tildeling af Filter()-funktionsoutput til ListBox. Dette var nogle af de metoder, vi har prøvet tidligere med Access ListBox. Linkene er givet nedenfor som reference.

  1. Skræddersyet Form-Wizard.

  2. Skræddersyet rapport-guide.

  3. Åbn formularer med hyperlinks i Listbox.

  4. Opret liste fra en anden listeboks.

  5. Dynamic ListBox ComboBox-indhold.

  6. Filterfunktionsoutput i ListBox.

  7. Filterfunktionsoutput i ListBox-2

  8. Liste-boks og dato del-1.

  9. Liste-boks og Dato Part-2.

ListView med TreeView Control Demo Image.

Demo-billedvisning af formular med TreeView- og ListView-kontroller:

ListView-demoformularen i designvisning.

Design af formularen frmListView.

  1. Opret en ny formular med navnet frmListView, og indsæt følgende tre kontrolelementer i formularens detaljerede sektion med navnene specificeret for hver kontrol som angivet nedenfor.

  2. Indsæt et TreeView-kontrolelement på formularen, fra ActiveX-kontrolelementlisten i venstre side, skift navnet til TreeView0 . Vis dets normale adgangsegenskabsark, og skift bredden Ejendomsværdi til 6.614 cm og Højde til9,709 cm .

  3. Indsæt en ListView-kontrol fra ActiveX-kontrollerne i højre side af TreeView-kontrolelementet, og skift dens navn til ListView0 . ListView-kontrollen er omkring 12.462 cm bredt og 9,709 cm i Højde , nok plads til at vise tre kolonner med data fra produkttabellen. Placer begge kontroller tæt på hinanden og de øverste kanter justeret.

  4. Indsæt et ImageList-kontrolelement fra ActiveX-kontrolelementlisten, placer det et sted på højre side af ListView-kontrolelementet, og skift dets navnegenskabsværdi til ImageList3 .

    Bemærk : Hvis du er ny i dette emne og ikke kunne finde ovenstående kontroller blandt ActiveX-kontrollerne listen, så skal du vedhæfte MSCOMLIB.OCX ( Microsoft Windows Fælles kontroller) i VBA-redigeringsvinduet Værktøjer - -> Referencer Filliste.

    Jeg foreslår, at du kan gå gennem det første link, der er givet øverst på denne side, Microsoft TreeView Control Tutorial Side for vejledning, hvor man kan søge efter de relaterede filer, og hvordan man tilføjer Microsoft Windows MSCOMLIB.OCX fil i Access Reference Library. Derefter vil du være i stand til at finde disse filer på ActiveX Controls Liste.

Hvis du har gennemgået de tidligere tutorialsessioner og downloadet demodatabasen fra det 4. link, der er angivet øverst, så åbn den database.

Åbn formularen med ImageList Control i Design View. Lav en kopi af ImageList Control fra formularen og placer den på udklipsholderen. Luk denne database, åbn den aktuelle projektdatabase, og åbn Form frmListView i Design View. Indsæt ImageList Control fra udklipsholderen på Form frmListView. Skift ImageList Controls navn til ImageList3 . De, der har ImageList Control med forudindlæste billeder, spring de følgende seks trin over og fortsæt fra trin 7.

Upload af billeder til ImageList Control.

Alternativt, hvis du har indsat ImageList Control fra ActiveX Controls, kan du uploade et par billeder (4 eller 5) fra din computer selv. Gør følgende:

  1. Højreklik på ImageList-kontrolelementet, fremhæv ImageListCtrl_Object og vælg Egenskaber .

  2. Vælg indstillingen 16 x 16 billedstørrelsesindstilling på Generelt Tab.

    Forsigtig: Efter upload af billeder kan du ikke ændre billedstørrelsesværdien. Hvis du tror, ​​du har brug for billeder i en anden størrelse, når de vises, skal du fjerne alle de eksisterende billeder og derefter vælge den billedstørrelse, du ønsker på fanen Generelt og derefter uploade alle billeder igen.

  3. Vælg derefter Billeder Tab.

  4. Klik på Indsæt billede Kommandoknap, og vælg billedet fra din disk (de fleste billedtyper:bmp, png, JPG, JPEG og tiff er gyldige). Det valgte billede vises i Billeder styring. Den valgte billedstørrelse vil blive reduceret til 16 x 16 pixels og kan påvirke kvaliteten af ​​billedet, hvis du har valgt et stort billede.

  5. Indeksværdien af ​​billedet indtastes af systemet. Indtast et passende unikt navn i Nøglen styring. Navnet skelner mellem store og små bogstaver, hvis du planlægger at bruge nøglenavnet på TreeView Node-billedparameteren eller på ListView-elementet i stedet for billedets indeksnummer.

  6. Du kan uploade det nødvendige antal billeder på denne måde. Du kan kopiere og indsætte denne billedlistekontrol til dine andre projekter.

  7. Luk dialogboksen, når du er færdig med at uploade de nødvendige billeder.

  8. Indsæt en kommandoknap i bunden af ​​kontrolelementerne på formularen med navnegenskabsværdien:cmdExit og med billedteksten Afslut .

  9. Du kan gemme formularen frmListView nu med ændringerne.

Vi har brug for to tabeller til demoformål for at prøve ListView Control med TreeView. Jeg har oprettet to tabeller fra produkttabellen, taget fra prøvedatabasen Northwind.accdb . Et felt af numerisk type BelongsTo føjes til tabellen lvCategory.

Tilføjet fire nye rekorder i tabellen. De første to nye plader har deres BelongsTo felt med værdien 4, hvilket angiver, at disse poster er undernoder for Record ID nummer 4. På samme måde har de sidste to poster værdien 10 i BelongsTo Mark.

Posterne med ID-nummer 4 og 10, feltet Produktnavn Beskrivelse viser, at de har flere grupper af varer. Kategorigruppenavnene opdeles i to forskellige kategorier for at placere dem som Child-Node-poster under hovedgruppeelementet. Kategoriens nye gruppepost-ID-værdier er blevet opdateret i ParentID-feltet for produktelementerne i lvProducts-tabellen, som hører til den nye kategori. Den første post med to forskellige kategorier af varer forbliver urørt på grund af nogle andre præferenceovervejelser.

lvCategory Tabelbillede er givet nedenfor. Dette vil blive brugt til TreeView-noder, også som overordnede noder til ListView-kontrolelementerne.

lv-produkterne Tabellen har omkring 45 poster. Tabelbilledet med et par eksempler på poster er givet nedenfor som reference:

Arbejde med to tabeller.

Før vi går videre, skal vi se nærmere på begge tabeller og se, hvordan de begge er relateret til hinanden i TreeView og ListView Controls. Indtil videre har vi kun arbejdet med en enkelt tabel, med felterne Node Key, Description og ParentID i samme tabel.

Jeg håber, at de af jer, der har fulgt de tidligere selvstudieepisoder indtil videre, har en klar forståelse af forholdet mellem de samme feltværdier i den samme tabel. Nu vil vi se, hvordan begge disse tabeller (lvCategory og lvProducts) er relateret til hinanden for to forskellige kontroller.

Tjek først lvCategory Bord. Den har en BelongsTo felt med værdier i de sidste fire poster. Disse fire poster er underordnede noder for post ID 4 og 10 for lvCategory noder. Disse fire noder går ind i TreeView-kontrollen som børneknuder til forældreknuderne:Dåsefrugt og grøntsager og Tørrede frugter og nødder i selve TreeView Control.

Tag nu lvProducts Tabel, og den har Forældre-ID Feltværdier. For hvert kategorielement i lvCategory Tabel, der er et eller flere relaterede produktelementer på lvprodukterne Bord. Nummeret i Forældre-id feltet i lvProducts Tabellen hører til forældreposten i lvCategory Bord. For at sige det anderledes, alle produktelementer, der er angivet i ListView Control, med det samme forældre-id værdi, tilhører en bestemt post i tabellen lvCategory med det samme CID Værdi.

Bemærk: Det kan være lidt tidskrævende at oprette begge disse tabeller fra produkttabellen. Hvis du har fulgt denne vejledning indtil videre, kan du downloade demodatabasen fra downloadlinket i slutningen af ​​denne side. Importer lvCategory og lvProducts Tabeller fra databasen til din nuværende database med dette projekt. Når du fuldfører dette projekt med den aktuelle database, hvis du står over for nogle problemer med den, kan du bruge demodatabasen som referencepunkt til at rette dit arbejde.

Formmodulets VBA-kode.

  1. Åbn frmListView formular i Design View.

  2. Vis klassemodulet for formularen.

  3. Kopier og indsæt følgende fulde VBA-kode i modulet, og tryk på Ctrl+S for at gemme koden.

Option Sammenlign DatabaseOption ExplicitDim tv As MSComctlLib.TreeViewDim lvList As MSComctlLib.ListViewDim imgList As MSComctlLib.ImageListConst Prfx As String ="X"Private Sub Form_Load()Dim db As DAO.Databltabled As DAO. Objekt tv.Nodes.Clear Set imgList =Me.ImageList3.Object With tv .Font.Size =9 .Font.Name ="Verdana" .ImageList =imgList 'tildel forudindlæst billedlistekontrol End With Set db =CurrentDb Set tbldef =db. TableDefs("lvProducts") Indstil lvList =Me.ListView0.Object lvList.ColumnHeaders.Clear lvList.ListItems.Clear lvList.Icons =imgList 'Initialiser ListView &Column Headers Egenskabsværdier med lvList .ColumnIcons. Font.Name ="Verdana" .Font.Bold =False .View =lvwReport .GridLines =True 'ColumnHeaders.Add() Syntaks:'lvList.ColumnHeaders.Add Index, Key, Text, Width, Alignment, Icon 'Justering:0 - Venstre, 1 - Højre, 2 - Center .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 =Intet Sæt tbldef =Intet LoadTreeView 'Create TreeView NodesEnd SubPrivateView Sub Load Nored MSComctlLib.Node Dim firstCatID As Long Dim strCategory As String Dim strCatKey As String Dim strProduct As String Dim strPKey As String Dim strBelongsTo As String Dim strSQL As String Dim db As DAO.Database Dim rst As DAO.Recordset 'Initialize treeview nodes tv.No treeview nodes .Clear 'Initialiser Listview-noder Mens lvList.ListItems.Count> 0 lvList.ListItems.Remove (1) Wend strSQL ="SELECT lvCategory.CID, lvCategory.Category, " strSQL =strSQL &"lvcategory.lvCategory.BelongCategory.BelongCategory.BelongCategory.BelongCategory. CID;" Indstil db =CurrentDb Indstil rst =db.OpenRecordset(strSQL, dbOpenSnapshot) Hvis ikke rst.BOF And Not rst.EOF Then rst.MoveFirst firstCatID =rst!CID Else Exit Sub End If ' Udfyld alle poster som rootlevel noder Do While Not rsts .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 'I den anden passage af det samme sæt poster 'Flyt underordnede noder under deres overordnede noder rst.MoveFirst Do While Not rst.BOF And Not rst.EOF strBelongsTo =Nz(rst!BelongsTo, "") If Len( strBelongsTo)> 0 Så strCatKey =Prfx &CStr(rst!CID) strBelongsTo =Prfx &strBelongsTo strCategory =rst!Category Set tv.Nodes.Item(strCatKey).Parent =tv.Nodes.Item(strBelongsTo) End If rst.MoveNext.MoveNext. Lo op rst.Close ' Udfyld listevisningskontrol med produktdetaljer ' af det første kategorielement 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 Dim db. Database Dim rst As DAO.Recordset Dim strSQL As String ' Initialize ListView Control Mens lvList.ListItems.Count> 0 lvList.ListItems.Remove (1) Wend strSQL ="SELECT lvProducts.* FROM lvProducts " strSQL "=WHEREL &.ParentID =" &CatID &") " strSQL =strSQL &"ORDER BY lvProducts.[Produktnavn];" 'Åbn filtreret produktliste for valgt kategori Sæt db =CurrentDb Sæt rst =db.OpenRecordset(strSQL, dbOpenSnapshot) Do While Not rst.BOF And Not rst.EOF intCount =intCount + 1 strProduct =rst![Produktnavn] strPKey =Prfx &CStr(rst!PID) 'List Item Add() Syntaks:'lvList.ListItems.Add Index,Key,Text,Icon,SmallIcon Set tmpLItem =lvList.ListItems.Add(, strPKey, strProduct, , 3) ​​'første kolonne lvList.ForeColor =vbBlue 'List anden kolonne underpunkt Syntaks:'tmpLItem.ListSubItems.Add Column - Index, Key, Text, ReportIcon, ToolTipText tmpLItem.ListSubItems.Add 1, strPKey &CStr(intCount!), Nz(rstCount!), Nz(rstCount!), Antal pr. enhed], ""), 6 'List tredje kolonne underpunkt tmpLItem.ListSubItems.Add 2, strPKey &CStr(intCount + 1), Format(første![listepris], "0,00"), 6, " I lokal valuta." rst.MoveNext Loop Set db =Intet Sæt rst =Intet Hvis intCount> 0 Then lvList.ListItems(1).Selected =True End SubPrivate Sub TreeView0_NodeClick(ByVal Node As Object)Dim Cat_ID As StringCat_ID =Node.Tag SubPrivate List SubPrivate )Dim lvKey As String, lvLong As LongDim Criterion As StringlvKey =lvList.SelectedItem.KeylvLong =Val(Mid(lvKey, 2))DoCmd.OpenForm "ProductDetails", , , , , , lvLongEnd DoPrivate_Sub.cmdEndExclick SubCmdClick 

Lad os gennemgå koden og prøve at forstå, hvad de gør.

I det globale deklarationsområde er TreeView-objektet (tv ), ListView (lvList ) og ImageList (imgList ) Objektvariabler erklæres. Den konstante Prfx variabel er blevet erklæret med værdien "X ” og bruges som nodenøglepræfiksværdi.

Når frmListView er åben, er Form_Load() Begivenhedsproceduren kører. Databaseobjektet db og TableDef Object Variable tbldef er blevet erklæret.

TreeView0 Kontrol på formularen er tildelt objektet Variabel tv. Erklæringentv.Nodes.Clear initialiserer TreeView Control Object-forekomsten i hukommelsen.

Dernæst imgList objektvariablen er blevet initialiseret med ImageList3 Kontrol på formularen.

TreeView Control Display Font og ImageList Egenskaber.

Følgende udsagn angiver TreeView-kontrollens skrifttypenavn, skriftstørrelse og dens ImageList Ejendommen er blevet indlæst med imgList objekt, så vi kan bruge billednøglenavne eller billedindeksnumre til TreeView-nodebilleder.

Med tv .Font.Size =9 .Font.Name ="Verdana" .ImageList =imgList 'tildel forudindlæst billedlistekontrol Afslut med

Indstillinger for ListView-kontrolegenskaber og kolonneoverskrifter.

Derefter initialiserer det følgende segment af koden ListView Control og tildeler dens egenskabsværdier.

 Sæt db =CurrentDb Sæt tbldef =db.TableDefs("lvProducts") Sæt lvList =Me.ListView0.Object lvList.ColumnHeaders.Clear lvList.ListItems.Clear lvList.Icons =imgList 'Initialisere med lister med overskrifter lvList .ColumnHeaderIcons =imgList .Font.Size =9 .Font.Name ="Verdana" .Font.Bold =False .View =lvwReport .GridLines =True 'ColumnHeaders.Add() Syntaks:'lvList.Columd IndexHeaders , Tekst, Bredde, Justering, Ikon 'Justering:0 - Venstre, 1 - Højre, 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 =Intet Sæt tbldef =Intet

Databaseobjektet tbldef variabel tildeles med lvProducts Tabel definition. Vi har brug for datafeltnavne til brug som ListView Kolonneoverskrifter , for deres relaterede dataværdier, øverst. Overskriftstekstparameterværdien kan tages fra tabelfeltnavnet.

Et billede kan også vises i kolonneoverskriften. Derfor har vi tildelt imgList Indsigelse mod lvList.ColumnHeaderIcons Ejendom.

Dernæst er de nødvendige skrifttype-, skriftstørrelses- og stilværdier blevet tildelt deres respektive egenskaber for ListView Control, hvis standardværdierne ikke findes passende.

Listevisningen kan ses anderledes ved at ændre visningen Ejendomsværdi. Vi har valgt lvwReport (værdi 3 med maksimale funktioner). Du kan ændre og eksperimentere med andre værdier 0,1 eller 2. View Property Value 3 (lvwReport ) viser værdier i kolonner med kolonneoverskrifter, Billedikoner og gitterlinjer.

Vi har taget tre datafelter (Produktnavn , Mængde pr. enhed, og Listepris) fra tabellen lvProducts for at blive vist i tre forskellige kolonner i ListView Control.

Kolonnen Width-værdi er i pixel. Justeringsegenskabernes værdiområder er fra 0 til 2, og betydningen af ​​hver værdi er som angivet nedenfor:

0 – Venstrejustering

1 – Højrejustering

2 – Juster center.

For at oprette oplysninger om kolonneoverskriften skal du bruge lvList .ColumnHeaders.Add() metode er blevet kaldt med parametre.

Add() metode Syntaks:

Objekt .ColumnHeaders.Tilføj indeks, nøgle, tekst, kolonnebredde, justering, ikon

Med ovenstående tre erklæringer i kodesegmentet har vi tilføjet alle de tre kolonneoverskrifter med feltnavnene:Produktnavn , Mængde pr. enhed, og Listepris Kolonner.

Vi har taget dette trin, før vi tilføjede et element til ListView-kontrollen, og det også i Form_Load()-hændelsesproceduren, snarere end under udfyldning af ListView-elementer.

Kalder derefter LoadTreeView() Underrutine til at oprette TreeView-kontrolnoder. Som vi har diskuteret i tidligere episoder, har vi delt denne opgave op i en to-trins proces.

Efter variabeldeklarationerne er TreeView- og ListView-kontrollerne blevet initialiseret.

Umiddelbart efter åbning af lvCategory record set, er værdien for den første posts nøglefelt (kategori-id:CID) blevet gemt i firstCatID Variabel til senere brug.

Dernæst føjes alle posterne fra lvCategory-tabellen indledningsvis til TreeView-kontrollen som rodniveauknuder.

I det andet gennemløb af det samme sæt poster kontrollerer den BelongsTo feltværdi, hvis den er tom, bevares disse noder som rodniveauknude, ellers er ParentID-feltværdien rodniveaunodens ID. Ved at bruge ParentID-værdien er den aktuelle node blevet flyttet under den overordnede node som dens underordnede node.

Jeg har forklaret dette aspekt af to-trins proceduren med at udfylde noder i TreeView Control i en tidligere episode og bevist ved eksperimenter i detaljer i den sidste selvstudiesession.

Efter lukning af recordset-objektet LoadListView(ByVal CatID) Subrutine er blevet kaldt. Den første kategoriposts CID-feltværdi gemt i firstcatID variabel er blevet sendt som en parameter til funktionen.

Den unikke CID-feltværdi for kategori overført i variabel firstCatID som en parameter er blevet brugt som kriterier i strSQL-strengen til at filtrere de relaterede produktposter.

Vi har kun taget fire feltdata fra de filtrerede poster for at vise på ListView Control. Nøglefelt:PID , Produktnavn , Mængde pr. enhed, og Listepris . PID-feltværdien er blevet brugt som nøgle og vises ikke i displayet.

ColumnHeaders.Add() metoden er blevet kaldt tre gange for at tilføje alle de tre kolonneoverskrifter.

Bemærk: Tjek sætningen, vi har ikke angivet nogen nøgleparameterværdi, men indeksværdien vil blive indsat af systemet. Vi har ikke planlagt at arbejde med kolonneoverskrifterne, når de først er blevet indlæst. Selvom vi gør det, kan vi adressere kolonnen med indeksværdien. Men vi skal indlæse produktpostfeltværdierne i samme rækkefølge som kolonneoverskrifterne.

Befolkning af listevisningskontrol med produktværdier i kolonner.

For at vise datalisten på ListView-kontrollen har vi brug for to sæt Add()-metoder med tre forskellige nøgleværdier for at tilføje alle tre kolonner med værdier til ListView-kontrollen.

Den første kolonneværdi vil blive tilføjet med lvList .Listeelementer Tilføj() metode. Alle andre kolonneværdier kan tilføjes med lvList .ListSubItems Tilføj() metode.

Vi har oprettet én tællervariabel:intCount, og øger dens værdi ved hver Do While . . . Sløjfecyklus og dens aktuelle værdi vil blive tilføjet til nøgleværdien (PID) for at gøre nøgleværdien unik i lvListen. ListSubItems.Add() metode.

Den første kolonnes ListItems.Add() Metode Syntaks er som angivet nedenfor:

 

‘lvList.ListItems .Tilføj Indeks, nøgle, tekst, ikon, lille ikon

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

Ovenstående erklæring ligner TreeView Nodes Tilføj-metode. tmpLItem er erklæret som et ListItem Object og holder den tilføjede ListItems reference, så den kan bruges til at tilføje dens ListSubItems.

lvList.ListSubItems.Add() Metode Syntaksen er lidt anderledes som angivet nedenfor. Den viste syntaks er for den anden .ListSubItems.Add()-metode med den anden parameterværdi strPKey &Cstr(intCount + 1) . Den første ListSubItems.Add()-metode vil have nøgleværdien som strPKey &Cstr(intCount) .

 

‘tmpLItem.ListSubItems .Tilføj Indeks, nøgle, tekst, rapportikon, værktøjstiptekst

tmpLItem.ListSubItems.Add 2, strPKey &CStr(intCount + 1) , Format(første![Listepris], "0,00"), 6, "I lokal valuta."

ListSubItems Tilføj-metode har ReportIcon og VærktøjstipTekst som de sidste to parametre. Vi har kun brugt Værktøjstip-Tekst parameterværdien for den sidste kolonne.

NB: Værdierne indlæst i kolonner og alle andre indstillinger, der er relateret til det, fungerer kun, når du vælger Vis-indstillingen – 3 (lvwReport) undtagen den første kolonne. Ellers bliver de alle ignoreret.

Værktøjstip-teksten vises, når musemarkøren svæver over den sidste kolonne.

I alle de tre kolonner (ListItems &ListSubItems) bruger Add() metoden den samme post PID Værdi som nøgle. Da forskellige kolonner i den samme post kræver en unik ID-værdi som nøgle, er intCount Variable-værdien blevet forøget med én for ListSubItems og konverteret til en streng og derefter tilføjet PID-feltværdien.

På denne måde er de valgte kategorivarerelaterede produktposter alle opført i ListView Control.

Separat formular for at vise alle produktregistreringsoplysninger.

Siden lvProducts Tabel har flere felter og værdier, end hvad vi kunne vise på ListView Control, ListView elementet Click Event åbner en separat formular Produktdetaljer og viser de fulde registreringsdetaljer.

Billedet af formularen med alle detaljer om den valgte produktpost er angivet nedenfor:

ListView0_Click()-hændelsesproceduren.

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

ListView0_Click()-hændelsen udtrækker produktets nøgle- Værdi og sender den til formularen som åbent argument (OpenArgs).

Formularen med produktoplysninger.

I hændelsesproceduren Form_Open() er OpenArgs værdi er blevet brugt til at oprette et filterkriterier for at filtrere kildeposterne og vise dem på formularen.

Produktdetaljer-formularmodulets kodeliste:

Option Sammenlign 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 =" &lngID Me.FilterOn =TrueEnd IfEnd SubPrivate Sub Form_Unload(Annuller som heltal) With Me .Filter ="" .FilterOn =FalseEnd WithEnd Sub

Produktdetaljer Formularens kildedata kommer fra de filtrerede poster, baseret på PID-koden (Produkt-ID) sendt til formularen gennem OpenArgs. Original Products Table blev downloadet fra NorthWind.accdb databasen og omdøbt til ProductsNew.

Håber du nød at lave ListView Control Project. Mere kommer med ListView Control.

Download demodatabasen fra linket nedenfor, og god listevisning.

Glædelig jul og godt nytår.

Demodatabasedownload.


  1. ROUNDDOWN-funktion i Excel
  2. Opkaldsfunktion fra MouseMove Event
  3. Dato2Tekst og Tekst2Datofunktion
  4. WithEvents Ms-Access Class Module-vejledning
  5. Med begivenheder og definer dine egne begivenheder
  6. withevents Button Combo List TextBox Tab

  1. Flere af mine foretrukne PostgreSQL-forespørgsler - og hvorfor de også betyder noget

  2. Sådan e-mailes resultaterne af en forespørgsel i SQL Server (T-SQL)

  3. COUNT() vs COUNT_BIG() i SQL Server:Hvad er forskellen?

  4. Sådan indstilles sætningstimeout for udførelse af forespørgsler