Filter voor subformulier

Status
Niet open voor verdere reacties.

hermes79

Gebruiker
Lid geworden
22 mei 2006
Berichten
48
M'n kennis van access zit blijkbaar behoorlijk ver.
Want zelf dit krijg ik niet voor mekaar.

Ik wens via een keuzelijst (Leveranc in mijn geval) bepaalde gegevens weer te geven in m'n subformulier. Ik denk dat het te maken heeft met de relaties die ik niet juist gelegd heb, maar geraak er maar niet uit.

In een volgende stap wens ik de mogelijkheid te creëren om meerdere leveranc te selecteren, maar eerst dit probleem oplossen

alvast bedankt
 

Bijlagen

Hoi Hermes79,

Er waren een aantal probleempjes met je db:
- Er was geen unieke id in tabel Orders. Dit kan later voor problemen zorgen. Ordernummer 109759 komt bijvoorbeeld meerdere keren voor.
- In je subform stond een selectiequery waar geen Uniekeleverancier_Id in staat.
- Je LEVERANC met Id 1 had ook geen omschrijving, hierdoor werd ik in het begin telkens op het verkeerde been gezet. Ik dacht namelijk dat ik Id 1 selecteerde, maar dit was feitelijk Id 2. Id 1 was namelijk leeg en 2 niet. ;)

Overige acties:
- Queries verwijderd, wordt in voorbeeld niks mee gedaan.
- Tabel ORDERS_OLD verwijderd, dito reden.

Stappen uitgevoerd:
- nieuwe formulier (FormLev) en hier keuzelijst toegevoegd.
- eigenschappen ingesteld -> geen Recordbron en de layout veranderd.
- In Subform LEV toegevoegd, voor overzicht. En Select * bij Recordbron, nu is UniekeleverancierId ook meegenomen.
- VBA code toegevoegd bij keuzelijst "CmbLeverancier" bij de Gebeurtenis "Na Bijwerken".

VBA code is als volgt:
Code:
Private Sub CmbLeverancier_AfterUpdate()
Dim strTabel As String
Dim strSQL As String
Dim Lev As Integer

    Lev = Me.[CmbLeverancier].Value
    strTabel = "[TabelOrders]"
    strSQL = "Select * From " & strTabel & vbCrLf _
        & "WHERE(((TabelOrders.Uniekeleverancierskeys_ID)= " & Lev & "))"

    Me.SubForm.Form.RecordSource = strSQL
    Me.SubForm.Form.Requery

End Sub

Wat deze code doet is het instellen van de Recordsource van het Subform.
Met de WHERE statement wordt dus gesteld: pak de gegevens waar Uniekeleverancierskeys_ID gelijk is aan de combobox. En klaar is Greenery. :)

Ik hoop dat je hiermee wat verder komt.
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan