Votre question

Visual Basic créer un filtre sur plusieurs variables ???

Tags :
  • Sql
  • Programmation
Dernière réponse : dans Programmation
15 Juin 2009 16:05:36

Bonjour tous le monde je vous explique mon problème:

(Je travail sur une base de données firebird)

Donc une foi la requête SQL réalisé j'obtiens premièrement dans une liste plusieurs types (1 ou 2), et ce que je souhaite c'est pouvoir récupérer tous les types (ou le type) qui n'ont pas été sélectionner dans la requête du dessus pour pouvoir les utilisé dans la suite..


Je fait un exemple

Dans ma table TYPES, j'ai ceci : type1, type2, type3, type4, type5, type6
Requête SQL qui me renvoie ceci : type2 et type3


Je souhaite récupérer => type1, type4, type5, type6


Si vous ne comprenez pas vraiment ce que je souhaite dite moi ce que vous avez besoin de savoir pour m'aider, car je cherche depuis 2 jours et google n'est pas vraiment mon ami.

PS: pour info je suis en stage de première année de BTS et n'est jamais appris le VB, soyez pas trop pro avec les explications svp.

Autres pages sur : visual basic creer filtre plusieurs variables

15 Juin 2009 18:11:37

Bonjour,

Je comprend pas très bien...
Dans la requête qui te donne type2 et type3 tu utilises une clause WHERE avec des conditions qui te donnent le présent résultat.

Pour obtenir le reste, pourquoi ne pas utiliser la condition contraire ?
m
0
l
16 Juin 2009 08:57:23

Oui j'utilise le WHERE pour obtenir le résultats, j'avais pensé utilisé le NOT IN pour avoir le contraire seulement je vois pas comment le faire car je peux avoir 1 ou plusieurs types a passer en variables dans ma requête est ce possible ? Et comment ?
m
0
l
Contenus similaires
16 Juin 2009 09:41:59

Si ta première requête ressemble à :
SELECT * FROM types WHERE critere = 'test'
La requête :
SELECT * FROM types WHERE critere != 'test'
Te donnera l'inverse des résultats.

L'utilisation des sous requêtes (NOT IN) n'est pas justifiée dans ton cas...
... ou alors je n'ai toujours pas compris ton problème :) 

Tu peux poster ton code SQL et ton code VB ? Ca m'aiderait à te répondre
m
0
l
16 Juin 2009 10:59:42

Donc voici un exemple sur lequel je travail.
Il existe (pour l'instant) que 3 types possible (mais l'évolution est à prévoir)
' CodeCommande 'est un numéro de commande il peut avoir les 3 types
Afin de savoir ce qui a déjà été enregistré
J'ai ce code

  1. SELECT id, contrat, types FROM contrat WHERE contrat='"& CodeCommande &"'


résultat :
> commande n°1 à le type A
> commande n°1 à le type B


Donc maintenant je souhaiterai avoir un résultat qui me donne seulement le " type C " car c'est le seul qui n'a pas été enregistré pour la commande n°1.
Désoler j'ai un peut de mal à exprimer l'idée.. :sweat: 
m
0
l
16 Juin 2009 11:08:36

Ah ok je commence à mieux comprendre :) 
Si je comprend bien donc ton champ "types" contient tous les types de la commande ?

Par exemple le contenu de ta table contrat peut ressembler à ceci :
ID CONTRAT TYPES
1 Commande 1 type1,type2
2 Commande 2 type3

??
m
0
l
16 Juin 2009 11:21:23

Enfaite c'est bon ! Mon maître de stage m'avait pas montré la totalité de la base de données et il y avait une table TYPE donc j'ai fait une requête imbriqué et j'obtient le résultat voulu.. désolé de t'avoir fait perdre ton temps mais tu m'a mis sur la voie pour la requête contraire, merci a toi maverick911 !
m
0
l
16 Juin 2009 11:27:48

Ah de rien, content que tu ait trouvé la solution :) 

J'ai cependant une petite remarque :
Si tu as en plus de tes tables "contrats" et "types", une table de jointure "types_contrats" qui contient l'association entre les PK de tes tables "contrats" et "types", tu pourras effectuer des requêtes avec jointures, ce qui est plus rapide que des requêtes imbriquées, du moins sur les grosses tables.
m
0
l
16 Juin 2009 11:46:00

Remarque approuvé en effet ! Merci de ce petit plus.
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS