twee keuzelijsten op elkaar afstemmen in vba

Status
Niet open voor verdere reacties.

so10070

Gebruiker
Lid geworden
4 feb 2014
Berichten
424
Ik wil twee keuzelijsten op elkaar afstemmen in vba en krijg altijd voor de tweede keuzelijst de vraag om de parameterwaarde in te geven. Als ik deze sql maak via het Eigenschappenvenster, Rijbron werkt dit wel. Ik doe een fout in de WHERE-clausule maar weet niet welke. Hierbij de code. (nog even meegeven: ID is een numerieke waardel)
Code:
Private Sub Form_Load()
    Dim sqlLijstAPCode As String
    Dim sqlLijstACode As String 
    
    sqlLijstAPCode = "SELECT tblActiePlan.ActiePlanID, tblActiePlan.APCode, tblActiePlan.APTekstKort " & _
        "FROM tblActiePlan ORDER BY tblActiePlan.APTekstKort;"
    sqlLijstACode = "SELECT tblActie.ActiePlanID, tblActie.ACode, tblActie.ATekstKort " & _
        "FROM tblActie " & _
        "WHERE tblActie.ActiePlanID = Me!subfrmProjectenProducten.Form!txtActiePlanID " & _
        "ORDER BY tblActie.ATekstKort;"
        
    With cboAPcode
        .RowSource = sqlLijstAPCode
        .ColumnCount = 3
        .BoundColumn = 2
        .ColumnWidths = "0cm;0cm;5cm"
        .TextAlign = 1
        '.ListWidth =
    End With
    With cboACode
        .RowSource = sqlLijstACode
        .ColumnCount = 3
        .BoundColumn = 2
        .ColumnWidths = "0cm;0cm;5cm"
        .TextAlign = 1
        '.ListWidth =
    End With
End Sub
 
Als je een selectie maakt in een query zal Access alle elementen in één string zetten met een verwijzing naar het object, zoals je al gemerkt had. Doe je het op een formulier, dan moet je de feitelijke waarde opvragen, en dat doe je nu op de verkeerde manier. De SQL moet zijn:
Code:
    sqlLijstAPCode = "SELECT ActiePlanID, APCode, APTekstKort FROM tblActiePlan ORDER BY APTekstKort;"
    sqlLijstACode = "SELECT ActiePlanID, ACode, ATekstKort FROM tblActie " & _
        "WHERE ActiePlanID = " & Me.txtActiePlanID & " " & "ORDER BY ATekstKort;"
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan