Hello and Merry Christmas… 
This is a cascading filter in 3 listboxes. Macros are ok, I just wanted to display the first and last name in a column.
' Filtering classrooms and pupils per level
Sub FiltrerNiveaux
Dim objForm As Object
Dim objNiveau As Object
Dim objClasse As Object
Dim objEleve As Object
Dim intFiltreNiveau As Integer
Dim intFiltreClasse As Integer
Dim strSQL1 As String
Dim strSQL2 As String
Dim intClasse As Integer
Dim intEleve As Integer
objForm = ThisComponent.DrawPage.Forms.GetByName("MainForm")
objNiveau = objForm.GetByName("lstNivId")
objClasse = objForm.GetByName("lstClaId")
objEleve = objForm.GetByName("lstEleId")
intFiltreNiveau = objNiveau.SelectedValue
intFiltreClasse = objClasse.SelectedValue
strSQL1 = "SELECT DISTINCT ""CLA_LIB"", ""CLA_ID"" FROM ""T_ELEVES"" WHERE ""NIV_ID"" = '" & intFiltreNiveau & "' ORDER BY ""CLA_ID"""
strSQL2 = "SELECT ""ELE_NOM"" || ' ' || ""ELE_PRENOM"", ""ELE_ID"" FROM ""T_ELEVES"" WHERE ""NIV_ID"" = '" & intFiltreNiveau & "' ORDER BY ""ELE_NOM"" || ' ' || ""ELE_PRENOM"""
objClasse.ListSource = Array(strSQL1)
objEleve.ListSource = Array(strSQL2)
intClasse = objForm.Columns.GetByName("CLA_ID").Value
intEleve = objForm.Columns.GetByName("ELE_ID").Value
objClasse.SelectedValue = intClasse
objEleve.SelectedValue = intEleve
objClasse.Refresh()
objEleve.Refresh()
End Sub
' Filtering pupils per classroom
Sub FiltrerClasses
Dim objForm As Object
Dim objClasse As Object
Dim objEleve As Object
Dim intFiltreClasse As Integer
Dim strSQL As String
Dim intEleve As Integer
objForm = ThisComponent.DrawPage.Forms.GetByName("MainForm")
objClasse = objForm.GetByName("lstClaId")
objEleve = objForm.GetByName("lstEleId")
intFiltreClasse = objClasse.SelectedValue
strSQL = "SELECT ""ELE_NOM"" || ' ' || ""ELE_PRENOM"", ""ELE_ID"" FROM ""T_ELEVES"" WHERE ""CLA_ID"" = '" & intFiltreClasse & "' ORDER BY ""ELE_NOM"" || ' ' || ""ELE_PRENOM"""
objEleve.ListSource = Array(strSQL)
intEleve = objForm.Columns.GetByName("ELE_ID").Value
objEleve.SelectedValue = intEleve
objEleve.Refresh()
End Sub