ddove53
Messages postés623Date d'inscriptionmardi 20 mars 2007StatutMembreDernière intervention15 juin 2010
-
2 juil. 2008 à 10:23
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
2 juil. 2008 à 14:07
Slt j'ai 2 dates qui se trouvent dans 2 tables. Je veux calculer l'écart entre les 2 dates. Je fais le code suivant:
Set rs2 = Db.OpenRecordset("affaire", dbOpenForwardOnly)
Set rs4 = Db.OpenRecordset("Item ressource", dbOpenForwardOnly)
Dim resultat As Date
Dim date situation As Date
Dim fa As Date
resultat = (rs4![fa]) - (rs2![date situation])
If resultat < 7 Then
...
else
......
end if
J'ai une erreur d'éxécution "3021", il me dit aucun enregistrement en cours.
Pouvez-vous m'aider?
ddove53
Messages postés623Date d'inscriptionmardi 20 mars 2007StatutMembreDernière intervention15 juin 2010 2 juil. 2008 à 11:35
Je vais en profiter pour une autre question.
Dim i as integer
Dim resulat as integer
sql_glob_rs = "SELECT [OET].[code ot]AS Macrotâches,"
For i = 0 To resultat
sql_glob_rs = sql_glob_rs & "Ressources_OP.Consommé AS [C au " & rs2![date situation] & "], Ressources_OP.Reste as [Reste sur l'année],Budget.N" & i & " , (Ressources_OP.CFP - Ressources_OP.[Consommé anterieur]-Ressources_OP.[Consommé]-Ressources_OP.Reste-(Budget.N" & i & ")) as [Solde]" sql_glob_rs sql_glob_rs & " FROM OET INNER JOIN (Budget INNER JOIN Ressources_OP ON (Budget.[Numero et] Ressources_OP.[Numero et]) AND (Budget.Projet = Ressources_OP.[Code Sres]) AND (Budget.Macrotache = Ressources_OP.[Code OT]))" sql_glob_rs sql_glob_rs & " ON (Ressources_OP.[Numero et] OET.[numero et]) AND (OET.[code ot] = Ressources_OP.[Code OT]) AND (OET.[Ref reseau] = Ressources_OP.[Code Sres])"
sql_glob_rs = sql_glob_rs & " WHERE (((Ressources_OP.[Code Sres])=" & glob_sres & ") AND ((OET.[numero et])=0))"
sql_glob_rs = sql_glob_rs & " order by OET.[code ot];"
Next i End If
Je pense qu'il n'aime pas la manière dont j'ai utilisé le "for".
Il me dit"erreur d'éxécution 3021", "caractères trouvés aprés la fin de l'instruction SQL.
Pouvez-vous me débloquer?
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 2 juil. 2008 à 11:45
je pense que ta boucle devrait s'achever avant le
sql_glob_rs = sql_glob_rs & " FROM OE...
Dim i as integer
Dim resulat as integer
sql_glob_rs = "SELECT [OET].[code ot]AS Macrotâches,"
For i = 0 To resultat
sql_glob_rs = sql_glob_rs & "Ressources_OP.Consommé AS [C au " & rs2![date situation] & "], Ressources_OP.Reste as [Reste sur l'année],Budget.N" & i & " , (Ressources_OP.CFP - Ressources_OP.[Consommé anterieur]-Ressources_OP.[Consommé]-Ressources_OP.Reste-(Budget.N" & i & ")) as [Solde]"
sql_glob_rs sql_glob_rs & " FROM OET INNER JOIN (Budget INNER JOIN Ressources_OP ON (Budget.[Numero et] Ressources_OP.[Numero et]) AND (Budget.Projet = Ressources_OP.[Code Sres]) AND (Budget.Macrotache =
Ressources_OP.[Code OT]))"
Next i
sql_glob_rs sql_glob_rs & " ON (Ressources_OP.[Numero et] OET.[numero et]) AND (OET.[code ot] = Ressources_OP.[Code OT]) AND (OET.[Ref reseau] = Ressources_OP.[Code Sres])"
sql_glob_rs = sql_glob_rs & " WHERE (((Ressources_OP.[Code Sres])=" & glob_sres & ") AND ((OET.[numero et])=0))"
sql_glob_rs = sql_glob_rs & " order by OET.[code ot];"
End If
Vous n’avez pas trouvé la réponse que vous recherchez ?
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 2 juil. 2008 à 12:02
Sans préjugé de l'utilité de ta boucle ou de sa bonne constitution (quoique à mon avis, laisser la partie de la requête qui contient les jointures et les critères, ça ne peut que planter parce que si résultat > 0, alors ta requête SQL ressemblera à :
SELECT champ0 FROM Table INNER JOIN table WHERE Critère1 ORDER BY Champ0 champ1 FROM Table INNER JOIN table WHERE Critère1 ORDER BY Champ0 champ2 ...
Ca ne pourra pas fonctionner. A toi de voir comment corriger (un indice, tu as 4 égalités dans ta boucle, sors les 3 dernières et ça devrait être honnête).
Mais ça, ça sera ton 2ème message d'erreur quand tu auras résolu celui que tu as déjà qui veut dire ce qu'il veut dire : "caractères trouvés aprés la fin de l'instruction SQL", tu as un ";" à la fin de l'instruction, sans doute parce que tu as récupéré le code de ta requête après l'avoir crée dans ACCESS par exemple. Mais en ADO, il ne doit pas y être.
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 2 juil. 2008 à 13:41
Autant (au temps ?) pour moi ... J'étais convaincu d'avoir eu ce problème avec le ";". Mais par acquis de conscience, je viens de tester dans un de mes vieux fichiers en ajoutant le ";", et ça ne change rien au fonctionnement, que ce soit en interrogeant une base ACCESS ou SQL Server.
Donc, toutes mes plus plates et reste donc ton pb de boucle mal consitutée à résoudre.