Syntaxe de requete en vb6
yousou
Messages postés
4
Statut
Membre
-
yousou Messages postés 4 Statut Membre -
yousou Messages postés 4 Statut Membre -
Salut tout le monde,
J'ai un probleme avec la manipulation d'une requete sql en vb6. La requete est la suivante :
jour, nbr et annee sont des variables
Apparament, il y a une faute de syntaxe que j'ai pas pu résoudre
Je compte sur votre aide.
Merci d'avance
J'ai un probleme avec la manipulation d'une requete sql en vb6. La requete est la suivante :
requete = "SELECT [date] ,COUNT(msg) AS Expr1 FROM (SELECT * From cliensms WHERE date BETWEEN((01/( & nbr & )/( & annee & )) AND ((& jour &)/( & nbr & )/( & annee & ))) AND ligne = '12546' ) DERIVEDTBL GROUP BY [date] ORDER BY [date]"
jour, nbr et annee sont des variables
Apparament, il y a une faute de syntaxe que j'ai pas pu résoudre
Je compte sur votre aide.
Merci d'avance
A voir également:
- Syntaxe de requete en vb6
- Vb6 - Télécharger - Divers Utilitaires
- Erreur lors de l'envoi de la requête facebook - Forum Facebook
- Quelle requête écrire pour demander au moteur de recherche de présenter de préférence les pages web traitant de tennis mais pas de tennis de table ✓ - Forum Java
- Trouver erreur de syntaxe fichier txt ✓ - Forum PHP
- Erreur de requete facebook - Forum Facebook
1 réponse
Bonjour,
Je ne connais pas trop VB6, plutôt vb.net.
Mais j'imagine que dans les deux cas, ta requête pose problème car tu ne "sors" pas de la chaine de caractère pour y coller les variables, qui ne sont donc pas vue comme des variables mais juste comme des bouts de chaines de caractères.
Par ailleurs, je ne comprends pas pourquoi tu effectues une sous requête. Une seule requête ne suffit pas ?
Voilà ce que je mettrais à ta place :
requete = "SELECT [date], COUNT(msg) AS Expr1 FROM cliensms WHERE ([date] BETWEEN (01/" & nbr & "/" & annee & ") AND (" & jour & "/" & nbr & "/" & annee & ")) AND ligne = '12546' GROUP BY [date] ORDER BY [date]"
Je ne connais pas trop VB6, plutôt vb.net.
Mais j'imagine que dans les deux cas, ta requête pose problème car tu ne "sors" pas de la chaine de caractère pour y coller les variables, qui ne sont donc pas vue comme des variables mais juste comme des bouts de chaines de caractères.
Par ailleurs, je ne comprends pas pourquoi tu effectues une sous requête. Une seule requête ne suffit pas ?
Voilà ce que je mettrais à ta place :
requete = "SELECT [date], COUNT(msg) AS Expr1 FROM cliensms WHERE ([date] BETWEEN (01/" & nbr & "/" & annee & ") AND (" & jour & "/" & nbr & "/" & annee & ")) AND ligne = '12546' GROUP BY [date] ORDER BY [date]"
Merci pour la réponse, le probleme est résolu mais j'ai un autre probleme maintenant. Le résultat de cette requete normalement devrait être une table à deux colonnes où devant chaque jour du mois spécifié , est affiché le nombre de msg. Le probleme se pose lorsque pour une date donnée il y a zéro msg, dans ce cas la ligne correspondante à cette date ne s'affiche pas. Puis dans la suite de mon application lorsque je veut exporter le résultat de cette requête dans un tableau excel, j'aurais la valeur du jour suivant devant le jour où la valeur vaut zéro càd un décalage, ce qui fausse le résultat.
Voilà le code:
requete = "SELECT [date], COUNT(msg) AS Expr1 FROM cliensms WHERE ([date] BETWEEN '01/" & nbr & "/" & annee & " ' AND ' " & jour & "/" & nbr & "/" & annee & " ') AND ligne = '125483' GROUP BY [date] ORDER BY [date]" If TrouverProcessus("EXCEL.EXE") = False Then Set frm_Type.appExcel = CreateObject("Excel.Application") End If Set frm_Type.wbExcel = frm_Type.appExcel.Workbooks.Open(App.Path & "\MODELS\fich.xls") Set frm_Type.wsExcel = frm_Type.wbExcel.Worksheets("Feuil1") frm_Type.wsExcel.Activate frm_Type.appExcel.Visible = False With frm_Type.wsExcel .Range("A1:E1").Select ActiveCell.FormulaR1C1 = Titre End With cellule = 3 Adodc1.RecordSource = requete Adodc1.Refresh Adodc1.Recordset.MoveFirst With Adodc1.Recordset Do While (.EOF = False) cel1 = "A" & cellule cel2 = "B" & cellule frm_Type.wsExcel.Range(cel1).Select ActiveCell.FormulaR1C1 = .Fields(0) frm_Type.wsExcel.Range(cel2).Select ActiveCell.FormulaR1C1 = .Fields(1) cellule = cellule + 1 .MoveNext Sleep 200 Loop End With Adodc1.Recordset.CloseMerci d'avance