الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف أعمل عدلد تنازلي حسب الوقت أو التاريخ؟

مغلق
بدأه aih في 22 أغسطس 2004 · 30 رد · 2,235 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

مرحبا بكم

بعد المحاولات الغير الموفقه لي قررت أن أطلب منكم المساعدة وأرجوا أن أوفق...

كيف أعمل عدلد تنازلي حسب الوقت أو التاريخ ؟

مثال :

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

ولكم الف شكر

ملاحظة : البرنامج الذي اعمله هو للسجناء بحيث يسجل متى سجن والمدة المتبقية له ومتى يخرج من السجن ... لانه في اغلب الاحيان يضل في السجن فترة اضافية حتى يتم جرد الاسماء وبهذا يتأخر عن الخروج في موعده بغير وجه حق.. (ولي مع الموضوع قصة).

#3

أخي العزيز

هل أوضحت لي بالمثال إذا سمحت ولك خالص الشكر والتقدير

#4

إذا كان لديك تاريخ الدخول ومدة المحكومية بالأيام فيتم زيادة مدة الأيام على تاريخ الدخول فيخرج لك تاريخ الخروج لكل مسجون .

وتستطيع أن تعمل على تاريخ الخروج جملة شرطيه لتنبيهك عند إنتهاء محكومية أي سجين .

ولكن .. هل التاريخ عندك ميلادي أو هجري ؟

تحياتي ..

#5

أشكرك أخي فهد الدوسري

_ التاريخ ميلادي

اذا كان الموضوع بالايام فقط ممكن بطريقتك لكن كيف بالنسبة للشهر و السنة

خصوصاً اذا علمت انه المطلوب ان يكون اليوم والشهر والسنة كلاً على حدا

بهذا الشكل كمثال

7 يوم

3 شهر

1 سنة

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

اذا فرضنا مثلاً متهماً ...

حكم عليه بمدة سنة وأشهر وكان هذا بتاريخ أمس 23/8/2004م

مدة الحبس

0 يوم

6 شهر

1 سنة

المدة التي قضاها

1 يوم

0 شهر

0 سنة

المدة المتبقية

29 يوم

5 شهر

1 سنة

ارجو ان يكون مثالي واضح

وشكرا

#6

أخي الكريم أنت بحاجة إلى إجراء يحسب لك فرق الأيام والأشهر والستوات

وهذا Sub عملته لك من أجل ذلك :

Sub GetDur(D1 As Date, D2 As Date, ByRef YY, ByRef MM, ByRef DD)
    Dim DT As Date, d, m
    If D2 > D1 Then
        DT = D1
        D1 = D2
        D2 = DT
    End If
    YY = Year(D1) - Year(D2)
    m = Month(D1) - Month(D2)
    If m < 0 Then
        m = m + 12
        YY = YY - 1
    End If
    d = Day(D2) - Day(D1)
    If d < 0 Then
        d = d + 30
        m = m - 1
    End If
    MM = m
    DD = d
End Sub

إذا أردت معرفة الفرق بين تاريخين وليكن اسمهما dat1 , dat2

نكتب :

Dim Y , M , D
GetDur dat1,dat2 , y , m , d

بعد هذه التعليمة يكون قد تم تخزين فرق الأعوام في المتحول y وفرق الأشهر في المتحول m وفرق الايام في المتحول d

#7

استاذي العزيز مهند عبادي

لاحظت انك دئماً ترد على الاسئلو الخاصة بالتاريخ فعدما كنت ابحث عن حل وجدت اكثر من موضوع مقارب كنت انت محور اساسي فيه

وتوقعت انك من سوف يجيب على سؤالي. فهل تصدق؟

اجيب لك من النهاية انا مبتدأ و لا ادري اين اضع الكود ؟؟؟ الذي كتبته !!!

فهل من الممكن ان توضح لي معنى هذه عن طريق مثال

شكراً

#8

أخي : aih

هذه محاولة مني حسب مثالك الذي ذكرته .

وربما لدى أستاذنا مهند ما هو أفضل من ذلك بكثير .

تحياتي ..

السجون.rar

#9

الأخ العزيز فهد الدوسري

أشكرك جزيل الشكر على هذا المجهود الجميل

والمثال بصراحه أكثر من رائع ............

فقط لدي استفسار بسيط فأنا كما ذكرت سابقاُ مبتدأ وليس لي الخهبرة الكافية.

هل من الممكن أن تشرح لي كيف انشئ الحدث عند ضغط الزر في برنامجي واعدل فيه الاسماء الخاصة بالخلايا بما هو موجود لدي .

وهل من الممكن الاستغناء عن الزر نهايئاً بحيث تكون العملية مباشرة.

واذا كان هناك طريق مختصر عن طريق الاستعلام فا ارجوا ان تخبرني .

ولك كل الشكر والعرفان و جعل الله لك هذا العمل في ميزان حسناتك آمين

وشكراً

#10

الحمد لله أن المثال قد ناسب ما تريد .

هل من الممكن أن تضع برنامجك أو الجزء الخاص باحتساب المدة التي قضاها السجين والمدة المتبقية لكي أقوم بالتعديل عليه لأن شرح ذلك يطول ولا أعرف هل لديك نفس الحقول التي في المثال أم لا ؟

ضع البرنامج بدون البيانات حفاظاً على سرية عملك .

تحياتي ..

#11

تفضل جرب هذا المثال و قل لي رأيك

Presoner.zip

#12

عزيزي alico2000

اولاً اشكرك على ردك

ثانياً هناك مشكلة في المطلوب على حدا اي في خليه لوحده وهذا لثلاثة :

1 مدة السجن

2 المدة التي قضاها في السجن

3 المدة المتبقية له في السجن

حيث وهو اليوم والشهر والسنة لكل واحد

وشكراً

#13

مرفق لكم جزء من جدول البرنامج

وشكراً

السجن.rar

#14

هذا مثالك بعد التعديل .

لا تنساني من الدعاء الصالح .

تحياتي ..

السجن.rar

#15

الأستاذ فهد الدوسري

لم اكن اتوقع افضل مما قدمته لي

لكن مازل في النفس شئ وارجوا منك سعة الصدر

أريد الاستغناء عن الزر بحث يكون الحدث مباشر بعد ادخال المدة اليوم والشهر والسنة

وتقبل خالص تحياتي

أدعوا الله لك بالتوفيق والخير الكثير في الدنيا والدين

#16

جرب الآن

السجن.rar

#17

الأستاذ العزيز فهد الدوسري

أشكرك جزيل الشكر

أرجوا أن يستفيد منك كل من له مشكله أن شاء الله ويدعوا بالخير وانا معهم.

سوف اجرب البرنامج وارد عليك قريباً

#18

الأستاذ فهد الدوسري

أشكرك كثير ا وبارك الله فيك

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

كنت أتمنى أن أفهم شرح الطريقة التي قمت بها حتى أستطيع عملها بنفسي

لكن يبدو أن الامر مازال صعب علي..

#19

الاستاذ فهد الدوسري

مازل هناك مشكلة !!

بعد تسجيل البيانات كاملة من المفروض انه عندما افتح البرنامج في اليوم التالي تتغير المدة المتبقية بناقص يوم وكل يوم تتناقص من تلقاء نفسها حتى تصل الايام للصفر والاشهر للصفر والسنوات للصفر ويخرج السجين بنتهاء المدة لكن هذا لا يحدث رغم أنه شرط اساسي الا اذا ادخلت السنة من جديد وهذا غير ممكن أبداً وايضاً لايجوز ان يكون هناك ارقام سالبه.

واسف على الازعاج مرة اخرى .. لكن للضرورة احكام .

مع خالص تحياتي

أرجوا الاطلاع وشكراً

#20

أنتظرني ....

#21

بضغطة زر يتم تحديث كافة بيانات السجناء .

تحياتي ..

السجن.rar

#22

استاذي فهد الدوسري

سوف اجرب وارد عليك

ملاحظة : النموذج ليس جدولي لذلك ربما اختلف الوضع

على العموم سوف ارد قريباً

#23

الاستاذ فهد الدوسري

أولاً: تظهر هذه المشكلة

Run- tme error '13':

Type mismatch

End Debug Help

المشكلة في هذا السطر fmm = mID([DateIn], 6, 2)

ثانياً: كيف أضيف هذا الزر عندي مع برنامجي

شكراً لك،، ووفق الله للخير

#24

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

هل جربت البرنامج الذي وضعته أنا أم على برنامجك أنت ؟

الحدث ليس في الزر ولكنه في النموذج أما الزر فيقوم بفتح النموذج فقط .

لكي يعمل لديك قم بإستيراد النموذج الخاص بتحديث البيانات من برنامجي إلى برنامجك وضع زر في النموذج الأساسي وسمه مثلاً تحديث البيانات والحدث الذي في الزر يقوم بفتح نموذج التحديث فقط لا غير .. أرجو أن تكون قد فهمت الطريقة والقصد .

تحياتي ..

#25

عزيزي الاستاذ فهد الدوسري

لاأدري لماذ ظهرت هذه المشكلة وهي على برنامجك انت

وسوف احاول نقل النوذج وارد عليك

شكراً

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…