[access] Variable dans une requete sql

Résolu/Fermé
lord_in Messages postés 58 Date d'inscription dimanche 27 mai 2007 Statut Membre Dernière intervention 29 octobre 2007 - 15 juin 2007 à 14:12
 FloVBA - 22 nov. 2022 à 13:52
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 26010 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 26 avril 2024 3 289
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 58 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 26010 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 26 avril 2024 3 289
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 58 Date d'inscription dimanche 27 mai 2007 Statut Membre Dernière intervention 29 octobre 2007 > blux Messages postés 26010 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 26 avril 2024
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 26010 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 26 avril 2024 3 289 > blux Messages postés 26010 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 26 avril 2024
15 juin 2007 à 15:49
StrSql = StrSql + "AND ((TableTotal.mois)= #" + T1 + "#) ;"
???
0
lord_in Messages postés 58 Date d'inscription dimanche 27 mai 2007 Statut Membre Dernière intervention 29 octobre 2007 > blux Messages postés 26010 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 26 avril 2024
15 juin 2007 à 16:04
tjrs le meme problème !!!!
0