Comparer deux fois
label1
affiche la dernière date de l'opération/temps dont je obtenir à partir d'une base de données via une requête. label2
est la date/heure du système. J'ai un timer qui exécute une commande de bouton après avoir qui je veux vérifier si la date/heure dans label1 est plus petit que 5 minutes. Si oui, alors je veux montrer un massage.
Mais je ne sais pas pourquoi mon code ne s'est pas effectuer cette fonction.
Toute aide sera très appréciée.
Private Sub Command1_Click()
Dim date1 As Date
Dim date2 As Date
date1 = Format(Now, "yyyy/mm/dd hh:mm:ss")
date2 = Format(label1, "yyyy/mm/dd hh:mm:ss")
If DateDiff("n", date1, date2) < 2 Then
MsgBox ("Not Vending")
End If
End Sub
J'ai aussi essayé:
Private Sub Command1_Click()
Dim date1 As Date
Dim label1 As Date
date1 = Format(Now, "yyyy/mm/dd hh:mm:ss")
date2 = label1
If DateDiff("m", Now, date1) > DateDiff("m", Now, label1) Then
MsgBox ("Not Vending")
End If
End Sub
Ainsi que:
Private Sub Command1_Click()
If DateDiff("n", Now, label1) > 5 Then
MsgBox ("Not Vending")
End If
End Sub
- D'où vient label1 viennent? Pourquoi êtes-vous une date de conversion de types de cordes pour aller appeler DateDiff sur les cordes (qui la force de convertir les chaînes de caractères de retour pour les Dates)?? En nous donnant de multiples versions de Command1_Click n'est pas utile, nous montrent juste un qui est plus proche de ce que vous pensez devrait fonctionner.
Vous devez vous connecter pour publier un commentaire.
Si la date de sorti de la DB est plus tôt que Maintenant, DateDiff retournera toujours un nombre négatif si vous passez Maintenant en tant que second paramètre. On dirait que vous êtes la vérification de l'écoulement du temps, donc je vais assumer les dates en DB sera toujours avant Maintenant. Vous avez besoin de changer l'ordre de Maintenant et la date à laquelle il est comparé (
DateDiff("n", date1, Now)
au lieu deDateDiff("n", Now, date1)
.Une autre façon sans l'aide de la
DateDiff
-la fonction calcul direct avec leDate
-variables - car sous le capot, ce sont en fait desDoubles
.Si vous voulez vérifier la différence de temps, vous pouvez également utiliser
Où
Abs(date1 - Now)
retourne la différence de temps queDate
valeurBtw.
date1 = Format(Now, "yyyy/mm/dd hh:mm:ss")
ne fait pas de sens. DepuisNow
renvoie uneDate
-valeur,Format
qui convertitDate
-valeur dans uneString
et en l'assignant àdate1
qui convertitString
retour à unDate
valeur ùsing le système local des paramètres pour les formats de date, ce qui signifie que le programme va se comporter de manière différente sur les différents systèmes.