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

مشكلة بكود الترقيم يومي لكل يوم على حده


wael_rafat

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

السلام عليكم ،،،

اخواني واساتذتي الكرام الافاضل

ظهرت معي مشكلة غريبة بخصوص الترقيم اليومي لكل يوم على حدة ، ولم افهم السبب وراء ذلك ؟؟؟

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

Private Sub dailyserial()

كود ترقيم يومي لكل يوم على حده

Dim F, k As Date

Dim j As String

Dim s As Long

 If DCount("daily_serial", "Torderno") > 0 Then

F = DMax("dat", "Torderno")

 If Date < F Then

 MsgBox " غير مسموح ..... لقت تم تغيير تاريخ اليوم ", vbCritical, " تحذير "

 DoCmd.close acForm, "f_order"

 End If

If Date > F Then

daily_serial = 1

Else

j = "Day(dat) = " & Day(Me.dat)

daily_serial = DMax("daily_serial", "Torderno", j) + 1

End If

Else

daily_serial = 1

End If

End Sub

المشكلة التي ظهرت

على سبيل المثال :

فى يوم 23/2/2017 بدأ ترقيم السجل الاول برقم ( 1 )   ......   تمام

ولكن السجل الثاني يعطي رقم 120   وليس رقم ( 2 )  ؟؟؟؟

باقي السجلات الترقيم مظبوط  121 – 122 – 123 – 124 ....... الخ

 

فى يوم 24/2/2017 بدأ ترقيم السجل الاول برقم ( 1 )   ......   تمام

ولكن السجل الثاني يعطي رقم 109   وليس رقم ( 2 )  ؟؟؟؟

باقي السجلات الترقيم مظبوط  110 – 111 – 112 – 113 ....... الخ

 

 

فى يوم 25/2/2017 بدأ ترقيم السجل الاول برقم ( 1 )   ......   تمام

ولكن السجل الثاني يعطي رقم 95   وليس رقم ( 2 )  ؟؟؟؟

باقي السجلات الترقيم مظبوط  96 – 97 – 98 – 99 ....... الخ

 

معني ذلك ان المشكلة تكمن فى السجل الثاني الذي يلي الرقم ( 1 ) الخاص بتاريخ اليوم المحدد

وهذه صورة توضيحية للمشكلة للجدول مع وجود السجلات بالجدول ( 2250  سجل )

 

 

58ae8c3283e5f_.JPG.39c087b7744e79487d7f91f177aa75ac.JPG

 

ولكن بعد تفريغ السجلات من الجدول ضبط الترقيم ......  تمام

غريبة جدا ؟؟؟؟؟

السؤال ما علاقة وجود السجلات باداء الكود ...

وهذه صور توضيحية لعمل الكود مظبوط ولكن بتفريغ الجدول

58ae8ca82f1ad_.JPG.4a1b8c088fd0c4a0b0b0a0f7e895367c.JPG

مع كل الشكر والتقدير ،،،

وبارك الله فيكم جميعاااا ...

 

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

4 دقائق مضت, wael_rafat said:

اشكرك اخي استاذ شيفان على المشاركة وسرعة الاستجابة

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

اتفضل المرفق ... وبة السجلات كما هو

Daily num.rar

 

الخطأ في الكود هو بيأخذ يوم فقط

مثلا في تاريخ 23\1\2017 عندك رقم 219

لذا واليوم 23\2\2017 يبدأ من رقم 120
وهذا هو الخطأ
وانتظرني لعل اجيب لك حل
تحياتي

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

جرب هذا الكود ووافيني بالنتيجة
 

Private Sub Command2_Click()
If DCount("ID", "TORDERNO") < 1 Then
    If dat > Date Then
        MsgBox "تم تغيير التاريخ سيغلق النافذة"
            DoCmd.Close
                End If ' dat > date
        Me.daily_serial = 1
            Else
        Me.daily_serial = DMax("daily_serial", "TORDERNO", "[dat]=#" & Me.dat & "#") + 1
End If ' DCount("ID", "TORDERNO") < 1
End Sub

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

 

Daily num.rar

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

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

وللاسف بعد التجربة تظهر رسالة يطلب فيها انه لابد من ادخال قيمة  بحقل ال daily _serial

سامحني استاذي 

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

24 دقائق مضت, wael_rafat said:

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

وللاسف بعد التجربة تظهر رسالة يطلب فيها انه لابد من ادخال قيمة  بحقل ال daily _serial

سامحني استاذي 

اسف 
اتفچل
 جرب هذا
انا جربت ما كان بها مشكلة وانت جرب ايضا
 

Private Sub Command2_Click()
On Error Resume Next
If DCount("ID", "TORDERNO") < 1 Or IsNull(DMax("daily_serial", "TORDERNO", "[dat]=#" & Me.dat & "#")) = True Then
    If Me.dat > Date Then
        MsgBox "Êã ÊÛííÑ ÇáÊÇÑíÎ ÓíÛáÞ ÇáäÇÝÐÉ"
            DoCmd.Close acForm, "aaa", acSaveNo
                End If ' dat > date
    Me.daily_serial = 1
            Me.orderno = Nz((DMax("[orderno]", "Torderno") + 1), 1)
        Else
            DoCmd.GoToRecord , , acNewRec
        Me.orderno = Nz((DMax("[orderno]", "Torderno") + 1), 1)
    Me.daily_serial = DMax("daily_serial", "TORDERNO", "[dat]=#" & Me.dat & "#") + 1
End If ' DCount("ID", "TORDERNO") < 1
End Sub

واليك ملفك بعد تعديل

Daily num.rar

تم تعديل بواسطه Shivan Rekany
رابط هذا التعليق
شارك

41 دقائق مضت, Shivan Rekany said:

اسف 
اتفچل
 جرب هذا
انا جربت ما كان بها مشكلة وانت جرب ايضا
 

العفو استاذ شيفان

انا اللي اسف علي الاطالة 

جاري التجربة وموافاتك بالنتيجة ان شاء الله

كل الشكر والتقدير لشخصكم الكريم

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

في ٢٣‏/٢‏/٢٠١٧ at 16:57, wael_rafat said:

للاسف استاذ شيفان ما ضبط

ففي حالة اختيار شهر اخر او سنة اخرى لا يتم الترقيم ويثبت عند رقم ( 1 )

مرفق صورة توضيحية

1.JPG.4bcd909607432123d8f85c2436c6e438.JPG

وسامحني استاذي الكريم

 

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

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

1 دقيقه مضت, wael_rafat said:

والله جربت مرة اخرى استاذي نفس المشكلة

بالاضافة الي انني اقوم بتغيير التاريخ الي الامام والي الخلف  وللاسف بيقبل ايضا ...

كل شكري وتقديري

هل عندك قاعدة بيانات اخرى تعمل عليها ؟
كيف يقبل ؟ اي يعني حين تضغط على الزر بيقبل وبينطي الرقم ؟

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

4 ساعات مضت, Shivan Rekany said:

Private Sub Command2_Click()
On Error Resume Next
If DCount("ID", "TORDERNO") < 1 Or IsNull(DMax("daily_serial", "TORDERNO", "[dat]=#" & Me.dat & "#")) = True Then
    If Me.dat > Date Then
        MsgBox "Êã ÊÛííÑ ÇáÊÇÑíÎ ÓíÛáÞ ÇáäÇÝÐÉ"
            DoCmd.Close acForm, "aaa", acSaveNo
                End If ' dat > date
    Me.daily_serial = 1
            Me.orderno = Nz((DMax("[orderno]", "Torderno") + 1), 1)
        Else
            DoCmd.GoToRecord , , acNewRec
        Me.orderno = Nz((DMax("[orderno]", "Torderno") + 1), 1)
    Me.daily_serial = DMax("daily_serial", "TORDERNO", "[dat]=#" & Me.dat & "#") + 1
End If ' DCount("ID", "TORDERNO") < 1
End Sub

واليك ملفك بعد تعديل

Daily num.rar

اتفضل استاذى هذاالفيديو  يوضح  كلامي

1.rar

 

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

13 دقائق مضت, wael_rafat said:

اتفضل استاذى هذاالفيديو  يوضح  كلامي

1.rar

اي الفيديو بيقول ان الكود بيعمل صح
لانك غيرت تاريخ الجهاز الى تاريخ قبل الان وغيرت الى 21\2\2017 
وهذا التاريخ ما كان موجود في الجدول لذا بدأت برقم 1
شوف غير التاريخ الى 18\2\2017 وشوف بأي رقم راح يبدأ
تحياتي

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

16 ساعات مضت, wael_rafat said:

السلام عليكم ،،،

اخواني واساتذتي الكرام الافاضل

ظهرت معي مشكلة غريبة بخصوص الترقيم اليومي لكل يوم على حدة ، ولم افهم السبب وراء ذلك ؟؟؟

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

Private Sub dailyserial()

كود ترقيم يومي لكل يوم على حده

Dim F, k As Date

Dim j As String

Dim s As Long

 If DCount("daily_serial", "Torderno") > 0 Then

F = DMax("dat", "Torderno")

 If Date < F Then

 MsgBox " غير مسموح ..... لقت تم تغيير تاريخ اليوم ", vbCritical, " تحذير "

 DoCmd.close acForm, "f_order"

 End If

If Date > F Then

daily_serial = 1

Else

j = "Day(dat) = " & Day(Me.dat)

daily_serial = DMax("daily_serial", "Torderno", j) + 1

End If

Else

daily_serial = 1

End If

End Sub

المشكلة التي ظهرت

على سبيل المثال :

فى يوم 23/2/2017 بدأ ترقيم السجل الاول برقم ( 1 )   ......   تمام

ولكن السجل الثاني يعطي رقم 120   وليس رقم ( 2 )  ؟؟؟؟

باقي السجلات الترقيم مظبوط  121 – 122 – 123 – 124 ....... الخ

 

فى يوم 24/2/2017 بدأ ترقيم السجل الاول برقم ( 1 )   ......   تمام

ولكن السجل الثاني يعطي رقم 109   وليس رقم ( 2 )  ؟؟؟؟

باقي السجلات الترقيم مظبوط  110 – 111 – 112 – 113 ....... الخ

 

 

فى يوم 25/2/2017 بدأ ترقيم السجل الاول برقم ( 1 )   ......   تمام

ولكن السجل الثاني يعطي رقم 95   وليس رقم ( 2 )  ؟؟؟؟

باقي السجلات الترقيم مظبوط  96 – 97 – 98 – 99 ....... الخ

 

معني ذلك ان المشكلة تكمن فى السجل الثاني الذي يلي الرقم ( 1 ) الخاص بتاريخ اليوم المحدد

وهذه صورة توضيحية للمشكلة للجدول مع وجود السجلات بالجدول ( 2250  سجل )

 

 

58ae8c3283e5f_.JPG.39c087b7744e79487d7f91f177aa75ac.JPG

 

ولكن بعد تفريغ السجلات من الجدول ضبط الترقيم ......  تمام

غريبة جدا ؟؟؟؟؟

السؤال ما علاقة وجود السجلات باداء الكود ...

وهذه صور توضيحية لعمل الكود مظبوط ولكن بتفريغ الجدول

58ae8ca82f1ad_.JPG.4a1b8c088fd0c4a0b0b0a0f7e895367c.JPG

مع كل الشكر والتقدير ،،،

وبارك الله فيكم جميعاااا ...

 

مشاركة مع الاستاذ شيفان

جرب تعديل السطر الى

j = "dat =# " & Me.dat & "#"

في عملك السابق

بالتوفيق

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

اهلا بيك استاذنا الغالــي رمهان صاحب اللمسات الرمهانية الجبارة ...   الله لا يحرمنا منكم

بعد التجربة حصل الاتــــي :-

1 - الترقيم خلال اليوم الحالي والايام التالية خلال الشهر ...... تمااااااام

2 - عند تغيير التاريخ للخلف يغلق النموذج ..... تماااام

ولكن ..

عند اختيار شهر او سنة  مختلف مثل  1 / 3 / 2017   او  1/ 1 / 2018     يقوم بترقيم الرقم  ( 1 )  فقط .....ثم بعد ذلك تظهر الرسالة التالية

58afeb57527cc_.JPG.332d4918401bfaf107365da3c8a0c166.JPG

وهذا هو الملف

wael.rar

وبارك الله فيك وجزاك الله عنا كل خير

كل الشكر والتقدير استاذنا ...

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

14 ساعات مضت, Shivan Rekany said:

اي الفيديو بيقول ان الكود بيعمل صح
لانك غيرت تاريخ الجهاز الى تاريخ قبل الان وغيرت الى 21\2\2017 
وهذا التاريخ ما كان موجود في الجدول لذا بدأت برقم 1
شوف غير التاريخ الى 18\2\2017 وشوف بأي رقم راح يبدأ
تحياتي

الان انا فهمتك بالضبط

غدا ان شاء الله راح اعود لك ومع طلبك

الان انا عم استخدم موبايل

انتظرني

تحياتي

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

اتفضل هذا هو الكود

On Error Resume Next
    Dim tDate As Date
        tDate = DMax("dat", "torderno")
            If tDate > Me.dat Then
                MsgBox "Êã ÊÛííÑ ÇáÊÇÑíÎ ÓíÛáÞ ÇáäÇÝÐÉ"
                        DoCmd.Close acForm, "aaa", acSaveNo
                    Exit Sub
            End If
If DCount("ID", "TORDERNO") < 1 Or IsNull(DMax("daily_serial", "TORDERNO", "[dat]=#" & Me.dat & "#")) = True Then
    If Me.dat > Date Then
        MsgBox "Êã ÊÛííÑ ÇáÊÇÑíÎ ÓíÛáÞ ÇáäÇÝÐÉ"
            DoCmd.Close acForm, "aaa", acSaveNo
                End If ' dat > date
        Me.daily_serial = 1
            Me.orderno = Nz((DMax("[orderno]", "Torderno") + 1), 1)
        Else
            DoCmd.GoToRecord , , acNewRec
        Me.orderno = Nz((DMax("[orderno]", "Torderno") + 1), 1)
    Me.daily_serial = DMax("daily_serial", "TORDERNO", "[dat]=#" & Me.dat & "#") + 1
End If ' DCount("ID", "TORDERNO") < 1

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

Daily num.rar

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

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

انا اسف ....  للاسف نفس المشكلة تظهر عند اختيار شهر تالي وايضا سنة تالية

1.JPG.dd12265ec41720a9988211d9edce3da1.JPG

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

وربنا يبارك فيك  ويجازيك عنا كل خير  ...  مع احترامي وتقديري

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

اساتذتي الافاضل بارك الله فيكم

المشكلة ان الكود يبحث عن اكبر قيمة لل daily_serial لنفس اليوم المخزن بالجدول بصرف النظر عن الشهر والسنة ، ثم يقوم باضافة +1

يعني مثلا تاريخ اليوم   24 / 2 / 2017

يوجد لدينا بالجدول يوم 24/ 1 / 2017  اعلي قيمة له 30

ويوم 24/ 6/ 2016  اعلى قيمة له 40

ويوم 24/ 9/ 2015  اعلي قيمه له 50

فان الكود يقوم يأخذ اعلي قيمة ليوم 24  بالجدول ثم +1 وهنا اعلي قيمة رقم 50 بتاريخ 24/ 9 /2015  وبعد اضافة 1 لها فيصبح الرقم الجديد 51 

مع ان الشهر والسنة مختلفين ...

وعلية .....

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

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

اتفضل اخي 
اليك هذا القاعدة وانا جربت عليه وغيرت التاريخ الى 14\3\2017 وكان نتيجة مضبوطة 
لكن حين انا حولت التاريخ الى شهر 4 بيطلع رسالة خطأ ومع ذلك طلع معي رسالة اخر باقتراب مدة صلاحية اوفيس 
وانا اعمل على اوفيس اصدار 2010 لكن مش عصلية :biggrin:
جرب انت احتمال ما يصير معك هذا شي Daily num.rar
وعملت هذا بواسطة نموذج فرعي وبيشتغل تمام 100% كل يوم ورقم تسلسلي جديد بواسطة نموذج فرعي.rar

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

في ٢٥‏/٢‏/٢٠١٧ at 19:43, رمهان said:

جرب


j = "dat =# " & F & "#"

طبعا انا لي عوده معاك بحل وفكرة ولكن اريد ان اصل معاك لشي معين

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

في ٢٥‏/٢‏/٢٠١٧ at 18:41, Shivan Rekany said:

اتفضل اخي 
اليك هذا القاعدة وانا جربت عليه وغيرت التاريخ الى 14\3\2017 وكان نتيجة مضبوطة 
لكن حين انا حولت التاريخ الى شهر 4 بيطلع رسالة خطأ ومع ذلك طلع معي رسالة اخر باقتراب مدة صلاحية اوفيس 
وانا اعمل على اوفيس اصدار 2010 لكن مش عصلية :biggrin:
جرب انت احتمال ما يصير معك هذا شي Daily num.rar

 

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

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