vbromanoff
Messages postés26Date d'inscriptionjeudi 21 août 2003StatutMembreDernière intervention27 septembre 2014 3 oct. 2006 à 18:12
??! Ah ! ! Serait-ce la solution à mon problème ?
En fait, je n'avais jamais entendu parlé du système de parenthèses dans le SQL... je connais quelques fonctions et la "grammaire" du langage en question mais je ne connais rien de sa ponctuation...
Si en effet les parenthèse fonctionnent comme tu le dis, je me lance directement. Là tout de suite je n'ai pas le temps (fac de philo et tout et tout, huhuhu), mais je me lance dans c't'enroule dès ce soir.
Brosske
Messages postés98Date d'inscriptionjeudi 25 novembre 2004StatutMembreDernière intervention12 août 20101 30 sept. 2006 à 14:32
alors, utilise de guillemets pour raffermir la sélection :
"SELECT ... WHERE (VHS OR DVD) AND (REALISATEUR LIKE '%Duschmell%' AND ACTEUR LIKE '%lui%'
donc mon code deviendra :
SQL="Select * From table Where ("
+selection VHS et/ou DVD
SQL=SQL & ") " & Operateur de melange type et critaire (AND ou OR) & " ("
+selection critères
SQL=SQL & ")"
?
vbromanoff
Messages postés26Date d'inscriptionjeudi 21 août 2003StatutMembreDernière intervention27 septembre 2014 30 sept. 2006 à 12:37
Si c'est beaucoup plus simple. Mais ce qui est simple dans ton code c'est surtout la programmation elle-même : le tiens est 100 fois plus propre, mais il ne résoud pas du tout mon problème : par exemple dans le cas où je dois afficher tous les films qui sont soit sur VHS soit sur DVD mais qui ont tous le même réalisateur et un acteur commun, la requête SQL que tu proproses programmera ceci :
"SELECT ... WHERE VHS OR DVD AND REALISATEUR LIKE '%Duschmell%' AND ACTEUR LIKE '%lui%'
Ce qui ne recherche pas du tout ce que je veux : il suffit que le film soit sur VHS pour qu'il soit affiché, sans tenir compte des critères de réalisateur et d'acteur... tout le problème est là. Mais c'est vrai qu'au début moi aussi j'avais fait un petit code tout propret.
Merci pour ta participation, et n'hésite pas à m'aider encore... j'en ai bien besoin.
Brosske
Messages postés98Date d'inscriptionjeudi 25 novembre 2004StatutMembreDernière intervention12 août 20101 30 sept. 2006 à 10:46
oops - j'ai mis les guillements de l'autre côté du % ...... mais bon, ce n'est qu'un exemple de programmation hé
Brosske
Messages postés98Date d'inscriptionjeudi 25 novembre 2004StatutMembreDernière intervention12 août 20101 30 sept. 2006 à 10:42
Amai, vous vous compliquez la vie avec votre programmation.... Essayez plus tot de trouver un astuce pour façiliter la vie et que ce soit utilisable dans tous les cas :
Dim SQL as string
Dim OpSup as string
Dim OpCrit as string
SQL="Select * From table Where 1 "
if SupCumulée then OpSup=" AND " else OpSup=" OR "
if CritCumulée then OpsCrit=" AND " else OpCrit=" OR "
' ici intégrer les conditions de recherche, je montre que pour les critères:
for Teller=0 to nrcrit
if listbox(teller).text<>"" then
sql=sql & OpCrit & "Critère Like %""" & listbox(teller).text & "%"""
end if
next
Set RS=DB.openrecordset(SQL)
et voila tous les info's dans un recordset ....... pas bcp plus simple ça ??
3 oct. 2006 à 18:12
En fait, je n'avais jamais entendu parlé du système de parenthèses dans le SQL... je connais quelques fonctions et la "grammaire" du langage en question mais je ne connais rien de sa ponctuation...
Si en effet les parenthèse fonctionnent comme tu le dis, je me lance directement. Là tout de suite je n'ai pas le temps (fac de philo et tout et tout, huhuhu), mais je me lance dans c't'enroule dès ce soir.
30 sept. 2006 à 14:32
"SELECT ... WHERE (VHS OR DVD) AND (REALISATEUR LIKE '%Duschmell%' AND ACTEUR LIKE '%lui%'
donc mon code deviendra :
SQL="Select * From table Where ("
+selection VHS et/ou DVD
SQL=SQL & ") " & Operateur de melange type et critaire (AND ou OR) & " ("
+selection critères
SQL=SQL & ")"
?
30 sept. 2006 à 12:37
"SELECT ... WHERE VHS OR DVD AND REALISATEUR LIKE '%Duschmell%' AND ACTEUR LIKE '%lui%'
Ce qui ne recherche pas du tout ce que je veux : il suffit que le film soit sur VHS pour qu'il soit affiché, sans tenir compte des critères de réalisateur et d'acteur... tout le problème est là. Mais c'est vrai qu'au début moi aussi j'avais fait un petit code tout propret.
Merci pour ta participation, et n'hésite pas à m'aider encore... j'en ai bien besoin.
30 sept. 2006 à 10:46
30 sept. 2006 à 10:42
Dim SQL as string
Dim OpSup as string
Dim OpCrit as string
SQL="Select * From table Where 1 "
if SupCumulée then OpSup=" AND " else OpSup=" OR "
if CritCumulée then OpsCrit=" AND " else OpCrit=" OR "
' ici intégrer les conditions de recherche, je montre que pour les critères:
for Teller=0 to nrcrit
if listbox(teller).text<>"" then
sql=sql & OpCrit & "Critère Like %""" & listbox(teller).text & "%"""
end if
next
Set RS=DB.openrecordset(SQL)
et voila tous les info's dans un recordset ....... pas bcp plus simple ça ??