WJ9
Messages postés20Date d'inscriptionlundi 20 août 2012StatutMembreDernière intervention13 octobre 2013
-
3 oct. 2013 à 02:11
siaka7
Messages postés1Date d'inscriptionsamedi 23 janvier 2016StatutMembreDernière intervention23 janvier 2016
-
23 janv. 2016 à 23:22
bonjour tous le monde
debutant en vba je suis a la recherche d'un bout de code qui me permetrait de declancher un msgbox tout les 7 jours a une heure bien precise.
merci d'avance a vous qui me lirez
jordane45
Messages postés38108Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention27 mars 2024344 3 oct. 2013 à 02:22
Bonjour,
Si ta question concerne le VBA, tu n'as pas posté dans la bonne section du forum.
Ensuite, pour répondre à votre question, je vous inviterai à regarder du côte de : Application.OnTime
Par contre, si vous souhaitez declancher un msgbox tout les 7 jours a une heure bien precise, il faudra bien entendu que votre fichier contenant la macro soit ouvert à cette période là...
=> Si vous ne souhaitez réellement n'avoir qu'une MSGBOX, je vous inviterai plutôt à le faire en VB Script, puis d'appeler ce script depuis le planificateur de taches de Windows..
'msgbox en vbs..
msgbox "coucou"
WJ9
Messages postés20Date d'inscriptionlundi 20 août 2012StatutMembreDernière intervention13 octobre 2013 3 oct. 2013 à 04:47
Bonjour jordane45
merci deja de l'interet porté a ma question.
pour plus de precision en fait se que je cherche a faire s'est tous simplement declancher un msgbox sous access tous les 7 jours a une heure precise
j'ai une table ouverture A avec 3 champ (Id=numauto / heure execution=heure / derniere execution=date heure
j'ai un formulaire ouverture A dans lequel j'ai glisser dans "sur minuterie" une procedure evenementiel---->
Private Sub Form_Timer()
Dim varHeureExec As Variant
Dim varDerniereExec As Variant
' Lire l'heure d'exécution
varHeureExec = DLookup("[heure execution]", "[ouverture A]")
If IsNull(varHeureExec) Then Exit Sub
' Lire l'heure de dernière exécution
varDerniereExec = DLookup("[derniere execution]", "[ouverture A]")
If IsNull(varDerniereExec) Then varDerniereExec = #1/1/1900 12:00:00 PM#
' Si une exécution a eu lieu aujourd'hui, annuler le processus
If Format(varDerniereExec, "dd/mm/yyyy") = Format(Date, "dd/mm/yyyy") Then Exit Sub
'si la date est superieur de 7 jours alors execute message
If DateDiff("d", Date, a) >= 7 Then
MsgBox "OUVERTURE A !!!", vbInformation
' Mettre à jour la date d'exécution
CurrentDb.Execute "UPDATE [ouverture A] SET [derniere execution]=#" & _
Format(Now, "mm/dd/yyyy hh:nn:ss") & "#"
End If
End Sub
mais sa fonctionne pas :'(
WJ9
Messages postés20Date d'inscriptionlundi 20 août 2012StatutMembreDernière intervention13 octobre 2013 3 oct. 2013 à 03:26
Bonjour jordane45
merci deja de l'interet porté a ma question.
pour plus de precision en fait se que je cherche a faire s'est tous simplement declancher un msgbox sous access tous les 7 jours a une heure precise
j'ai une table ouverture A avec 3 champ (Id=numauto / heure execution=heure / derniere execution=date heure
j'ai un formulaire ouverture A dans lequel j'ai glisser dans "sur minuterie" une procedure evenementiel---->
Private Sub Form_Timer()
Dim varHeureExec As Variant
Dim varDerniereExec As Variant
' Lire l'heure d'exécution
varHeureExec = DLookup("[heure execution]", "[ouverture A]")
If IsNull(varHeureExec) Then Exit Sub
' Lire l'heure de dernière exécution
varDerniereExec = DLookup("[derniere execution]", "[ouverture A]")
If IsNull(varDerniereExec) Then varDerniereExec = #1/1/1900 12:00:00 PM#
' Si une exécution a eu lieu aujourd'hui, annuler le processus
If Format(varDerniereExec, "dd/mm/yyyy") = Format(Date, "dd/mm/yyyy") Then Exit Sub
'si la date est superieur de 7 jours alors execute message
If DateDiff("d", Date, a) >= 7 Then
MsgBox "OUVERTURE A !!!", vbInformation
' Mettre à jour la date d'exécution
CurrentDb.Execute "UPDATE [ouverture A] SET [derniere execution]=#" & _
Format(Now, "mm/dd/yyyy hh:nn:ss") & "#"
End If
End Sub
jordane45
Messages postés38108Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention27 mars 2024344 3 oct. 2013 à 08:01
Déroulez la macro en mode pas à pas et verifiez ce qu'il se passe et ce que valent vos variables
Surtout pour le dernier datedif.
WJ9
Messages postés20Date d'inscriptionlundi 20 août 2012StatutMembreDernière intervention13 octobre 2013 3 oct. 2013 à 15:45
re bonjour jordane45
se n'est pas une macro mais une procedure evenementiel dans la section minuterie de l'user form
en faite le bout de code que je cherche a faire pourais de resumer a sa :
si la date du champ "derniere execution" (jj/mm/aaaa_h:m:s) est depassee de 7 jours alors....sinon rien
donc je supose que sa dois ressembler a un truc comme sa
if DateDiff (derniere execution depasser de 7 jours) then
msgbox " coucou"
else
rien
end if
end sub
a l'aide...!! :)
jordane45
Messages postés38108Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention27 mars 2024344 3 oct. 2013 à 17:27
dans cette ligne :
If DateDiff("d", Date, a) >= 7 Then
Que vaut 'a' ?
WJ9
Messages postés20Date d'inscriptionlundi 20 août 2012StatutMembreDernière intervention13 octobre 2013 3 oct. 2013 à 18:27
je me suis basé sur ce bout de code
sous VB6 il existe une fonction qui s'appelle: DateDiff
If DateDiff("d", Date, a) = -30 Then MsgBox ("Alerte")
'd' pour 'day' le nombre de jours d'écart entre les 2 dates (içi 30)
('m' pour 'mounth' , 'y' pour year et d'autres paramètres)
'a' est une string contenant la date à tester que tu as dans ta table ACCESS
3 oct. 2013 à 04:47
merci deja de l'interet porté a ma question.
pour plus de precision en fait se que je cherche a faire s'est tous simplement declancher un msgbox sous access tous les 7 jours a une heure precise
j'ai une table ouverture A avec 3 champ (Id=numauto / heure execution=heure / derniere execution=date heure
j'ai un formulaire ouverture A dans lequel j'ai glisser dans "sur minuterie" une procedure evenementiel---->
Private Sub Form_Timer()
Dim varHeureExec As Variant
Dim varDerniereExec As Variant
' Lire l'heure d'exécution
varHeureExec = DLookup("[heure execution]", "[ouverture A]")
If IsNull(varHeureExec) Then Exit Sub
' Lire l'heure de dernière exécution
varDerniereExec = DLookup("[derniere execution]", "[ouverture A]")
If IsNull(varDerniereExec) Then varDerniereExec = #1/1/1900 12:00:00 PM#
' Si une exécution a eu lieu aujourd'hui, annuler le processus
If Format(varDerniereExec, "dd/mm/yyyy") = Format(Date, "dd/mm/yyyy") Then Exit Sub
'si la date est superieur de 7 jours alors execute message
If DateDiff("d", Date, a) >= 7 Then
MsgBox "OUVERTURE A !!!", vbInformation
' Mettre à jour la date d'exécution
CurrentDb.Execute "UPDATE [ouverture A] SET [derniere execution]=#" & _
Format(Now, "mm/dd/yyyy hh:nn:ss") & "#"
End If
End Sub
mais sa fonctionne pas :'(