Requête SQL avec Date

Le
Georges
Bonsoir,

encore un problème de date avec un requête SQL en VBA.
La date est bien au format US mais ça plante, alors que la même requête dans
l'onglet de la base fonctionne.

Set MyQuery = MyDB.CreateQueryDef("", "INSERT INTO DonnéesPaie ( Salarié,
Absence, Début, Fin, MoisPaie, Ouvrés ) SELECT Evènements.Salarié,
Evènements.Absence, [Clôture]+1 AS Début, Evènements.Fin," &
DateUS(CDate("1/" & Month([Fin]) & "/" & Year([Fin]))) & " AS MoisPaie,
Work_Days([Début],[Fin],6) AS Ouvrés FROM Evènements, Calendrier WHERE
(((IIf([Début]<=[DébutPériode] And
[Fin]>[Clôture],[Calendrier]![MoisPaie],Null)) Is Not Null));")
MyQuery.Execute

J'ai aussi tenté de la faire fonctionner sans mettre la date au format US
mais le résultat est identique.

Dans une autre routine j'utilise aussi un format date US et c'est OK.

Si je remplace la section " & DateUS(CDate("1/" & Month([Fin]) & "/" &
Year([Fin]))) & " par une date comme #01/01/2009# cela fonctionne. J'ai aussi
tenté #" & DateUS(CDate("1/" & Month([Fin]) & "/" & Year([Fin]))) & "# sans
plus de résultat.

Où est ce que je me trompe ?

Merci de votre éclairage.
Georges
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Michel__D
Le #17700841
Bonjour,

"Georges"
Bonsoir,

encore un problème de date avec un requête SQL en VBA.
La date est bien au format US mais ça plante, alors que la même requête dans
l'onglet de la base fonctionne.

Set MyQuery = MyDB.CreateQueryDef("", "INSERT INTO DonnéesPaie ( Salarié,
Absence, Début, Fin, MoisPaie, Ouvrés ) SELECT Evènements.Salarié,
Evènements.Absence, [Clôture]+1 AS Début, Evènements.Fin," &
DateUS(CDate("1/" & Month([Fin]) & "/" & Year([Fin]))) & " AS MoisPaie,
Work_Days([Début],[Fin],6) AS Ouvrés FROM Evènements, Calendrier WHERE
(((IIf([Début]<=[DébutPériode] And
[Fin]>[Clôture],[Calendrier]![MoisPaie],Null)) Is Not Null));")
MyQuery.Execute

J'ai aussi tenté de la faire fonctionner sans mettre la date au format US
mais le résultat est identique.

Dans une autre routine j'utilise aussi un format date US et c'est OK.

Si je remplace la section " & DateUS(CDate("1/" & Month([Fin]) & "/" &
Year([Fin]))) & " par une date comme #01/01/2009# cela fonctionne. J'ai aussi
tenté #" & DateUS(CDate("1/" & Month([Fin]) & "/" & Year([Fin]))) & "# sans
plus de résultat.

Où est ce que je me trompe ?

Merci de votre éclairage.



Essaye avec ceci

SQL = "INSERT INTO [DonnéesPaie]" & _
"( [Salarié]" & _
", Absence" & _
", [Début]" & _
", Fin" & _
", MoisPaie" & _
", [Ouvrés] )" & _
" SELECT [Evènements.Salarié]" & _
", [Evènements.Absence]" & _
", [Clôture]+1" & _
", Evènements.Fin" & _
",#" & Month([Fin]) & "/1/" & Year([Fin]))) & "#" & _
", " & Work_Days([Début],[Fin],6) & _
" FROM Evènements, Calendrier" & _
" WHERE [Début]<=[DébutPériode] And [Fin]>[Clôture];")

CurrentDb.Execute SQL

PS:Je pense que [Calendrier] ne sert à rien à moins qu'il y ai une erreur dans
l'énoncé du problème.
Michel__D
Le #17700971
"Michel__D"
Bonjour,

"Georges"

news:
> Bonsoir,
>
> encore un problème de date avec un requête SQL en VBA.
> La date est bien au format US mais ça plante, alors que la même requête dans
> l'onglet de la base fonctionne.
>
> Set MyQuery = MyDB.CreateQueryDef("", "INSERT INTO DonnéesPaie ( Salarié,
> Absence, Début, Fin, MoisPaie, Ouvrés ) SELECT Evènements.Salarié,
> Evènements.Absence, [Clôture]+1 AS Début, Evènements.Fin," &
> DateUS(CDate("1/" & Month([Fin]) & "/" & Year([Fin]))) & " AS MoisPaie,
> Work_Days([Début],[Fin],6) AS Ouvrés FROM Evènements, Calendrier WHERE
> (((IIf([Début]<=[DébutPériode] And
> [Fin]>[Clôture],[Calendrier]![MoisPaie],Null)) Is Not Null));")
> MyQuery.Execute
>
> J'ai aussi tenté de la faire fonctionner sans mettre la date au format US
> mais le résultat est identique.
>
> Dans une autre routine j'utilise aussi un format date US et c'est OK.
>
> Si je remplace la section " & DateUS(CDate("1/" & Month([Fin]) & "/" &
> Year([Fin]))) & " par une date comme #01/01/2009# cela fonctionne. J'ai aussi
> tenté #" & DateUS(CDate("1/" & Month([Fin]) & "/" & Year([Fin]))) & "# sans
> plus de résultat.
>
> Où est ce que je me trompe ?
>
> Merci de votre éclairage.

Essaye avec ceci

SQL = "INSERT INTO [DonnéesPaie]" & _
"( [Salarié]" & _
", Absence" & _
", [Début]" & _
", Fin" & _
", MoisPaie" & _
", [Ouvrés] )" & _
" SELECT [Evènements.Salarié]" & _
", [Evènements.Absence]" & _
", [Clôture]+1" & _
", Evènements.Fin" & _
",#" & Month([Fin]) & "/1/" & Year([Fin]))) & "#" & _
", " & Work_Days([Début],[Fin],6) & _
" FROM Evènements, Calendrier" & _
" WHERE [Début]<=[DébutPériode] And [Fin]>[Clôture];")

CurrentDb.Execute SQL

PS:Je pense que [Calendrier] ne sert à rien à moins qu'il y ai une erreur dans
l'énoncé du problème.



Ooups, quelques corrections

SQL = "INSERT INTO [DonnéesPaie]" & _
"( [Salarié]" & _
", Absence" & _
", [Début]" & _
", Fin" & _
", MoisPaie" & _
", [Ouvrés] )" & _
" SELECT [Evènements].[Salarié]" & _
", [Evènements].Absence" & _
", [Clôture]+1" & _
", [Evènements].Fin" & _
",#" & Month([Fin]) & "/1/" & Year([Fin]))) & "#" & _
", " & Work_Days([Début],[Fin],6) & _
" FROM [Evènements], Calendrier" & _
" WHERE [Début]<=[DébutPériode] And [Fin]>[Clôture];")

CurrentDb.Execute SQL

et dans la mesure ou tous tes champs sont issus de la même origine.

SQL = "INSERT INTO [DonnéesPaie]" & _
"( [Salarié]" & _
", Absence" & _
", [Début]" & _
", Fin" & _
", MoisPaie" & _
", [Ouvrés] )" & _
" SELECT [Salarié]" & _
", Absence" & _
", [Clôture]+1" & _
", Fin" & _
",#" & Month([Fin]) & "/1/" & Year([Fin]))) & "#" & _
", " & Work_Days([Début],[Fin],6) & _
" FROM [Evènements]" & _
" WHERE [Début]<=[DébutPériode] And [Fin]>[Clôture];")

CurrentDb.Execute SQL
Michel__D
Le #17704851
"Michel__D"

"Michel__D" > Bonjour,
>
> "Georges" news:
> > Bonsoir,
> >
> > encore un problème de date avec un requête SQL en VBA.
> > La date est bien au format US mais ça plante, alors que la même requête dans
> > l'onglet de la base fonctionne.
> >
> > Set MyQuery = MyDB.CreateQueryDef("", "INSERT INTO DonnéesPaie ( Salarié,
> > Absence, Début, Fin, MoisPaie, Ouvrés ) SELECT Evènements.Salarié,
> > Evènements.Absence, [Clôture]+1 AS Début, Evènements.Fin," &
> > DateUS(CDate("1/" & Month([Fin]) & "/" & Year([Fin]))) & " AS MoisPaie,
> > Work_Days([Début],[Fin],6) AS Ouvrés FROM Evènements, Calendrier WHERE
> > (((IIf([Début]<=[DébutPériode] And
> > [Fin]>[Clôture],[Calendrier]![MoisPaie],Null)) Is Not Null));")
> > MyQuery.Execute
> >
> > J'ai aussi tenté de la faire fonctionner sans mettre la date au format US
> > mais le résultat est identique.
> >
> > Dans une autre routine j'utilise aussi un format date US et c'est OK.
> >
> > Si je remplace la section " & DateUS(CDate("1/" & Month([Fin]) & "/" &
> > Year([Fin]))) & " par une date comme #01/01/2009# cela fonctionne. J'ai aussi
> > tenté #" & DateUS(CDate("1/" & Month([Fin]) & "/" & Year([Fin]))) & "# sans
> > plus de résultat.
> >
> > Où est ce que je me trompe ?
> >
> > Merci de votre éclairage.
>
> Essaye avec ceci
>
> SQL = "INSERT INTO [DonnéesPaie]" & _
> "( [Salarié]" & _
> ", Absence" & _
> ", [Début]" & _
> ", Fin" & _
> ", MoisPaie" & _
> ", [Ouvrés] )" & _
> " SELECT [Evènements.Salarié]" & _
> ", [Evènements.Absence]" & _
> ", [Clôture]+1" & _
> ", Evènements.Fin" & _
> ",#" & Month([Fin]) & "/1/" & Year([Fin]))) & "#" & _
> ", " & Work_Days([Début],[Fin],6) & _
> " FROM Evènements, Calendrier" & _
> " WHERE [Début]<=[DébutPériode] And [Fin]>[Clôture];")
>
> CurrentDb.Execute SQL
>
> PS:Je pense que [Calendrier] ne sert à rien à moins qu'il y ai une erreur dans
> l'énoncé du problème.



Décidément, encore quelques corrections.

SQL = "INSERT INTO [DonnéesPaie]" & _
"( [Salarié]" & _
", Absence" & _
", [Début]" & _
", Fin" & _
", MoisPaie" & _
", [Ouvrés] )" & _
" SELECT [Evènements].[Salarié]" & _
", [Evènements].Absence" & _
", [Clôture]+1" & _
", [Evènements].Fin" & _
",#" & Month([Fin]) & "/1/" & Year([Fin]) & "#" & _
", " & Work_Days([Début],[Fin],6) & _
" FROM [Evènements], Calendrier" & _
" WHERE [Début]<=[DébutPériode] And [Fin]>[Clôture];"

CurrentDb.Execute SQL

et dans la mesure ou les champs sont issus de [Evènements].

SQL = "INSERT INTO [DonnéesPaie]" & _
"( [Salarié]" & _
", Absence" & _
", [Début]" & _
", Fin" & _
", MoisPaie" & _
", [Ouvrés] )" & _
" SELECT [Salarié]" & _
", Absence" & _
", [Clôture]+1" & _
", Fin" & _
",#" & Month([Fin]) & "/1/" & Year([Fin]) & "#" & _
", " & Work_Days([Début],[Fin],6) & _
" FROM [Evènements]" & _
" WHERE [Début]<=[DébutPériode] And [Fin]>[Clôture];"

CurrentDb.Execute SQL
Georges
Le #17814431
Bonsoir,

merci de ton aide. Je regarde ce que cela donne et je te dis.

Cordialement
Georges

"Michel__D" a écrit :


"Michel__D" >
> "Michel__D" > > Bonjour,
> >
> > "Georges" > news:
> > > Bonsoir,
> > >
> > > encore un problème de date avec un requête SQL en VBA.
> > > La date est bien au format US mais ça plante, alors que la même requête dans
> > > l'onglet de la base fonctionne.
> > >
> > > Set MyQuery = MyDB.CreateQueryDef("", "INSERT INTO DonnéesPaie ( Salarié,
> > > Absence, Début, Fin, MoisPaie, Ouvrés ) SELECT Evènements.Salarié,
> > > Evènements.Absence, [Clôture]+1 AS Début, Evènements.Fin," &
> > > DateUS(CDate("1/" & Month([Fin]) & "/" & Year([Fin]))) & " AS MoisPaie,
> > > Work_Days([Début],[Fin],6) AS Ouvrés FROM Evènements, Calendrier WHERE
> > > (((IIf([Début]<=[DébutPériode] And
> > > [Fin]>[Clôture],[Calendrier]![MoisPaie],Null)) Is Not Null));")
> > > MyQuery.Execute
> > >
> > > J'ai aussi tenté de la faire fonctionner sans mettre la date au format US
> > > mais le résultat est identique.
> > >
> > > Dans une autre routine j'utilise aussi un format date US et c'est OK.
> > >
> > > Si je remplace la section " & DateUS(CDate("1/" & Month([Fin]) & "/" &
> > > Year([Fin]))) & " par une date comme #01/01/2009# cela fonctionne. J'ai aussi
> > > tenté #" & DateUS(CDate("1/" & Month([Fin]) & "/" & Year([Fin]))) & "# sans
> > > plus de résultat.
> > >
> > > Où est ce que je me trompe ?
> > >
> > > Merci de votre éclairage.
> >
> > Essaye avec ceci
> >
> > SQL = "INSERT INTO [DonnéesPaie]" & _
> > "( [Salarié]" & _
> > ", Absence" & _
> > ", [Début]" & _
> > ", Fin" & _
> > ", MoisPaie" & _
> > ", [Ouvrés] )" & _
> > " SELECT [Evènements.Salarié]" & _
> > ", [Evènements.Absence]" & _
> > ", [Clôture]+1" & _
> > ", Evènements.Fin" & _
> > ",#" & Month([Fin]) & "/1/" & Year([Fin]))) & "#" & _
> > ", " & Work_Days([Début],[Fin],6) & _
> > " FROM Evènements, Calendrier" & _
> > " WHERE [Début]<=[DébutPériode] And [Fin]>[Clôture];")
> >
> > CurrentDb.Execute SQL
> >
> > PS:Je pense que [Calendrier] ne sert à rien à moins qu'il y ai une erreur dans
> > l'énoncé du problème.

Décidément, encore quelques corrections.

SQL = "INSERT INTO [DonnéesPaie]" & _
"( [Salarié]" & _
", Absence" & _
", [Début]" & _
", Fin" & _
", MoisPaie" & _
", [Ouvrés] )" & _
" SELECT [Evènements].[Salarié]" & _
", [Evènements].Absence" & _
", [Clôture]+1" & _
", [Evènements].Fin" & _
",#" & Month([Fin]) & "/1/" & Year([Fin]) & "#" & _
", " & Work_Days([Début],[Fin],6) & _
" FROM [Evènements], Calendrier" & _
" WHERE [Début]<=[DébutPériode] And [Fin]>[Clôture];"

CurrentDb.Execute SQL

et dans la mesure ou les champs sont issus de [Evènements].

SQL = "INSERT INTO [DonnéesPaie]" & _
"( [Salarié]" & _
", Absence" & _
", [Début]" & _
", Fin" & _
", MoisPaie" & _
", [Ouvrés] )" & _
" SELECT [Salarié]" & _
", Absence" & _
", [Clôture]+1" & _
", Fin" & _
",#" & Month([Fin]) & "/1/" & Year([Fin]) & "#" & _
", " & Work_Days([Début],[Fin],6) & _
" FROM [Evènements]" & _
" WHERE [Début]<=[DébutPériode] And [Fin]>[Clôture];"

CurrentDb.Execute SQL




Publicité
Poster une réponse
Anonyme