Inhoud keuzemenu subform wissen naar verandering hoofform

Status
Niet open voor verdere reacties.

Honky

Gebruiker
Lid geworden
18 apr 2007
Berichten
25
Ik heb een formulier waarop leveranviers geselecteerd kunnen worden. Op een gekoppeld subform verschijnen vervolgens de producten die die leverancier aanbiedt en tegen welke prijs en kwaliteit ed. Dit wisselt uiteraard per leverancier.

Het subform maakt gebruik van een pulldownmenu waarin de verschillende producten van de leverancier staan. Daar kan uit gekozen worden en vervolgens worden de gegevens van dat product voor die leverancier netjes ingevuld.

so far so good want dit gaat prima.

Het probleem is echter dat wanneer ik een andere leverancier selecteer er in het pulldown menu met de productgegevens de productenlijst van de vorige leverancier blijft staan. Ik zoek dus een manier om het geheugen van die box te wissen nadat ik een andere leverancier kies.
 
Als je subform gekoppeld is, dan gaat het vanzelf.
als het niet gekoppeld is kan je ieder veld afzonderlijk leeg maken óf je maakt gebruik van de TAG property van je controls óf je doorloopt gewoon álle controls van je subform.
Code:
Public Sub ClearFields(frm As Form, strTag As String, Optional blnLocked As Boolean = False, Optional blnBound As Boolean = False)
'Leeg de velden op het form (mits unbound) a.d.h.v de tag property en set de Locked property op true of false.

    Dim intX          As Integer
    Dim intMaxControl As Integer
    Dim ctl           As Control
    
    If Not IsLoaded(frm.Name) Then
        Exit Sub
    End If
    
    For Each ctl In frm.Controls
'Verwijder deze If then endif als je niet wilt testen op TAG property.
        If InStr(1, ctl.Tag, strTag) > 0 Then
            Select Case ctl.ControlType
                ' Input Controls
                Case acTextBox
                    If Not blnBound Then ctl.Value = ""
                    ctl.Locked = blnLocked
                Case acComboBox
                    If Not blnBound Then ctl.Value = ""
                    ctl.Locked = blnLocked
                Case acCheckBox
                    If Not blnBound Then ctl.Value = ""
                    ctl.Locked = blnLocked
                Case Else 'Alle andere soorten controls overslaan.
            End Select
        End If
    Next ctl

End Sub
Aanroep bijvoorbeeld:
Code:
ClearFields Me, "EXTMEDEDT", Not Me.chkWijzigen, True
Enjoy!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan