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

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

قام بنشر

السلام عليكم ورحمة الله وبركاته

عندما اقوم بوضع تاريخ في متغير public من نوع تاريخ يتم اعتماده بالتنسيق الامريكي شهر يوم سنة فإذا كان التاريخ غير صحيح يعتمده يوم شهر سنة

هنا نقع في مشكلة انه احيانا يأخذ التاريخ صحيح واحيانا لا

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

 

قام بنشر (معدل)

سأشرح لك المشكلة بالتفصيل

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

image.png.7520d878b90f35de1eb7c454ed4e82da.png

الان عند اعداد اي تقرير مالي يجب تقييم العمليات على اساس سعر الصرف حسب تاريخ العملية

مثال عندنا عملية دفع بتاريخ 1-4-2024 يجب على البرنامج اعتماد سعر الصرف 32.60

عملية دفع جديدة بتاريخ 2-4-2024 يجب ان يعتمد البرنامج على سعر الصرف 32.6 (لان تاريخ العملية ليس له تعديل في جدول اسعار الصرف ، فالمنطق يقول ان سعر الصرف بقي كما هو في اليوم السابق )

الان نحن نستمر في استخدام سعر صرف 32.6 الى تاريخ 6-4-2024

بتاريخ 7-4-2024 نبدأ باستخدام سعر صرف 32.1 حتى تاريخ 24-4-2024

بتاريخ 25-4-2024 نبدأ باستخدام سعر صرف 32.4 حتى تاريخ 30-4-2024

المشكلة الان عندما اقوم بوضع تاريخ العملية في متغير من نوع date يعتمد تنسيق التاريخ شهر يوم سنة ولا استطيع مقارنة التاريخ مع الجدول باستخدام الدالة dlast

بسبب ان التواريخ عندي يوم شهر سنة والتاريخ المعتمد في المتغير date هو شهر يوم سنة

الان هل يمكن جعل المتغير من نوع date يعتمد تنسيق يوم شهر سنة

طبعا تغيير التنسيق باستخدام format لم احصل على نتيجة ولا باستخدام cdate ولا dateserial ولا datevalue

 

تم تعديل بواسطه عبد الله قدور
قام بنشر

مشاركة جانبية متأخرة مع الأساتذة ( أن تصل متأخراً خير من أن لا تصل ابدأ )،

جرب هذه الفكرة اخي @عبد الله قدور ،

ننشئ دالة عامة في مديول ونستخدم هذا الكود الذي يعيد تنسيق التاريخ بالشكل DD/MM/YYYY :-

Public Function ParseDate(inputDate As String) As Date
    Dim dayPart As String
    Dim monthPart As String
    Dim yearPart As String
    
    dayPart = Mid(inputDate, 1, 2)
    monthPart = Mid(inputDate, 4, 2)
    yearPart = Mid(inputDate, 7, 4)
    
    ParseDate = DateSerial(CInt(yearPart), CInt(monthPart), CInt(dayPart))
End Function

 

ونستدعيه على سبيل المثال كالآتي ( المتغير اختياري وعلى سبيل المثال ) :-

Dim myDate As Date
myDate = ParseDate("24/05/2024")

 

ودمتم 🤗

  • Like 1
قام بنشر (معدل)
12 ساعات مضت, Foksh said:

مشاركة جانبية متأخرة مع الأساتذة ( أن تصل متأخراً خير من أن لا تصل ابدأ )،

جرب هذه الفكرة اخي @عبد الله قدور ،

ننشئ دالة عامة في مديول ونستخدم هذا الكود الذي يعيد تنسيق التاريخ بالشكل DD/MM/YYYY :-

بعد جهد في هذا المجال وصلت الى قناعة ان المشكلة في تعريف المتغير من نوع date هذا المتغير ما ان تم استخدامه فان التاريخ المعتمد هو شهر يوم سنة فإذا فشل في اعتماد ذلك اعتمد يوم شهر سنة

فوصلت لحل هو عدم استخدام المكتبة date ابدا

قمت بتحويل التاريخ الى رقم على الشكل التالي

تاريخ 01/05/2024 الى 20240501

هكذا يحافظ هذا الرقم على نفس ترتيب التواريخ واستخدم متغير من نوع long بدلا من date 

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

image.png.12aaf332b061cb7aa7bc957c012a936f.png

والنتيجة كانت

image.png.941e48f013227ca3c8b9bed7b5839024.png

ولتذهب مكتبة date بما فيها الى الجحيم

 

تم تعديل بواسطه عبد الله قدور
  • Haha 1
قام بنشر
13 دقائق مضت, عبد الله قدور said:

ولتذهب مكتبة date بما فيها الى الجحيم

 

بطريق آخر ،، المهم نجاح الفكرة و وصولك الى حل يعالج مشكلتك ، بالتوفيق أستاذ @عبد الله قدور :clapping:

  • Haha 1

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