2017-10-15 5 views
0

J'essaie de faire quelque chose que je considère complexe jusqu'à maintenant, et qui est capable de filtrer une zone de liste, depuis la colonne d'une autre zone de liste, avec l'intention d'obtenir des données non associées .Filtrer la liste de la colonne d'une autre liste

Avant Filtre

imagen antes de filtrar

Après filtre

despues de filtrar

Dans l'image ci-dessus, vous pouvez voir que je choisi la marque Frito Lay, et il me filtres la liste qui est au milieu, en me montrant, seulement ce qui est lié à cette marque, mais dans la liste qui est ensuite, qui est de catégories, un seul devrait apparaître, ayq celui des trois inscrits, un seul n'est lié à aucune autre marque, et c'est la catégorie ou ligne chocolatinas.

Les relations entre les tables est la suivante

tablas

Il est venu à mon esprit cette

filas_lista = Me.Lista1.ListCount 

    For Fila = 0 To cantidad - 1 

     cod_categoria = Me.Lista1.Column(3, Fila) 

     consulta = "SELECT Categorias.Id_Categoria_Auto, Categorias.Nombre_Categoria" & _ 
        " FROM Categorias" & _ 
        " WHERE (((Categorias.Id_Categoria_Auto)<>" & cod_categoria & "))" 

     Me.lista_categoria_union.RowSource = consulta 
     Me.lista_categoria_union.Requery 

    Next Fila 

Naviguer la liste filtrée, et à partir de là, il suffit de laisser dans la liste des catégories les qui ne sont pas répétés, mais seulement les filtres par le dernier élément de la liste.

+0

Vous êtes à vélo au milieu listbox? Pourquoi ne pas simplement définir la liste des catégories en fonction des marcas sélectionnées? Le SQL de RowSource peut joindre des catégories et T_Marc_Categoria et filtrer sur le champ Nomb_Marca. Pourquoi avez-vous besoin de la liste de catégories? Les catégories pertinentes sont déjà dans la zone de liste du milieu. – June7

+0

@ June7 salut, j'ai besoin des catégories qui ne sont pas la relation avec marca je sélectionne, par exemple, si vous voulez ajouter une nouvelle catégorie pour cette marca, j'ai besoin d'une liste avec ça. –

Répondre

1

Vous voulez categoria ne sont pas associés à la marca sélectionnée, puis considérer:

= "SELECT ID_Categoria_Auto, Nombre_Categoria " & _ 
"FROM Categorias LEFT JOIN T_Marc_Categ ON Categorias.ID_Categoria_Auto = T_Marc_Categ.ID_Linea " & _ 
"WHERE ID_Marca<>" & cod_categoria & " OR ID_Marca Is Null;" 
+0

J'ai construit des tables par votre modèle et la requête fonctionne vraiment pour moi - testé dans le concepteur de requêtes. Bien que j'ai utilisé l'invite d'entrée, pas de référence à un contrôle de formulaire. Aucune idée de ce que vous entendez par «utiliser deux consultation d'accès pour obtenir les données». – June7

+0

Je ne comprends pas ce qu'est '[cod_categoria]', je parle de, requête avec une sous-requête, [link] (https://pastebin.com/dUBmQGtF) –

+0

[cod_categoria] est variable dans votre code. Désolé, je n'aurais pas dû utiliser [] et avoir besoin de concaténer. Voir la réponse éditée. – June7