Update avec valeur récupérée dans InputBox qui ne met pas à jour un champ date
4 réponses
Bear76
Bonsoir à la communauté,
J'ai une requête update en vba qui n'exécute pas correctement la mise à
jour d'un champ date via une valeur récupérée dans une InputBox.
Quelque soit la date saisie, le résultat dans ma table est 31/12/1899
Private Sub CaptureDate()
Dim SqlStr As String
Dim Datestr As String
Dim DateVal As Date
StrDate = Eval("InputBox(""Saisir la date de transfert au format
jj/mm/aaaa"",""Attention !"",date())")
If Not IsDate(DateStr) Then
MsgBox "La date saisie est incorrecte", vbCritical
Else
DateVal = DateValue(DateStr)
DateStr = Format(DateVal, "dd/mm/yyyy")
SqlStr = "UPDATE T01 SET T01_DATE =" & DateStr
CurrentDb.Execute (SqlStr)
End If
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
db
Bear76 a écrit :
Bonsoir à la communauté,
J'ai une requête update en vba qui n'exécute pas correctement la mise à jour d'un champ date via une valeur récupérée dans une InputBox. Quelque soit la date saisie, le résultat dans ma table est 31/12/1899
Private Sub CaptureDate()
Dim SqlStr As String Dim Datestr As String Dim DateVal As Date
StrDate = Eval("InputBox(""Saisir la date de transfert au format jj/mm/aaaa"",""Attention !"",date())") If Not IsDate(DateStr) Then MsgBox "La date saisie est incorrecte", vbCritical Else DateVal = DateValue(DateStr) DateStr = Format(DateVal, "dd/mm/yyyy") SqlStr = "UPDATE T01 SET T01_DATE =" & DateStr CurrentDb.Execute (SqlStr) End If End Sub
Si quelqu'un a une idée. Merci d'avance.
Peut-être en remplaçant : StrDate = Eval("InputBox(""Saisir la date de transfert au format > jj/mm/aaaa"",""Attention !"",date())") par DateStr = Eval("InputBox(""Saisir la date de transfert au format > jj/mm/aaaa"",""Attention !"",date())")
et, le cas échéant, en ajoutant la ligne : Option explicit au début du module
db
Bear76 a écrit :
Bonsoir à la communauté,
J'ai une requête update en vba qui n'exécute pas correctement la mise à
jour d'un champ date via une valeur récupérée dans une InputBox. Quelque
soit la date saisie, le résultat dans ma table est 31/12/1899
Private Sub CaptureDate()
Dim SqlStr As String
Dim Datestr As String
Dim DateVal As Date
StrDate = Eval("InputBox(""Saisir la date de transfert au format
jj/mm/aaaa"",""Attention !"",date())")
If Not IsDate(DateStr) Then
MsgBox "La date saisie est incorrecte", vbCritical
Else
DateVal = DateValue(DateStr)
DateStr = Format(DateVal, "dd/mm/yyyy")
SqlStr = "UPDATE T01 SET T01_DATE =" & DateStr
CurrentDb.Execute (SqlStr)
End If
End Sub
Si quelqu'un a une idée.
Merci d'avance.
Peut-être en remplaçant :
StrDate = Eval("InputBox(""Saisir la date de transfert au format >
jj/mm/aaaa"",""Attention !"",date())")
par
DateStr = Eval("InputBox(""Saisir la date de transfert au format >
jj/mm/aaaa"",""Attention !"",date())")
et, le cas échéant, en ajoutant la ligne :
Option explicit
au début du module
J'ai une requête update en vba qui n'exécute pas correctement la mise à jour d'un champ date via une valeur récupérée dans une InputBox. Quelque soit la date saisie, le résultat dans ma table est 31/12/1899
Private Sub CaptureDate()
Dim SqlStr As String Dim Datestr As String Dim DateVal As Date
StrDate = Eval("InputBox(""Saisir la date de transfert au format jj/mm/aaaa"",""Attention !"",date())") If Not IsDate(DateStr) Then MsgBox "La date saisie est incorrecte", vbCritical Else DateVal = DateValue(DateStr) DateStr = Format(DateVal, "dd/mm/yyyy") SqlStr = "UPDATE T01 SET T01_DATE =" & DateStr CurrentDb.Execute (SqlStr) End If End Sub
Si quelqu'un a une idée. Merci d'avance.
Peut-être en remplaçant : StrDate = Eval("InputBox(""Saisir la date de transfert au format > jj/mm/aaaa"",""Attention !"",date())") par DateStr = Eval("InputBox(""Saisir la date de transfert au format > jj/mm/aaaa"",""Attention !"",date())")
et, le cas échéant, en ajoutant la ligne : Option explicit au début du module
db
Bear76
db a exposé le 17/10/2009 :
Bear76 a écrit :
Bonsoir à la communauté,
J'ai une requête update en vba qui n'exécute pas correctement la mise à jour d'un champ date via une valeur récupérée dans une InputBox. Quelque soit la date saisie, le résultat dans ma table est 31/12/1899
Private Sub CaptureDate()
Dim SqlStr As String Dim Datestr As String Dim DateVal As Date
StrDate = Eval("InputBox(""Saisir la date de transfert au format jj/mm/aaaa"",""Attention !"",date())") If Not IsDate(DateStr) Then MsgBox "La date saisie est incorrecte", vbCritical Else DateVal = DateValue(DateStr) DateStr = Format(DateVal, "dd/mm/yyyy") SqlStr = "UPDATE T01 SET T01_DATE =" & DateStr CurrentDb.Execute (SqlStr) End If End Sub
Si quelqu'un a une idée. Merci d'avance.
Peut-être en remplaçant : StrDate = Eval("InputBox(""Saisir la date de transfert au format > jj/mm/aaaa"",""Attention !"",date())") par DateStr = Eval("InputBox(""Saisir la date de transfert au format > jj/mm/aaaa"",""Attention !"",date())")
et, le cas échéant, en ajoutant la ligne : Option explicit au début du module
db
Bonjour db, En fait, j'ai placé plusieurs debug.print dans la procédure pour m'assurer que cela "fonctionne". ... Else DateVal = DateValue(DateStr) DateStr = Format(DateVal, "dd/mm/yyyy") debug.print DateStr End If End Sub me retourne bien une date au format jj/mm/aaaa, et en le (debug.print SqlStr) plaçant après SqlStr = "UPDATE ... il me retourne bien la date aussi. Donc là ...
Le champ de ma table est bien de type Date/Heure au format Date, abrégé et je suis sous AC2007.
Si vous avez une autre idée, je suis preneur. Bon dimanche.
db a exposé le 17/10/2009 :
Bear76 a écrit :
Bonsoir à la communauté,
J'ai une requête update en vba qui n'exécute pas correctement la mise à
jour d'un champ date via une valeur récupérée dans une InputBox. Quelque
soit la date saisie, le résultat dans ma table est 31/12/1899
Private Sub CaptureDate()
Dim SqlStr As String
Dim Datestr As String
Dim DateVal As Date
StrDate = Eval("InputBox(""Saisir la date de transfert au format
jj/mm/aaaa"",""Attention !"",date())")
If Not IsDate(DateStr) Then
MsgBox "La date saisie est incorrecte", vbCritical
Else
DateVal = DateValue(DateStr)
DateStr = Format(DateVal, "dd/mm/yyyy")
SqlStr = "UPDATE T01 SET T01_DATE =" & DateStr
CurrentDb.Execute (SqlStr)
End If
End Sub
Si quelqu'un a une idée.
Merci d'avance.
Peut-être en remplaçant :
StrDate = Eval("InputBox(""Saisir la date de transfert au format >
jj/mm/aaaa"",""Attention !"",date())")
par
DateStr = Eval("InputBox(""Saisir la date de transfert au format >
jj/mm/aaaa"",""Attention !"",date())")
et, le cas échéant, en ajoutant la ligne :
Option explicit
au début du module
db
Bonjour db,
En fait, j'ai placé plusieurs debug.print dans la procédure pour
m'assurer que cela "fonctionne".
...
Else
DateVal = DateValue(DateStr)
DateStr = Format(DateVal, "dd/mm/yyyy")
debug.print DateStr
End If
End Sub
me retourne bien une date au format jj/mm/aaaa, et en le (debug.print
SqlStr) plaçant après SqlStr = "UPDATE ... il me retourne bien la date
aussi. Donc là ...
Le champ de ma table est bien de type Date/Heure au format Date, abrégé
et je suis sous AC2007.
Si vous avez une autre idée, je suis preneur.
Bon dimanche.
J'ai une requête update en vba qui n'exécute pas correctement la mise à jour d'un champ date via une valeur récupérée dans une InputBox. Quelque soit la date saisie, le résultat dans ma table est 31/12/1899
Private Sub CaptureDate()
Dim SqlStr As String Dim Datestr As String Dim DateVal As Date
StrDate = Eval("InputBox(""Saisir la date de transfert au format jj/mm/aaaa"",""Attention !"",date())") If Not IsDate(DateStr) Then MsgBox "La date saisie est incorrecte", vbCritical Else DateVal = DateValue(DateStr) DateStr = Format(DateVal, "dd/mm/yyyy") SqlStr = "UPDATE T01 SET T01_DATE =" & DateStr CurrentDb.Execute (SqlStr) End If End Sub
Si quelqu'un a une idée. Merci d'avance.
Peut-être en remplaçant : StrDate = Eval("InputBox(""Saisir la date de transfert au format > jj/mm/aaaa"",""Attention !"",date())") par DateStr = Eval("InputBox(""Saisir la date de transfert au format > jj/mm/aaaa"",""Attention !"",date())")
et, le cas échéant, en ajoutant la ligne : Option explicit au début du module
db
Bonjour db, En fait, j'ai placé plusieurs debug.print dans la procédure pour m'assurer que cela "fonctionne". ... Else DateVal = DateValue(DateStr) DateStr = Format(DateVal, "dd/mm/yyyy") debug.print DateStr End If End Sub me retourne bien une date au format jj/mm/aaaa, et en le (debug.print SqlStr) plaçant après SqlStr = "UPDATE ... il me retourne bien la date aussi. Donc là ...
Le champ de ma table est bien de type Date/Heure au format Date, abrégé et je suis sous AC2007.
Si vous avez une autre idée, je suis preneur. Bon dimanche.
db
Bear76 a écrit :
db a exposé le 17/10/2009 :
StrDate = Eval("InputBox(""Saisir la date de transfert au format jj/mm/aaaa"",""Attention !"",date())") If Not IsDate(DateStr) Then MsgBox "La date saisie est incorrecte", vbCritical Else DateVal = DateValue(DateStr) DateStr = Format(DateVal, "dd/mm/yyyy") SqlStr = "UPDATE T01 SET T01_DATE =" & DateStr CurrentDb.Execute (SqlStr) End If End Sub
Peut-être en remplaçant : StrDate = Eval("InputBox(""Saisir la date de transfert au format > jj/mm/aaaa"",""Attention !"",date())") par DateStr = Eval("InputBox(""Saisir la date de transfert au format > jj/mm/aaaa"",""Attention !"",date())")
et, le cas échéant, en ajoutant la ligne : Option explicit au début du module
db
Bonjour db, En fait, j'ai placé plusieurs debug.print dans la procédure pour m'assurer que cela "fonctionne". .... Else DateVal = DateValue(DateStr) DateStr = Format(DateVal, "dd/mm/yyyy") debug.print DateStr End If End Sub me retourne bien une date au format jj/mm/aaaa, et en le (debug.print SqlStr) plaçant après SqlStr = "UPDATE ... il me retourne bien la date aussi. Donc là ...
Et ça retourne bien la date saisie dans StrDate ? Alors là, c'est que l'informatique est encore plus magique que je croyais :-)
Sinon, DateVal ne me semble pas servir à grand'chose. Je crois que j'écriras :
DateStr = Format(DateStr, "mm/dd/yyyy") 'Format américain SqlStr = "UPDATE T01 SET T01_DATE = #" & DateStr & # 'Date encadrée par des #
Et, pour mieux voir le message d'erreur de l'instruction update :
au lieu de CurrentDb.Execute (SqlStr) mettre : Docmd.RunSql SqlStr
db
Bear76 a écrit :
db a exposé le 17/10/2009 :
StrDate = Eval("InputBox(""Saisir la date de transfert au format
jj/mm/aaaa"",""Attention !"",date())")
If Not IsDate(DateStr) Then
MsgBox "La date saisie est incorrecte", vbCritical
Else
DateVal = DateValue(DateStr)
DateStr = Format(DateVal, "dd/mm/yyyy")
SqlStr = "UPDATE T01 SET T01_DATE =" & DateStr
CurrentDb.Execute (SqlStr)
End If
End Sub
Peut-être en remplaçant :
StrDate = Eval("InputBox(""Saisir la date de transfert au format >
jj/mm/aaaa"",""Attention !"",date())")
par
DateStr = Eval("InputBox(""Saisir la date de transfert au format >
jj/mm/aaaa"",""Attention !"",date())")
et, le cas échéant, en ajoutant la ligne :
Option explicit
au début du module
db
Bonjour db,
En fait, j'ai placé plusieurs debug.print dans la procédure pour
m'assurer que cela "fonctionne".
....
Else
DateVal = DateValue(DateStr)
DateStr = Format(DateVal, "dd/mm/yyyy")
debug.print DateStr
End If
End Sub
me retourne bien une date au format jj/mm/aaaa, et en le (debug.print
SqlStr) plaçant après SqlStr = "UPDATE ... il me retourne bien la date
aussi. Donc là ...
Et ça retourne bien la date saisie dans StrDate ? Alors là, c'est que
l'informatique est encore plus magique que je croyais :-)
Sinon, DateVal ne me semble pas servir à grand'chose. Je crois que
j'écriras :
DateStr = Format(DateStr, "mm/dd/yyyy") 'Format américain
SqlStr = "UPDATE T01 SET T01_DATE = #" & DateStr & # 'Date encadrée
par des #
Et, pour mieux voir le message d'erreur de l'instruction update :
au lieu de CurrentDb.Execute (SqlStr)
mettre :
Docmd.RunSql SqlStr
StrDate = Eval("InputBox(""Saisir la date de transfert au format jj/mm/aaaa"",""Attention !"",date())") If Not IsDate(DateStr) Then MsgBox "La date saisie est incorrecte", vbCritical Else DateVal = DateValue(DateStr) DateStr = Format(DateVal, "dd/mm/yyyy") SqlStr = "UPDATE T01 SET T01_DATE =" & DateStr CurrentDb.Execute (SqlStr) End If End Sub
Peut-être en remplaçant : StrDate = Eval("InputBox(""Saisir la date de transfert au format > jj/mm/aaaa"",""Attention !"",date())") par DateStr = Eval("InputBox(""Saisir la date de transfert au format > jj/mm/aaaa"",""Attention !"",date())")
et, le cas échéant, en ajoutant la ligne : Option explicit au début du module
db
Bonjour db, En fait, j'ai placé plusieurs debug.print dans la procédure pour m'assurer que cela "fonctionne". .... Else DateVal = DateValue(DateStr) DateStr = Format(DateVal, "dd/mm/yyyy") debug.print DateStr End If End Sub me retourne bien une date au format jj/mm/aaaa, et en le (debug.print SqlStr) plaçant après SqlStr = "UPDATE ... il me retourne bien la date aussi. Donc là ...
Et ça retourne bien la date saisie dans StrDate ? Alors là, c'est que l'informatique est encore plus magique que je croyais :-)
Sinon, DateVal ne me semble pas servir à grand'chose. Je crois que j'écriras :
DateStr = Format(DateStr, "mm/dd/yyyy") 'Format américain SqlStr = "UPDATE T01 SET T01_DATE = #" & DateStr & # 'Date encadrée par des #
Et, pour mieux voir le message d'erreur de l'instruction update :
au lieu de CurrentDb.Execute (SqlStr) mettre : Docmd.RunSql SqlStr
db
Bear76
db a utilisé son clavier pour écrire :
Bear76 a écrit :
db a exposé le 17/10/2009 :
StrDate = Eval("InputBox(""Saisir la date de transfert au format jj/mm/aaaa"",""Attention !"",date())") If Not IsDate(DateStr) Then MsgBox "La date saisie est incorrecte", vbCritical Else DateVal = DateValue(DateStr) DateStr = Format(DateVal, "dd/mm/yyyy") SqlStr = "UPDATE T01 SET T01_DATE =" & DateStr CurrentDb.Execute (SqlStr) End If End Sub
Peut-être en remplaçant : StrDate = Eval("InputBox(""Saisir la date de transfert au format > jj/mm/aaaa"",""Attention !"",date())") par DateStr = Eval("InputBox(""Saisir la date de transfert au format > jj/mm/aaaa"",""Attention !"",date())")
et, le cas échéant, en ajoutant la ligne : Option explicit au début du module
db
Bonjour db, En fait, j'ai placé plusieurs debug.print dans la procédure pour m'assurer que cela "fonctionne". .... Else DateVal = DateValue(DateStr) DateStr = Format(DateVal, "dd/mm/yyyy") debug.print DateStr End If End Sub me retourne bien une date au format jj/mm/aaaa, et en le (debug.print SqlStr) plaçant après SqlStr = "UPDATE ... il me retourne bien la date aussi. Donc là ...
Et ça retourne bien la date saisie dans StrDate ? Alors là, c'est que l'informatique est encore plus magique que je croyais :-)
Sinon, DateVal ne me semble pas servir à grand'chose. Je crois que j'écriras :
DateStr = Format(DateStr, "mm/dd/yyyy") 'Format américain SqlStr = "UPDATE T01 SET T01_DATE = #" & DateStr & # 'Date encadrée par des #
Et, pour mieux voir le message d'erreur de l'instruction update :
au lieu de CurrentDb.Execute (SqlStr) mettre : Docmd.RunSql SqlStr
db
Bonjour db, Effectivement, il faut borner les dates avec des # (=#" & StrDate & "#") Merci beaucoup.
db a utilisé son clavier pour écrire :
Bear76 a écrit :
db a exposé le 17/10/2009 :
StrDate = Eval("InputBox(""Saisir la date de transfert au format
jj/mm/aaaa"",""Attention !"",date())")
If Not IsDate(DateStr) Then
MsgBox "La date saisie est incorrecte", vbCritical
Else
DateVal = DateValue(DateStr)
DateStr = Format(DateVal, "dd/mm/yyyy")
SqlStr = "UPDATE T01 SET T01_DATE =" & DateStr
CurrentDb.Execute (SqlStr)
End If
End Sub
Peut-être en remplaçant :
StrDate = Eval("InputBox(""Saisir la date de transfert au format >
jj/mm/aaaa"",""Attention !"",date())")
par
DateStr = Eval("InputBox(""Saisir la date de transfert au format >
jj/mm/aaaa"",""Attention !"",date())")
et, le cas échéant, en ajoutant la ligne :
Option explicit
au début du module
db
Bonjour db,
En fait, j'ai placé plusieurs debug.print dans la procédure pour m'assurer
que cela "fonctionne".
....
Else
DateVal = DateValue(DateStr)
DateStr = Format(DateVal, "dd/mm/yyyy")
debug.print DateStr
End If
End Sub
me retourne bien une date au format jj/mm/aaaa, et en le (debug.print
SqlStr) plaçant après SqlStr = "UPDATE ... il me retourne bien la date
aussi. Donc là ...
Et ça retourne bien la date saisie dans StrDate ? Alors là, c'est que
l'informatique est encore plus magique que je croyais :-)
Sinon, DateVal ne me semble pas servir à grand'chose. Je crois que j'écriras
:
DateStr = Format(DateStr, "mm/dd/yyyy") 'Format américain
SqlStr = "UPDATE T01 SET T01_DATE = #" & DateStr & # 'Date encadrée par
des #
Et, pour mieux voir le message d'erreur de l'instruction update :
au lieu de CurrentDb.Execute (SqlStr)
mettre :
Docmd.RunSql SqlStr
db
Bonjour db,
Effectivement, il faut borner les dates avec des # (=#" & StrDate &
"#")
Merci beaucoup.
StrDate = Eval("InputBox(""Saisir la date de transfert au format jj/mm/aaaa"",""Attention !"",date())") If Not IsDate(DateStr) Then MsgBox "La date saisie est incorrecte", vbCritical Else DateVal = DateValue(DateStr) DateStr = Format(DateVal, "dd/mm/yyyy") SqlStr = "UPDATE T01 SET T01_DATE =" & DateStr CurrentDb.Execute (SqlStr) End If End Sub
Peut-être en remplaçant : StrDate = Eval("InputBox(""Saisir la date de transfert au format > jj/mm/aaaa"",""Attention !"",date())") par DateStr = Eval("InputBox(""Saisir la date de transfert au format > jj/mm/aaaa"",""Attention !"",date())")
et, le cas échéant, en ajoutant la ligne : Option explicit au début du module
db
Bonjour db, En fait, j'ai placé plusieurs debug.print dans la procédure pour m'assurer que cela "fonctionne". .... Else DateVal = DateValue(DateStr) DateStr = Format(DateVal, "dd/mm/yyyy") debug.print DateStr End If End Sub me retourne bien une date au format jj/mm/aaaa, et en le (debug.print SqlStr) plaçant après SqlStr = "UPDATE ... il me retourne bien la date aussi. Donc là ...
Et ça retourne bien la date saisie dans StrDate ? Alors là, c'est que l'informatique est encore plus magique que je croyais :-)
Sinon, DateVal ne me semble pas servir à grand'chose. Je crois que j'écriras :
DateStr = Format(DateStr, "mm/dd/yyyy") 'Format américain SqlStr = "UPDATE T01 SET T01_DATE = #" & DateStr & # 'Date encadrée par des #
Et, pour mieux voir le message d'erreur de l'instruction update :
au lieu de CurrentDb.Execute (SqlStr) mettre : Docmd.RunSql SqlStr
db
Bonjour db, Effectivement, il faut borner les dates avec des # (=#" & StrDate & "#") Merci beaucoup.