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

اشكالية في ايجاد الارقام الناقصة

بدأه amrhewala في 23 فبراير 2014 · 36 رد · 1,549 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

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

الثانية :: وجود اكثر من معلومه اريد ان اعلمها بالاضافة الي الارقام الناقصة وهي ::

            1- كود العميل 2- شهر الانجاز التابع لها 3- نوع الفاتورة التي بها الرقم الناقص

وجميع المعلومات موجوده بنفس الجدول اللذي تبحث فيه الوحده النمطية .. ولقد شاهدت تطبيق للاستاذه زهرة ياتي بتاريخ حذف + الرقم المحذوف لكن للاسف لم استطع تطبيق ذلك .

 

تلخيصا لما سبق لدي لدي اكثر من طبقه للبحث من خلالها ::

1 - العميل ( عدد كبير من العملاء ولكل عميل سريال عام خاص بكل عميل علي حدي) 

   2- نوع الفاتورة ( اكثر من نوع للفاتورة لكل عميل ... شراء - بيع - استبدال ....ولكل نوع من الفواتير سريال فرعي خاص )

 

مثال :: - عميل رقم 100 تم عمل فواتير بيع 1و2و5 وفواتير شراء 3و5و6 

        - عميل رقم 102 تم عمل فواتير بيع 1و3و5 وفواتير شراء 3و5و6 وفواتير استبدال 3و6

فيكون الحل ::

       - عميل رقم 100 فواتيرة الناقصه ( بيع 3و4 - شراء 1و2و4)

      - عميل رقم 102 فواتيرة الناقصه ( بيع 2و4 - شراء 1و2و4 - استبدال 1و2و4و5 )

 

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

وارفق لكم يا اساتذتي تجربتي الناقصه حتي استزيد من علمكم تطبيق علي الارقام الناقصة.rar

#2

سبحان الله

#3

الحمد لله

#4

جزاكم الله خيرا يا جماعة الخير

#5

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

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

#6

 لا اله الا الله

#7

سبحان الله

#8

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

 

في الحقيقة فكرة الحل بسيطة..

 

أنت بحاجة إلى عمل التالي

_ معرفة قيمة للقيد الفرعي بشرط العميل ونوع العملية... يمكن الحصول على هذه القيمة عن طريق الوضيفة ()DMAX

_ عمل دوارة FOR ... NEXT  من بداية الرقم 1 وحتى القيمة وأصغر من القيمة العائدة من الدالة السابقة (أكبر قيمة للقيد الفرعي)

_ الآن نريد أن نمرر القيمة العائدة من متغير الدوارة إلى وظيفة DLOOKUP تعيد قيمة القيد الفرعي بثلاثة شروط (العميل، نوع العملية، والقيد الفرعي العائد من الدوارة)؛ طبعا يجب أن يكون رقم العميل نوع العملية ثابت والقيد الفرعي يتغير في كل دورة... 

_ إذا كانت القيمة العائدة من الوظيفة (خالية) فهذا يعني أن هذا القيد ناقص (قيد غير مسجل) .. استخدم IF.. THEN  هنا من أجل فرز غير المسجل

_  نأخذ قيمة متغير الدوارة مع رقم العيل ونوع العملية ونضعها في مربع سرد

 

هذه هي الطريقة.. 

 

إذا صعبت عليك وتريدني أن أعمل الشفرة لك!... غير أسماء الحقول أسماء بأحرف لاتينية وارفعها مرة أخرى

 

هذا كل شيء

1
#9

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

اشكر حضرتك جدا بدايتا علي ردك واهتمامك لكن للاسف انا جديد في عالم الاكواد تماما ولا استطيع تنفيذ ماذكرت لذا اطمع ان تعلمني ذلك من خلال الكود

لكني فهمت منطقية ما ذكرت وماشاء الله منظم

جزاك الله خيرا وارجو الا اكون اثقل عليك

ارفق الي حضرتك المثال بعد تحويل اسماء الحقول الي اللاتينية

تطبيق علي الارقام الناقصة.rar

#10
اقتباس

 

مثال :: - عميل رقم 100 تم عمل فواتير بيع 1و2و5 وفواتير شراء 3و5و6 

        - عميل رقم 102 تم عمل فواتير بيع 1و3و5 وفواتير شراء 3و5و6 وفواتير استبدال 3و6

فيكون الحل ::

       - عميل رقم 100 فواتيرة الناقصه ( بيع 3و4 - شراء 1و2و4)

      - عميل رقم 102 فواتيرة الناقصه ( بيع 2و4 - شراء 1و2و4 - استبدال 1و2و4و5 )

 

البيانات في الإقتباس لا تعكس البيانات المسجلة في الجدول MAIN

 

هل بالإمكان أن تحدد من المسرد التالي الحقول التي تحتوي على البيانات

Name            Type          Size

KIND            Text          255
PRID            Text          255
PUBLIC_NO       Text          255
PRIVATE_NO      Double          8
M_DATE          Date/Time       8
1
#11
القحم كتب:

 

البيانات في الإقتباس لا تعكس البيانات المسجلة في الجدول MAIN

 

هل بالإمكان أن تحدد من المسرد التالي الحقول التي تحتوي على البيانات

Name            Type          Size

KIND            Text          255
PRID            Text          255
PUBLIC_NO       Text          255
PRIVATE_NO      Double          8
M_DATE          Date/Time       8
KIND هوا نوع الفاتورة  من بيع او شراء او استبدال 

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

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

اشكرك علي ردك جزاك الله خيرا

تم تعديل هذه المشاركة بواسطة amrhewala في 28 فبراير 2014 في 11:54

#12

قمت بالتعديل على تصميم النموذج من أجل ملاحظة البيانات غير المسجلة

إن شاء الله يفي المرفق بمتطلباتك..

 

 

تطبيق علي الارقام الناقصة.zip

2
#13

سلمت يمينك ... وجزاك الله كل خير لي مجرد ملاحظات 

هل يمكن :

 

1- نتيجة الارقام الناقصة تكون في جدول .

 

2-يضاف الي المعلومات عن الفواتير الناقصة التي موجوده  حقل التاريخ شهر / سنه .

 

3-لدي اكثر من 400 عميل هل استطيع تنفيذ الامر بدون تصفح لعميل عميل .

 

لا اجد اكثر من جزاك الله خيرا اهديها اليك ودعوة بظاهر الغيب .. لانك اقتطعت من وقتك وعلمك لتعلمني وتقضي لي مسالتي وجزاك الله خيرا مرة اخري

#14
اقتباس

 

 

2-يضاف الي المعلومات عن الفواتير الناقصة التي موجوده  حقل التاريخ شهر / سنه .

 

في حالتنا هذه يمكن إضافة السنه لأنها هي محور الفرز..  وعلى كل حال سيضيف الجهاز الشهر واليوم الحاليين.

 

 

اقتباس

 

 

3-لدي اكثر من 400 عميل هل استطيع تنفيذ الامر بدون تصفح لعميل عميل .

 

لقد تضاعف هذا الرقم عشر مرات بعد عملية الفرز .. وعليه سوف تكون عملية الإنجاز بطيئة نسبيا.

 

 

إليك المثال بعد إجراء التعديل.. اضغط فقط (ADD MISSING)

 

 

تطبيق علي الارقام الناقصة.zip

2
#15
القحم كتب:

 

 

 

 

لقد تضاعف هذا الرقم عشر مرات بعد عملية الفرز .. وعليه سوف تكون عملية الإنجاز بطيئة نسبيا.

 

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

هناك ملاحظتين علي المخرج النهائي بالجدول الارقام الناقصة :

1- التاريخ صيغته خاطئة يعطيني 06/07/1905 وهوا خاطئ 

2- كود نوع الفاتورة يظهر 40 بدلا من 040

اشكرك

#16

ذلك لكون البيانات في أصلها رقمية وعند إدرجها في الجدول يعاملها أكسس كذلك ومن ثم يقوم بإهمال الأصفار اليسارية..

لتفادي ذلك يجب أن تحاط البيانات بعلامة تنصيص,,

 

أليك المرفق بعد التعديل

 

تطبيق علي الارقام الناقصة.zip

1
#17

اولا اشكرك علي اهتمامك

ثانيا قد وفيت لكن يتبقي اخر مساعدة وهي بدلا من ظهور التاريخ بصيغة العام year وظهور التاريخ بالكامل 1/1 العام اريده ان يظهر بصيغة  الشهر / العام بلا تدخل

حاولت تعديل ذلك في الكود بازالة year لكن ذلك لم يفلح وحاولت ازالتها من الاستعلام ولكن ايضا لم يفلح ذلك

لماذا في رايك لم يفلح

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

#18

افتح جدول البيانات في وضع التصميم --> اختر حقل التاريخ ---> الخصائص العامة ---> تنسيق البيانات

 

غيرها كما في الصورة

 

post-10429-0-19963200-1393681088_thumb.p

#19

نعم انما اتحدث عن النتيجة التي تظهر في جدول lost_serial  ففي الوحدة النمطية حضرتك كتبت (year (m_date  لظهور التاريخ بصيغة العام فقط وانا عندما حاولت ازالة year من الكود او من الاستعلام فلا تنجح معي

#20

Sub ADD_MISSING()

Dim RS As Recordset

Set RS = CurrentDb.OpenRecordset("SELECT DISTINCT PRID, KIND, YEAR(M_DATE) AS KYEAR FROM MAIN")

RS.MoveFirst

CurrentDb.Execute ("DELETE * FROM Lost_Serial")

Do Until RS.EOF

PRID_KIND_KYEAR = RS!PRID & RS!KIND & RS!KYEAR

MAX_VAL = DMax("PRIVATE_NO", "MAIN", "[PRID]&[KIND]&YEAR([M_DATE])='" & PRID_KIND_KYEAR & "'")

هذا هوا السطر اللذي اقصده واعتقده هوا المسئول عن وجود التاريخ في نتيجة الكود في جدول الفواتير الناقصة YEAR([M_DATE]

For I = 1 To MAX_VAL

MISS_VAL = DMax("PRIVATE_NO", "MAIN", "[PRID]&[KIND]&YEAR([M_DATE])&[PRIVATE_NO]='" & PRID_KIND_KYEAR & I & "'")

If IsNull(MISS_VAL) Then

RSLT = I & ",'" & RS!PRID & "','" & RS!KIND & "','1/1/" & RS!KYEAR & "'"

CurrentDb.Execute PARA & "INSERT INTO Lost_Serial (MISSING_NO, PRID,KIND, M_DATE ) VALUES(" & RSLT & ")"

'Debug.Print RSLT

End If

Next

RS.MoveNext

Loop

End Sub

تم تعديل هذه المشاركة بواسطة amrhewala في 1 مارس 2014 في 16:51

#21

انا ما فهمت ... ايش المطلوب !

فتحت المثال لم اجد فيه حقول ( فاتورة البيع او فاتورة الشراء ) !

mk17481_26bccea871.gif
#22

اشكرك علي مشاركتك جزاك الله عنها خيرا

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

  دلالة الكود          Name            Type          Size

 نوع الفاتورة           KIND            Text          255
رقم العميل              PRID            Text          255
                        PUBLIC_NO       Text          255
رقم الفاتورة            PRIVATE_NO      Double          8
شهر الفاتورة            M_DATE          Date/Time       8

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

تم تعديل هذه المشاركة بواسطة amrhewala في 1 مارس 2014 في 21:21

#23
القيود الناقصة لم تسجل لها أحداث بعدُ في جدول البيانات.. وبالتالي لا يمكن التنبؤ بوقت حدث التسجيل.. هذا أمر..
الأمر الآخر هو أن القيود المسجلة في السابق أحداثها متباينة لم تجرِ على نحو تراتبي (في نظري) يمكن اعتماده..
 
وعليه؛ سيكون أمامنا عدة احتمالات يمكن الاعتماد عليها في تسجيل أحداث للقيود الناقصة، بناءً على التواريخ المسجلة في ملف البيانات الرئيسي وهي..
 
_ تاريخ أول قيد تم تسجيله (في ملف البيانات الرئيسي) 
_ تاريخ آخر قيد ..
_ تاريخ أصغر قيد..
_ تاريخ أكبر قيد.. 
 _ تاريخ حدوث المراجعة الشهري للعام الحالي (سيكون هذا الحدث أجنبي عن نسق وقوع الأحداث السابقة)
 
 
اقتباس

 

 

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

 

إذا كانت القيود تدور كل عام فلا أظن أن معرفة الشهر له كبير فائدة!..  إلا أن يكون ذلك لمعرفة متى وقت   وقعت المراجعة..  

 

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

 

 

نأتي الآن على تساؤلك عن الإجراء أعلاه..

 

لما ذكرت لي أن القيود تعيد دورتها كل عام كان لزاما علي أن استخدم التابع ()YEAR  لمعرفة ما إذا كان القيد قد حدث في هذا العام أم لا..؛ وعليه إزالة هذا التابع سوف يعيد التاريخ بكامله ولن ترجع الدالة قيودا فريدة لكل عام

 

لم اضع التاريخ بأكمله ضمن البيانات العايدة من الاستعلامات أو دوال التجميع لعدم الحاجة لذلك؛ لما سبق أن بينت..

 

 

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

تم تعديل هذه المشاركة بواسطة القحم في 1 مارس 2014 في 22:07

1
#24

السلام عليكم شكرا جزيلا علي الرد

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

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

هذا هوا الهدف الاساسي من عملية البحث عن الفواتير الناقصة .

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

#25

فواتير ناقصة يعني ايه ؟ أيش النقص ؟

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

mk17481_26bccea871.gif

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

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

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

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

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