• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

textboxen vullen met gegevens uit 2 tabellen

Status
Niet open voor verdere reacties.

Andre175

Gebruiker
Lid geworden
2 feb 2018
Berichten
351
hallo.....

ik wil graag textboxen vullen als ik in een listbox click.
Het probleem is dat de gegevens die ik in de desbetreffende textboxen wil laten invullen uit een andere tabel komen dan wat in de listbox staat.

in eerste instantie had ik het idee om 2 pagina's te maken, 1 voor de gezinnen en 1 voor de kinderen.
Bij nader inzien lijkt het me duidelijker/makkelijker dat er gewoon 1 pagina gemaakt wordt.
Echter hoe vul ik de Textboxen omdat de gegevens uit 2 tabellen komen.
(Ik wil het originele bestand wat al een tijdje gebruikt wordt eigenlijk zo late zoals die nu is, dus 2 sheets met 2 tabellen)

Tabel_gezinnen bevat gegevens van het gezin.
Tabel_kinderen bevat gegevens van het kind.

in de Tabel_kinderen staat in een kolom bij welk gezin het hoort.

In de Userform "StartMulti" staat een pagina "Gezinnen", deze wordt nu met een aantal gegevens ingevuld over het gezin zodra men in de listbox een gezin kiest.
Deze kunnen gewijzigd worden en er kan een nieuw gezin toegevoegd worden.

nu wil ik graag in het frame Kind(eren) dat de kinderen van dat gezin ingevuld worden.


wie kan mij een aanzet geven hoe ik de juiste gegevens in de textboxen krijg?


Bij voorbaat dank.....André

Bekijk bijlage Urenlijsten en facturatie volledig - kopie.xlsm
 
Dan is het in ieder geval handig om een unieke koppeling te kunnen maken tussen het huishouden en het kind.
Daarvoor zou je het veld debiteurnummer uit de huishoudentabel aan de kinderentabel kunnen toevoegen.
Op basis daarvan kunnen bij selektie van het huishouden de kinderen worden gefilterd.
 
Klopt....
Ik heb het debiteurnummer niet gekozen als unieke koppeling.
Ik heb daarvoor een kolom gemaakt die bestaat uit de naam, adres en plaats van het gezin.
Op die manier komt de gebruiker niet in verwarring mocht er 2 gezinnen zijn met dezelfde achternaam.

Code:
Private Sub LbGezinnen_Click()
Dim j As Long

    TbIDgezin.value = LbGezinnen.Column(1)
    TbFamnaam.value = LbGezinnen.Column(2)
    TbDebnr.value = LbGezinnen.Column(3)
    TbTav.value = LbGezinnen.Column(4)
    TbStraat.value = LbGezinnen.Column(5)
    TbHuisnr.value = LbGezinnen.Column(6)
    TbPostc.value = LbGezinnen.Column(7)
    TbPlaats.value = LbGezinnen.Column(8)
    TbVerz1.value = LbGezinnen.Column(9)
    CbRol1.value = LbGezinnen.Column(10)
    TbTelnr1.value = LbGezinnen.Column(11)
    TbVerz2.value = LbGezinnen.Column(12)
    CbRol2.value = LbGezinnen.Column(13)
    TbTelnr2.value = LbGezinnen.Column(14)
    CbSoortKontrakt.value = LbGezinnen.Column(15)
    TbUren.value = LbGezinnen.Column(16)
    
' Textboxen leeg maken
    For i = 1 To 4
        Me("tbkind" & i & "Hh") = vbNullString
        Me("TbId" & i & "Hh") = vbNullString
        Me("TbGebDatum" & i & "Hh") = vbNullString
        Me("TbJm" & i & "Hh") = vbNullString
        Me("TbSchool" & i & "Hh") = vbNullString
        Me("TbBijzh" & i & "Hh") = vbNullString
    Next i
    
    With Sheets("Tabel_Kinderen")
        For i = 2 To .Range("C" & Rows.Count).End(xlUp).Row
            If .Cells(i, 4) = LbGezinnen.Column(0) Then
                j = j + 1
                Me(("TbId") & j & ("Hh")) = .Cells(i, 2).value
                Me(("TbKind") & j & ("Hh")) = .Cells(i, 3).value
                Me(("Tbgebdatum") & j & ("Hh")) = .Cells(i, 5).value
                Me(("TbJm") & j & ("Hh")) = .Cells(i, 7).value
                Me(("Tbschool") & j & ("Hh")) = .Cells(i, 6).value
                Me(("tbbijzh") & j & ("Hh")) = .Cells(i, 8).value
            End If
        Next
    End With
    
' Textboxen verbergen indien leeg
    For i = 2 To 4
        If Me(("TbKind") & i & ("Hh")) = ("") Then
            Me(("TbKind") & i & ("Hh")).Visible = False
            Me(("tbbijzh") & i & ("Hh")).Visible = False
            Me(("TbId") & i & ("Hh")).Visible = False
            Me(("TbJm") & i & ("Hh")).Visible = False
            Me(("TbGebdatum") & i & ("Hh")).Visible = False
            Me(("TbSchool") & i & ("Hh")).Visible = False
        End If
        
        If Me(("TbKind") & i & ("Hh")) <> ("") Then
            Me(("TbKind") & i & ("Hh")).Visible = True
            Me(("tbbijzh") & i & ("Hh")).Visible = True
            Me(("TbId") & i & ("Hh")).Visible = True
            Me(("TbJm") & i & ("Hh")).Visible = True
            Me(("TbGebdatum") & i & ("Hh")).Visible = True
            Me(("TbSchool") & i & ("Hh")).Visible = True
        End If
    Next i
End Sub

Voor mij is deze vraag dus opgelost.

André
 
Ik wacht wel tot ook jij er achter komt dat het gebruik van het debiteurennummer de meest efficiënte aanpak is.
 
Denk dat je wel gelijk zult hebben.....
zoals ik het nu heb, werkt het iig wel zoals ik het nu heb.
Vond het al heel wat dat dit zo ineens in me op kwam en....
mocht het toch problemen gaan opleveren en ik kom er niet uit.....dan meld ik me vast wel :D

André
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan