[access] Variable dans une requete sql

Résolu/Fermé
lord_in
Messages postés
46
Date d'inscription
dimanche 27 mai 2007
Statut
Membre
Dernière intervention
29 octobre 2007
- 15 juin 2007 à 14:12
lord_in
Messages postés
46
Date d'inscription
dimanche 27 mai 2007
Statut
Membre
Dernière intervention
29 octobre 2007
- 29 juin 2007 à 16:10
Variable dans une requete sql

Je n’arrive pas à intégrer une variable dans une instruction sql

Voilà mon code
Dim T as date
Dim T1 as date



T = Val(Datett.Value)
T1 = DateAdd("m", 1, T)
DoCmd.RunSQL "INSERT INTO Table1tampon ( Material, [material description], [zone], mois, forecasts ) SELECT TableTotal.Material, TableTotal.[material description], TableTotal.zone, TableTotal.mois, TableTotal.forecasts FROM TableTotal WHERE (((TableTotal.zone)=zonett.value) AND ((TableTotal.mois)=datett.value));", -1

DoCmd.RunSQL "INSERT INTO Table2tampon ( Material, [material description], [zone], mois, forecasts ) SELECT TableTotal.Material, TableTotal.[material description], TableTotal.zone, TableTotal.mois, TableTotal.forecasts FROM TableTotal WHERE (((TableTotal.zone)=zonett.value)) AND ((TableTotal.mois)= T1 ) ;", -1

Et quand j’exécute il me demande la valeur de la variable T


Dattett = la date que je tape dans mon formulaire

Merci de votre aide

1 réponse

blux
Messages postés
24384
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
16 septembre 2022
3 225
15 juin 2007 à 14:33
Salut,

il faut sortir T1 du texte de la requête :
Dim StrSql as string
Strsql = "INSERT INTO Table2tampon ( Material, [material description], [zone], mois, forecasts ) "
StrSql = StrSql + "SELECT TableTotal.Material, TableTotal.[material description], TableTotal.zone, TableTotal.mois, TableTotal.forecasts FROM TableTotal WHERE (((TableTotal.zone)=zonett.value)) "
StrSql = StrSql + "AND ((TableTotal.mois)= '" + T1 + "') ;"
DoCmd RUNSQL (Strsql,-1)
Et éventuellement mettre la date entre # si TableTotal.mois est de type date...
1
lord_in
Messages postés
46
Date d'inscription
dimanche 27 mai 2007
Statut
Membre
Dernière intervention
29 octobre 2007

15 juin 2007 à 15:32
En fait il me met type incompatible pour cette ligne
StrSql = StrSql + "AND ((TableTotal.mois)= '" + T1 + "')

J’ai vérifié mes tables et le mois et bien du type date
Et pour les # j’avais déjà essayé mais ca marche pas !!!

PS : j’ai changé « DoCmd RUNSQL (Strsql,-1) » en DoCmd.RunSQL StrSql
Parce qu il voulait pas prendre la 1ère
0
blux
Messages postés
24384
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
16 septembre 2022
3 225
15 juin 2007 à 15:43
le mois et bien du type date
Mais que contient-il : un mois ou une date ?
0
lord_in
Messages postés
46
Date d'inscription
dimanche 27 mai 2007
Statut
Membre
Dernière intervention
29 octobre 2007
> blux
Messages postés
24384
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
16 septembre 2022

15 juin 2007 à 15:47
il contient une date sous forme ex 01/05/2006
et mois c'est le nom du champ
0
blux
Messages postés
24384
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
16 septembre 2022
3 225 > blux
Messages postés
24384
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
16 septembre 2022

15 juin 2007 à 15:49
StrSql = StrSql + "AND ((TableTotal.mois)= #" + T1 + "#) ;"
???
0
lord_in
Messages postés
46
Date d'inscription
dimanche 27 mai 2007
Statut
Membre
Dernière intervention
29 octobre 2007
> blux
Messages postés
24384
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
16 septembre 2022

15 juin 2007 à 16:04
tjrs le meme problème !!!!
0