Doorgaan naar hoofdcontent

Posts

Posts uit januari, 2017 weergeven

Access: een listbox met meervoudige selectie en een gekoppelde en dynamische grafiek

In Access kunnen we listboxen gebruiken voor een (meervoudige) keuze uit een dataset. Dankzij VBA en MS GRAPH  kunnen we een grafiek of meerdere grafieken mee laten lopen met de gemaakte keuze. Met name voor een meervoudige selectie zijn in VBA nogal wat stappen nodig om het een en ander voorelkaar te krijgen. Voor grafieken gebruikt Access het instrument MS GRAPH met zijn eigen objectmodel. We zullen de stappen langslopen. Het voorbeeld is gebaseerd op de database NOORDENWIND van MICROSOFT . Voor de listbox heb ik de volgende SQL string gebruikt: SELECT Klantnummer, Bedrijf, Contactpersoon FROM tblKlanten ORDER BY Klantnummer Stap 1: gemaakte keuzes uit listbox in een array opslaan     ReDim arrLijst(Me.lboMeervoudig.ItemsSelected.Count)     intTeller = 0     For Each objItem In Me.lboMeervoudig.ItemsSelected         arrLijst(intTeller) = Me.lboMeervoudig.Column(0, objItem)         intTeller = intTeller + 1     Next Stap 2: inhoud array overhevelen naar strValu

Access: keuzes uit een listbox met meervoudige selectie

In Access kunnen we op een formulier listboxen maken waarbij we kunnen kiezen voor de meervoudige selectie-optie. We kunnen meerdere keuzes maken. De vraag is nu hoe we deze keuze met behulp van VBA scripts door kunnen geven aan een volgende formulier. Het onderstaande is een voorbeeld van zo'n listbox met meervoudige selectie. De meerdere keuzes moeten we hier maken met de CTRL toets ingedrukt. De uiteindelijke keuze maken we dan met de combinatie CTRL toets ingedrukt en dubbelklikken. Achter deze gebeurtenis heb ik dan de volgende VBA code geplaatst: Private Sub lboMeervoudig_DblClick(Cancel As Integer)     Dim arrLijst()     Dim intTeller As Integer     Dim objItem As Variant, strResult As String          'gemaakte keuzes in een array stoppen     ReDim arrLijst(Me.lboMeervoudig.ItemsSelected.Count)     intTeller = 0     For Each objItem In Me.lboMeervoudig.ItemsSelected         arrLijst(intTeller) = Me.lboMeervoudig.Column(0, objItem)         intTeller