99عمرو قام بنشر يناير 31, 2017 قام بنشر يناير 31, 2017 الاخوه الافاضل انا استخدم الداله Year(now)- Year(fieldname) ولكن تعطينى حسبة عدد السنين ولكن دون حساب الاشهر لاعطاء السنين مظبوطه مثلا تاريخ اليوم 31/1/2017 ناقص تاريخ 22/2/2014 اريد ان يحسب الشهور بحيث يكون الطرح من السنين وحساب الشهور ليعطى عدد مظبوط
Shivan Rekany قام بنشر يناير 31, 2017 قام بنشر يناير 31, 2017 15 دقائق مضت, 99عمرو said: الاخوه الافاضل انا استخدم الداله Year(now)- Year(fieldname) ولكن تعطينى حسبة عدد السنين ولكن دون حساب الاشهر لاعطاء السنين مظبوطه مثلا تاريخ اليوم 31/1/2017 ناقص تاريخ 22/2/2014 اريد ان يحسب الشهور بحيث يكون الطرح من السنين وحساب الشهور ليعطى عدد مظبوط اليك هذه الوحدة النمطية اي اعمل كوبى باست هذا الكود في وحدة نمطية Option Compare Database Option Explicit Public Function Diff2Dates(interval As String, Date1 As Date, Date2 As Date, Optional ShowZero As Boolean = False) As Variant On Error GoTo Err_Diff2Dates Dim booCalcYears As Boolean Dim booCalcMonths As Boolean Dim booCalcDays As Boolean Dim booSwapped As Boolean Dim dtTemp As Date Dim intCounter As Integer Dim lngDiffYears As Long Dim lngDiffMonths As Long Dim lngDiffDays As Long Dim varTemp As Variant Const INTERVALs2 As String = "ddmmyy" interval = LCase$(interval) For intCounter = 1 To Len(interval) If InStr(1, INTERVALs2, Mid$(interval, intCounter, 1)) = 0 Then Exit Function End If Next intCounter If Not (IsDate(Date1)) Then Exit Function If Not (IsDate(Date2)) Then Exit Function If Date1 > Date2 Then dtTemp = Date1 Date1 = Date2 Date2 = dtTemp booSwapped = True End If Diff2Dates = Null varTemp = "" booCalcYears = (InStr(1, interval, "y") > 0) booCalcMonths = (InStr(1, interval, "m") > 0) booCalcDays = (InStr(1, interval, "d") > 0) If booCalcYears Then lngDiffYears = Abs(DateDiff("yyyy", Date1, Date2)) - _ IIf(Format$(Date1, "mmdd") <= Format$(Date2, "mmdd"), 0, 1) Date1 = DateAdd("yyyy", lngDiffYears, Date1) End If If booCalcMonths Then lngDiffMonths = Abs(DateDiff("m", Date1, Date2)) - _ IIf(Format$(Date1, "ddhh") <= Format$(Date2, "ddhh"), 0, 1) Date1 = DateAdd("m", lngDiffMonths, Date1) End If If booCalcDays Then lngDiffDays = Abs(DateDiff("d", Date1, Date2)) - _ IIf(Format$(Date1, "hhnnss") <= Format$(Date2, "hhnnss"), 0, 1) Date1 = DateAdd("d", lngDiffDays, Date1) End If If booCalcYears And (lngDiffYears > 0 Or ShowZero) Then varTemp = lngDiffYears & IIf(lngDiffYears <> 1, " Óäå ", " Óäå ") End If If booCalcMonths And (lngDiffMonths > 0 Or ShowZero) Then If booCalcMonths Then varTemp = varTemp & IIf(IsNull(varTemp), Null, " æ ") & _ lngDiffMonths & IIf(lngDiffMonths <> 1, " ÔåÑ ", " ÔåÑ ") End If End If If booCalcDays And (lngDiffDays > 0 Or ShowZero) Then If booCalcDays Then varTemp = varTemp & IIf(IsNull(varTemp), Null, " æ ") & _ lngDiffDays & IIf(lngDiffDays <> 1, " íæã", " íæã") End If End If If booSwapped Then varTemp = "-" & varTemp End If Diff2Dates = Trim$(varTemp) End_Diff2Dates: Exit Function Err_Diff2Dates: Resume End_Diff2Dates End Function ومثلا عندك مربع نصي للتاريخ الاول اي اليوم باسم tarix1 ومربع اخر للتاريخ الثاني اي لتاريخ 22\2\2014 باسم tarix2 ومربع نصي اخر لكي يڤهر فيها نتيجه باسم text1 وعندك زر لكي يحسبك النتيجه اكتب في محرر فيجوال بعد تضغط كليك عليه هذا الكود Me.text1 = IIf(Diff2Dates("ddmmyy", [tarix2], [tarix1], False) = "", "0 íæã", Diff2Dates("ddmmyy", [tarix2], [tarix1], False)) جرب وشوف النتيجة 1
99عمرو قام بنشر يناير 31, 2017 الكاتب قام بنشر يناير 31, 2017 شكرا اخى شفان ولكن هل ستتناسب مع الحقل المحسوب ما بين حقلين
Shivan Rekany قام بنشر يناير 31, 2017 قام بنشر يناير 31, 2017 3 دقائق مضت, 99عمرو said: شكرا اخى شفان ولكن هل ستتناسب مع الحقل المحسوب ما بين حقلين ممكن توضح اكثر ما فهمت قصدك
Shivan Rekany قام بنشر يناير 31, 2017 قام بنشر يناير 31, 2017 (معدل) 13 دقائق مضت, 99عمرو said: تفضل اخى Database.rar اتفضل اخي ملفك بعد تعديل لكن هناك ملاحظة لا تستخدم الكلمات المحجوزه لقاعده بياناتك مثلا time,now انا غيرتها واستخدمت ذاك الوحدة النمطية مع هذا الكود جرب حين تكتب التاريخ Me.ca = IIf(Diff2Dates("ddmmyy", Nz([time1]), Nz([now1]), False) = "", "0 íæã", Diff2Dates("ddmmyy", Nz([time1]), Nz([now1]), False)) Database (1).rar تم تعديل يناير 31, 2017 بواسطه Shivan Rekany
99عمرو قام بنشر يناير 31, 2017 الكاتب قام بنشر يناير 31, 2017 2 minutes ago, صالح حمادي said: تفضل شوف هذه المشاركة اخى صالح انا اريد ان احسب عدد السنين فقط فى حقل محسوب ما بين تاريخين و ان تكون الحسبه دقيقه بان تقوم بطرح الشهور و الايام حتى اذا وصل تاريخ اليوم نفس تاريخ الميلاد تحتسب السنه مثلا تاريخ الميلاد 1/1/1990 اليوم 1/1/2017 فيتم احتساب السنه 3 minutes ago, Shivan Rekany said: اتفضل اخي ملفك بعد تعديل لكن هناك ملاحظة لا تستخدم الكلمات المحجوزه لقاعده بياناتك مثلا time,now انا غيرتها واستخدمت ذاك الوحدة النمطية مع هذا الكود جرب حين تكتب التاريخ Me.ca = IIf(Diff2Dates("ddmmyy", Nz([time1]), Nz([now1]), False) = "", "0 íæã", Diff2Dates("ddmmyy", Nz([time1]), Nz([now1]), False)) Database (1).rar سلمت يداك اخى شفان ولكن انا اريد حسبة السنين فقط فى الحل المحسوب كما وضحت اتاريخ الميلاد 1/1/1990 اليوم 1/1/2017 فيتم احتساب عدد السنين فقط ارقام فى الحقل المحسوب
Shivan Rekany قام بنشر يناير 31, 2017 قام بنشر يناير 31, 2017 (معدل) 8 دقائق مضت, 99عمرو said: سلمت يداك اخى شفان ولكن انا اريد حسبة السنين فقط فى الحل المحسوب كما وضحت اتاريخ الميلاد 1/1/1990 اليوم 1/1/2017 فيتم احتساب عدد السنين فقط ارقام فى الحقل المحسوب في هذه الحالة لا تحتاج لاي وحدات نمطية اليك هذا الكود اخليها في كلا حقلين بعد تحديث Me.ca = DateDiff("yyyy", Nz([time1]), Nz([now1])) واليك ملفك بعد تعديل شوف هل هو المطلوب بس سنين فقط Database (1).rar تم تعديل يناير 31, 2017 بواسطه Shivan Rekany
صالح حمادي قام بنشر يناير 31, 2017 قام بنشر يناير 31, 2017 نعم هذا الأمر موجود في هذه المشاركة بالإضافة لعدد الأيام و الشهور. هو لا يحسب السنة إلا إذا كانت 12 شهرا كاملة و لا يحسب الشهر إلا إذا كان 30 يوما كاملا. و أنت خذ الجزء الخاص بالسنوات فقط و جربه فهو يحسب عدد الأيام بين التاريخين ثم يحول هذه الأيام إلى سنوات لاحظ المرفق التالي وضعت فيه السنوات فقط. حساب العمر.rar 1
99عمرو قام بنشر يناير 31, 2017 الكاتب قام بنشر يناير 31, 2017 اخى شفان انا اريد عدد السنين فقط بدون اى كلام معها المشكله التى تواجهنى اخى صالح انى اريدها فى حقل محسوب الداله Datediff ليس موجوده بالحقل المحسوب اريد ان تكون الحسبه محسوبه داخل الحقل بالجدول وليس فى النموذج
صالح حمادي قام بنشر يناير 31, 2017 قام بنشر يناير 31, 2017 (معدل) تفضل التعديل على ملفك. و كما ذكر الأستاذ تشيفان . تجنب تسميت العناصر و الكائنات بالكلمات المحجوزة في الأكسس Database.rar تم تعديل يناير 31, 2017 بواسطه صالح حمادي 1
99عمرو قام بنشر يناير 31, 2017 الكاتب قام بنشر يناير 31, 2017 7 minutes ago, صالح حمادي said: تفضل التعديل على ملفك. و كما ذكر الأستاذ تشيفان . تجنب تسميت العناصر و الكائنات بالكلمات المحجوزة في الأكسس Database.rar سلمت يداك اخى صالح ولكن ممكن شرح الكود
صالح حمادي قام بنشر يناير 31, 2017 قام بنشر يناير 31, 2017 DateDiff("d", Me.time1, Me.now1) هذه لحساب الفرق بين التاريخين بالأيام "d" DatePart و هذه الدالة لتحويل الأيام إلى سنة "yyyy" و لو تلاحظ و ضعت -1900 في الأخير ذلك لأن الدالة تبدأ الحساب من 1900 هذا و الله أعلم 1
Shivan Rekany قام بنشر يناير 31, 2017 قام بنشر يناير 31, 2017 57 دقائق مضت, Shivan Rekany said: Me.ca = DateDiff("yyyy", Nz([time1]), Nz([now1])) اذا ما كان غلطان انا هذا الكود بيعمل المطلوب لكن في القاعدة البيانات اللي رفقته في نفس المشاركة لهذا الكود انا اضفت & "سنة" لكي بيظهر النتيجة مع كلمة سنة مع تقدير 1
99عمرو قام بنشر يناير 31, 2017 الكاتب قام بنشر يناير 31, 2017 5 minutes ago, Shivan Rekany said: اذا ما كان غلطان انا هذا الكود بيعمل المطلوب لكن في القاعدة البيانات اللي رفقته في نفس المشاركة لهذا الكود انا اضفت & "سنة" لكي بيظهر النتيجة مع كلمة سنة مع تقدير سلمت يداك اخى لم أخذ بالى من كلمة سنه
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.