اذهب الي المحتوي
أوفيسنا

مشكلة معي فى تحويل التاريخ الهجري والميلادي فى نفس الفورم


عمر ضاحى
إذهب إلى أفضل إجابة Solved by jjafferr,

الردود الموصى بها

استاذي الجليل @ابوخليل

اولا حبب اشكرك على مجهوداتك وما تقدمه لنا كمبتدئين من مساعدات 

وانى طامع فى مساعده اخرى 

فى هذا الموضوع 

 

حضرتك ارفقت ملف للتحويل بين الهجري والميلادي

وحبيت انقل هذه المعادلة الى برنامجي 

لكن عند التنفيذ ظهر لى خطأ 

W6d4me7.png

 

ولما حبيت اعرف الخطأ فين 

ظهر لى هذا 

XPM9hx1.png

 

انا اريد ان اعرف انا اخطأت فين ؟

انا قمت باعادة تسمية الحقول مثل الحقول فى النموذج الخاص بك وايضا نفس الخطأ

 

هل لو تكرمت علينا بالمساعدة بارك الله فيك

رابط هذا التعليق
شارك

منذ ساعه, ابو جودي said:

اتفضل :fff:

 

استاذي الجليل ابو جودي :fff:

بارك الله فيك واشكرك على مداخلتك 

لكنى كنت اريد ان اعرف ما السبب فى انها لا تعمل

اذا كتبت التاريخ الميلادي يتم عمليت التحويل

لكن اذا كتبت التاريخ الهجري يحدث الخطأ

فكنت اريد اعرف لماذا لا تعمل معي 

مع انى ناقل كل شئ مثلما هو وتأكدت من ان كل الحقول مظبوطه فى التسميه والتنسيقات الاخري

 

رابط هذا التعليق
شارك

استاذ عمر ... هناك مشاركات كثيرة لاستاذنا العزيز @jjafferr

وهي مفيدة جدا .. وان اصبح لي الوقت اجمعها لفائدة الجميع

لكني اصبح كسولا في بعض الاحيان لان البرمجة عندي هواية وليس مصدر للكسب

  • Like 1
رابط هذا التعليق
شارك

الان, Eng.Qassim said:

استاذ عمر ... هناك مشاركات كثيرة لاستاذنا العزيز @jjafferr

وهي مفيدة جدا .. وان اصبح لي الوقت اجمعها لفائدة الجميع

لكني اصبح كسولا في بعض الاحيان لان البرمجة عندي هواية وليس مصدر للكسب

هل لى ان اطلب من حضرتك النظر فى الملف لعلك تعرف الخطأ وقد يعمل معك

واذا اشتغل معك دون مشاكل اظن كده السبب هيكون من عندي

رابط هذا التعليق
شارك

^_^

ما هي دي المشكله 

لو ادخلت تاريخ ميلادي مش مشكله لكن المشكله تحدث عند ادخال التاريخ الهجري 

والاصل فى الشغل هنا التاريخ الهجري 

والاصل من وجود هذه الداله معي ان اعرف التاريخ الميلادي بدل ما بادخل على موقع واحول التاريخ من هجري الى ميلادي او العكس

رابط هذا التعليق
شارك

السلام عليكم 🙂

 

يجب ان نرى ما يراه الكمبيوتر ، ثم نتخذ قرار التصحيح ،

اضف الاسطر الثلاثة في الكود ، ثم انظر في اسفل صفحة الكود immediate windows ، واخبرنا النتيجة:

Private Sub date_h_AfterUpdate()

UmDate_AfterUpdate
If Not IsNull(date_h) Then

Debug.Print Right(date_h, 2)
Debug.Print Mid(date_h, 6, 2)
Debug.Print Left(date_h, 4)

Me.date_m = Um2Greg(Right(date_h, 2), Mid(date_h, 6, 2), Left(date_h, 4))
''Me.date_m = Um2Greg(Right(date_h, 4), Mid(date_h, 6, 2), Left(date_h, 2))
'Me.t_day = Format(Me.date_m, "dddd")
End If
End Sub

.

image.png.756231478ca880a58cd14091c6711b37.png

.

 

جعفر

  • Like 1
رابط هذا التعليق
شارك

7 دقائق مضت, jjafferr said:

السلام عليكم 🙂

 

يجب ان نرى ما يراه الكمبيوتر ، ثم نتخذ قرار التصحيح ،

اضف الاسطر الثلاثة في الكود ، ثم انظر في اسفل صفحة الكود immediate windows ، واخبرنا النتيجة:

Private Sub date_h_AfterUpdate()

UmDate_AfterUpdate
If Not IsNull(date_h) Then

Debug.Print Right(date_h, 2)
Debug.Print Mid(date_h, 6, 2)
Debug.Print Left(date_h, 4)

Me.date_m = Um2Greg(Right(date_h, 2), Mid(date_h, 6, 2), Left(date_h, 4))
''Me.date_m = Um2Greg(Right(date_h, 4), Mid(date_h, 6, 2), Left(date_h, 2))
'Me.t_day = Format(Me.date_m, "dddd")
End If
End Sub

.

جعفر

هذا ما يظهر لى 

xueuNNi.png

 

وهذا التاريخ الذى ادخلته
SKAxIN6.png

تم تعديل بواسطه عمر ضاحى
رابط هذا التعليق
شارك

  • أفضل إجابة

المفروض ان تظهر لك ارقام فقط ، لهذا السبب تحصل على خطأ عندما تنادي الدالة Um2Greg !!

 

في الواقع المشكلة عندك في الجدول ، حيث ان حقل IqamaExpDateH هو تاريخ ، بينما يجب ان يكون نص 

image.png.8a604ab701758710b617334c245fece3.png

.

وبالتالي يتم حذف الاشارة الى ان الحقل تاريخ (احذف Short Date) 

image.png.a90f5a41adfebc1c343eaa2424791c6c.png.

.

وبعدها شوف النتائج 🙂

 

جعفر

  • Thanks 1
رابط هذا التعليق
شارك

5 دقائق مضت, jjafferr said:

المفروض ان تظهر لك ارقام فقط ، لهذا السبب تحصل على خطأ عندما تنادي الدالة Um2Greg !!

 

في الواقع المشكلة عندك في الجدول ، حيث ان حقل IqamaExpDateH هو تاريخ ، بينما يجب ان يكون نص 

image.png.8a604ab701758710b617334c245fece3.png

.

وبالتالي يتم حذف الاشارة الى ان الحقل تاريخ (احذف Short Date) 

image.png.a90f5a41adfebc1c343eaa2424791c6c.png.

.

وبعدها شوف النتائج 🙂

 

جعفر

والله ما عارف اقول ايه 

المشكله اتحلت فعلا 

😍

بارك الله فيك وادام الله لك لباس الصحه والعافيه 

 

طيب حاجه اخيره 
بعد اذن حضرتك 

9vwzI9y.png

عاوز اخلى التاريخ من الياسار لليمين زي التاريخ الميلادي

 

رابط هذا التعليق
شارك

22 ساعات مضت, عمر ضاحى said:

وحبيت انقل هذه المعادلة الى برنامجي

انظر الى نوع حقل التاريخ الهجري في الجدول 🙂

 

21 دقائق مضت, عمر ضاحى said:

عاوز اخلى التاريخ من الياسار لليمين زي التاريخ الميلادي

الدالة UmDate_AfterUpdate هي المسؤولة عن طريقة عرض التاريخ ،

فاذا اردت تغيير التنسيق ، فلا انصحك ان تغير في الدالة اعلاه ، ولكن خلينا نغير نتيجة الدالة:

Private Sub date_h_AfterUpdate()

UmDate_AfterUpdate
If Not IsNull(date_h) Then

'Debug.Print Right(date_h, 2)
'Debug.Print Mid(date_h, 6, 2)
'Debug.Print Left(date_h, 4)

Me.date_m = Um2Greg(Right(date_h, 2), Mid(date_h, 6, 2), Left(date_h, 4))
''Me.date_m = Um2Greg(Right(date_h, 4), Mid(date_h, 6, 2), Left(date_h, 2))
'Me.t_day = Format(Me.date_m, "dddd")

Me.date_h = Right(Me.date_h, 2) & "/" & Mid(Me.date_h, 6, 2) & "/" & Mid(Me.date_h, 1, 4)	'<== هذا السطر الاضافي لتغيير التنسيق

End If
End Sub

.

جعفر

  • Like 1
  • Thanks 1
رابط هذا التعليق
شارك

مع ان الاولى تغيير حقل الهجري الى نص من اجل تجاوز التعارض مع الاشهر الشمسية الناقصة

ولكن عند التحويل الى نص نفقد كثير من الخصائص التي تجرى على حقول التاريخ

مشكلتك الحقيقة اخ عمر ان التاريخ الهجري  يتم ادراجه في الجدول من اليسار الى اليمين

والكود يقرأ من اليمين الى اليسار

جرب لا تغير الحقل الى نصي  بل اتركه كما هو واستبدل الكود بهذا

Me.date_m = Um2Greg(Left(date_h, 2), Mid(date_h, 4, 2), Right(date_h, 4))

 

  • Like 2
رابط هذا التعليق
شارك

4 دقائق مضت, ابوخليل said:

جرب لا تغير الحقل الى نصي  بل اتركه كما هو

في هذه الحالة يجب ان يكتب تنسيق الحقل في الجدول كالتالي:

dd/mm/yyyy

 

وإلا فإنه سياخذ تنسيق الوندوز ، وتنسيق الوندوز عندي هو dd/mmm/yyyy ، فسيعطيه رسالة خطأ كذلك !!

 

جعفر

رابط هذا التعليق
شارك

ما شاء الله 2 من العمالقه يردو على اطلبي 

اتحلة المشكله 

بارك الله لكم وفى زويكم وما اراكم مكروه ابدا

وجعله فى ميزان حسناتكم ورفع الله قدركم

رابط هذا التعليق
شارك

9 دقائق مضت, jjafferr said:

في هذه الحالة يجب ان يكتب تنسيق الحقل في الجدول كالتالي:

dd/mm/yyyy

 

وإلا فإنه سياخذ تنسيق الوندوز ، وتنسيق الوندوز عندي هو dd/mmm/yyyy ، فسيعطيه رسالة خطأ كذلك !!

 

جعفر

انا عملته طبقا للصيغة الموجودة فعلا في الجدول وهذه الصيغة هي السائدة ، واستخدم التنسيق ( من اليمين الى اليسار ) في الواجهات

 

 

  • Like 4
رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information