اين الخطأ بالله عليكم
Private Sub Command1_Click()
Dim noww As Date
noww = Format$(#1/30/2008#, "mm-dd-yyyy")
If Format$(Date, "mm-dd-yyyy") > noww Then
MsgBox (noww & " > " & Date)
End If
End Sub
اين الخطأ بالله عليكم
Private Sub Command1_Click()
Dim noww As Date
noww = Format$(#1/30/2008#, "mm-dd-yyyy")
If Format$(Date, "mm-dd-yyyy") > noww Then
MsgBox (noww & " > " & Date)
End If
End Sub
Private Sub Command1_Click()
Dim noww As Date
noww = Format$(#1/30/2008#, "mm-dd-yyyy")
If DateDiff("d", Format$(Date, "mm-dd-yyyy"), noww) Then
MsgBox (noww & " > " & Date)
End If
End Subلا يجوز علي حد علمي استخدام معاملات < , > علي قيم تاريخ
لإن معاملات المقارنة ستقارن قيم عددية ..
أي ستكون 30 أكبر من 1 دائما مع اختلاف الشهر والسنة للاثنين
ولذلك يفضل استخدام دوال التعامل مع التاريخ .. مثل دالة DateDiff لحساب الفرق بين تاريخين وإرجاعه بالأيام d
تم تعديل هذه المشاركة بواسطة Pharaonic_Guy في 6 يناير 2008 في 16:23
الاخ Pharaonic_Guy اكون شاكر لو مثال باستخدام هذه الدالة يحل محل الكود السابق اكون شاكرولن انسى لك هذا المعروف بارك الله فيك لاننى لم اتعامل مع هذه الدالة من قبل وهى DateDiff
اخى الكريم بفضل الله وبفضلك تم حل المشكلة التى كانت تؤرقنى منذ اشهر بسبب هذا التعليق
"لا يجوز علي حد علمي استخدام معاملات < , > علي قيم تاريخ"
عملية المقارنة لم اكن ادرى انها غير ممكنة اشكرك جدا جدا جزاك الله خير
لقد قمت بوضع الكود لك علي استخدام هذه الدالة .. يبدو أنك لم تنتبه إليه ..
المهم إن المشكلة قد حلت ..
مقارنة التاريخ تجوز باستخدام معاملات الاصغر والاكبر
لكن المشكلة في التاريخ هو اعتماده على شكل التاريخ في الجهاز اي في الاعدادت الاقليمية
و Format$(Date, "mm-dd-yyyy") هذه تعني تاريخ اليوم اي السادس من كانون الاول وليس الاول من حزيران
وكان يكفي ان تكتب
if date >noww then
شكرا اخى TareqVB ولى عدة تساؤالات
هل هناك فرق بين Format$(Date, "mm-dd-yyyy")
و
Format$(Date, "m-d-yyyy")
هل المقارنات بين تاريخين مباشرة بدونFormat$
تعطى نتائج صحيحة دائما
مثل
if #1/30/2008# < #12/3/2008# then
دائما سببت لى مشاكل كثيرة جدا جدا وحتى بعد استعمال Format$ كما فى مثالى الاول ما هو الخطأ الكود سليم والخطأ فى استعمال المقارنة
تم تعديل هذه المشاركة بواسطة ok_freee في 7 يناير 2008 في 12:26
السلام عليكم ورحمة الله
المشكلة في التاريخ هي عند اعطاء القيمة للتاريخ وليس عند المقارنة اي ان المهم عند المقارنة ان تكون قيمة التاريخ صحيحة وليس الشكل لان الصيغة تتحكم بها كيف تشاء
جرب ما يلي لتفهم الصورة بشكل افضل
Dim d1 As Date, d2 As Date d1 = Format(Date, "dd/MM/yyyy") Debug.Print Month(d1) d2 = Format(Date, "MM/dd/yyyy") Debug.Print Month(d2)
لمقارنة التواريخ استعمل التاريخ بصيغة yyyy/mm/dd
Format(Date, "yyyy/mm/dd")
ايضا ابحث فهذا الموضوع تم مناقشته العديد من المرات
هذا الموضوع مغلق.