ListBox vult zich na keuze uit ComboBox

Status
Niet open voor verdere reacties.

Rap261

Gebruiker
Lid geworden
2 sep 2008
Berichten
273
Goedemiddag,

Welk script heb ik nodig om een Listbox automatisch te vullen a.d.v. keuzes in een Combobox.

v.b.:
Kiest men voor keuze 1 in de Combo dan vult de Listbox zichzelf met de opties die bij keuze 1 horen. Kiest men voor keuze 2 dan vult de Listbox zichzelf met opties die bij keuze 2 horen enz enz.

Ik zit zelf te stoeien met onderstaand script maar dit werkt niet.
Zowel .Caption als.Value niet

Code:
Private Sub Combo1_BeforeUpdate(Cancel As Integer)
FollowLink (Combo1.ListIndex)
End Sub

Private Sub FollowLink(ByVal intIndex As Integer)
Select Case intIndex
Case 0
ListBox.Caption = "Test1"
Case 1
ListBox.Caption = "Test2"
End Select
End Sub

Graag jullie hulp
ALvast bedankt
 
Dat lukt met de methode AddItem

Code:
ListBox.AddItem("Test1", "Test1b")

mvg leo
 
Leo,

Bedankt voor je hulp.
Echter, Wanneer ik deze code plaats krijg ik een bug.

Wat doe ik fout?

Code:
Private Sub Combo1_BeforeUpdate(Cancel As Integer)
FollowLink (Combo1.ListIndex)
End Sub

Private Sub FollowLink(ByVal intIndex As Integer)
Select Case intIndex
Case 0
List1.AddItem ("Gelukt")
Case 1
List1.AddItem ("En nog een keer")
End Select
End Sub
 
Laatst bewerkt:
De foutmelding zou misschien helpen
Misschien kun je een voorbeeldbestandje plaatsen?

Code:
Private Sub Combo1_BeforeUpdate(Cancel As Integer)
dim intIndex as integer
  intIndex=Combo1.ListIndex
      FollowLink (intIndex)
End Sub

Private Sub FollowLink(ByVal intIndex As Integer)
Select Case intIndex
Case 0
List1.AddItem ("Gelukt")
Case 1
List1.AddItem ("En nog een keer")
End Select
End Sub

Krijg je zo ook de fout?
 
He Leo,

Ik krijg nog steeds de fout melding

Het zit hem in de "List2.AddItem ("Gelukt")" regel (deze regel wordt geel)
Ik heb ook al varianten geprobeerd met Add.Item of Item.Add maar dat heeft ook niet geholpen
 

Bijlagen

  • Foutmelding.jpg
    Foutmelding.jpg
    11,2 KB · Weergaven: 52
Ik heb de row list (zie fout melding) aangepast in de list box en nu werkt het wel.
Wel is het zo dat wanneer je keus 2 maakt in de combo dat optie 1 (behorende bij keus 1) blijft staan. Deze zou moeten verdwijnen.

Het eerste probleem is dus opgelost! ik werk nu aan het tweede...

Dit is trouwens de code die je moet hebben:
Code:
Private Sub Combo1_BeforeUpdate(Cancel As Integer)
dim intIndex as integer
  intIndex=Combo1.ListIndex
      FollowLink (intIndex)
End Sub

Private Sub FollowLink(ByVal intIndex As Integer)
Select Case intIndex
Case 0
List1.AddItem ("Gelukt")
Case 1
List1.AddItem ("En nog een keer")
End Select
End Sub
 
Laatst bewerkt:
Sorry Rap261
Ik was te rap.
Ik nu pas dat ik in een acces forum zit.:eek:
Ik gebruik VBA alleen in excel en word.

Wel kwam ik dit tegen
The problem may actually be with the properties of the combo box on the
form. Open the properties sheet for the combo box, and switch to the
Data tab. Near the top of the list of properties you should find the
RowSourceType property. It is probably set to "Table/Query" at the
moment. Press f4, and then hit down arrow once to change this to "Value
list". The combo box displayed on the form editor should now have the
word "Unbound" shown in the text area. Then try compiling your code
again.
Hier lag de oplossing erin om de eigenschap rowsourcetype op value list te zetten

Edit je bent al uit dit probleem.
 
Laatst bewerkt:
Wel is het zo dat wanneer je keus 2 maakt in de combo dat optie 1 (behorende bij keus 1) blijft staan. Deze zou moeten verdwijnen

Je voegt het item toe aan de lijst. Deze blijft dus staan.
Met removeitem kun je het ongewenste item weghalen.
 
Leo,

Bedankt voor je hulp gisteravond. Het probleem is deels opgelost.
Wanneer men een keus maakt in de Combo, verschijnen de opties in de Listbox.

Het probleem nu nog is het feit dat wanneer men een andere keus maakt de "vorige" opties niet uit de Listbox verdwijnen. Ik kan hier .RemoveItem voor nemen maar dan moet ik .RemoveItem voor alle opties gaan zetten. (het originele bestand heeft 24 cases maal een x aantal opties).

Jou optie List1.clear heeft nog niet gewerkt. Ik krijg de melding dat deze methode niet aanwezig is...
 
Als het om veel items gaat, dan zou ik binnen excel het probleem op een andere wijze aanpakken.
nl via de eigenschap rowsource
In Excel kun je bereiken de naam geven van de keuzes uit de eerste lijst.
In de bereiken staan de opties die in de tweede lijst moeten komen.
In acces zal dat w.s om een veld van een tabel gaan, maar hier schiet mijn kennis te kort.
Een voorbeeld in excel:
Code:
Dim sTest As String
    If lbCatselector <> "" Then
        sTest = LbCatselector
            sTest = Strings.Right(sTest, (Strings.Len(sTest) - 3))
                LbSubcat.RowSource = sTest
        End If  
End Sub

Staan de boxen trouwens in een userform, mogelijk dat je die dan moet benoemen voor het clear commando
Userform.list1.Clear
 
Ik zit een beetje met hetzelfde, mijn kennis van Execl is prima maar van Acces stukken minder. Helaas moet ik dit Dashboard in Acces bouwen..

Ik heb diverse varianten gebruikt maar nog steeds geen resultaat.
Ook de optie Userform.List1.Clear heeft niet geholpen.

Ik denk dat ik de vraag opnieuw uitzet maar dan met als titel het probleem.
Ondertussen ga ik op zoek naar een oplossing.

Bedankt voor je hulp Leo, je hebt me een aardig stuk op weg geholpen
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan