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

ترقيم تلقائي متعدد

بدأه عبير الزهور في 7 أغسطس 2014 · 15 رد · 1,719 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم اساتذتي الكرام

وك لعام وانتم بخير

 

في المرفق التالي المطلوب

1-  ان يترتب الترقيم التلقائي عدة مرات حسب نوع الحركة

مثلا اذا كانت نوع الحركة صرف يكون الترقيم التلقائي 1   ثم اذا كانت صرف مرة اخرى يكون 2 و اذا كانت صرف ايضا سيكون الترقيم التلقائي 3 مرة اخرى و هذا طبيعي

و لكن اذا اصبح نوع الحركة قبض مثلا سيكون الترقيم التلقائي من جديد 1 و هكذا

فمحتمل ان يكون للحركة صرف 50 سند على سبيل المثال

و للحركة قبض 800 سند

 

2- و المطلب الثاني موضح بالصور المرفقة

 

 

 

نوع الحركة.rar

post-254477-0-55305200-1407366962_thumb.

post-254477-0-06285700-1407367009_thumb.

#2

هل من الممكن رفع المثال بصيغة 2003

#3

الأخت الفاضلة

تم الحل حسب الخطوات التالية:

1- الإستعانة بطرف آخر لتحويل المثال بصيغة 2003

2- تم التعديل على جدول (bonds) بتحويل نوع بيانات الحقل [bonds_number] إلى رقم ==> مفهرس: نعم (تكرار موافق) بدلاً من الترقيم التلقائي

3- تم حذف العلاقة بين الجدولين (bonds) وَ (trans) لتحرير بيانات الحقل [bonds_number]

 

الآن إلى طلباتك:  ((أولاً))

 

4- تم تحقيق طلب الترقيم التلقائي المتعدد وذلك في النموذج (bonds) عند تحديث وتحديد نوع الحركة (صرف - قبض - سماح)

   حسب الكود التالي:

   If IsNull([MeTrans]) Or ([MeTrans]) = "" Then
   MsgBox " يجب تحديد الإختيار ", vbOKOnly + vbCritical + vbMsgBoxRight, "تحديد الإختيار"
   End If
   
    If ([MeTrans]) = "صرف" Then
    Me![bonds_number] = Nz(DMax("[bonds_number]", "[Bonds]", "kind_of_trans='صرف'"), 0) + 1
   End If
     If ([MeTrans]) = "قبض" Then
    Me![bonds_number] = Nz(DMax("[bonds_number]", "[Bonds]", "kind_of_trans='قبض'"), 0) + 1
   End If
       If ([MeTrans]) = "سماح" Then
    Me![bonds_number] = Nz(DMax("[bonds_number]", "[Bonds]", "kind_of_trans='سماح'"), 0) + 1
   End If

((( ثانياً)))

5- تم تصحيح صيغة المعادلة

=[first_balance_dollar_Clients]+[LE_dollar]

إلى:

=Nz([first_balance_dollar_Clients])+Nz([LE_dollar])

للتعامل مع القيمة الخالية  Null

 

 

post-129354-0-03701400-1407413794_thumb.

 

 

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

 

7- أشكل علي فهم طلبك (الترقيم التلقائي المتعدد) يخص كل نوع (صرف - قبض - سماح)

    أم (لكل زبون + نوع حركته "صرف-قبض-سماح") ترقيم تلقائي خاص به

8- في كل الأحوال أرجو تأكيد التجربة وأبلاغي بالنتيجة.

 

تحياتي/ أبومحمد

PMS_نوع الحركة.rar

2
#4

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

جزاك الله الف خير على تعاونك وحرصك

1-بالنسبة للمطلب الاول فهو شغال 100% على النموذج الذي قمت برفعه حضرتك و لكن الكود عندما اقوم بنقله اى ملفي الخاص لا يعمل هل هذا بسب اختلاف التنسيقين حيث قمت حضرتك بعمله على ملف 2003 و انا طبقته على 2007 هل هذا السبب؟؟ و كيف اتلافى المشكلة.

2- عند حذفك للعلاقة  بين الجدولين bond , trans و  و الغاء خاصية المفتاح الاساسي  لايمكنني من ارجاع العلاقة بين الجدولين علا قة راس باطراف و هذا قد يسبب لي مشاكل في عمل البرنامج.. فما الحل؟؟!!

3- بالنسبة لمربع الادوات يعمل في نسختي بشكل جيد حيث بامكاني استخدام كافة الادوا الموجوده

4- أشكل علي فهم طلبك (الترقيم التلقائي المتعدد) يخص كل نوع (صرف - قبض - سماح)

    أم (لكل زبون + نوع حركته "صرف-قبض-سماح") ترقيم تلقائي خاص به؟

طلبي يخص كل نوع وليس كل زبون

 اما بالنسبة لطلبي الثاني اعتقد انك لم تفهم قصدي استاذي الفاضل

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

 لو تفضلت و منت علي بالتركيز مرة اخرى بالصور ستلاحظ ان قيمة الرصيد الحالي في الصورة الاولى كانت 1600  و عندما قمنا باستدعاء الزبون سنان للتعامل معه مرة اخرى انتقلت قيمة الرصيد الحالي 1600 الى الرصيد الاولى للزبون

و الهدف من هذا هو لمعرفة ما على الزبون و ما له من مبالغ .

ارجوا ان اكون قد وضحت الفكرة

و اسفه للاطالة و جزيل الشكر لك استاذي و سانتظر ردك

في امان الله

#5

أختي الكريمة تم العمل على مثالك 2007

وفق الإجراءات التالية

حذف العلاقة بين الجدولين (كما في المشاركة السابقة)

تغيير نوع البيانات لـ (bonds_number) من ترقيم تلقائي إلى رقم

مرة أخرى تم ربط الجدولين (bonds) وَ (trans) رأس برأس

هذه النقطة إجبارية لوجود التركرار في (bonds_number) لكل نوع

وعليك أن تتنازلي في هذه الجزئية

 

post-129354-0-25073900-1407492633_thumb.

 

تغيير مسميات اللغة العربية إلى الإنجليزي في نموذج bonds

من مربع تحرير وسرد إلى (kindOfTrans)

خاصية الإجراء بعد التحديث في القائمة المنسدلة (kindOfTrans) كما في الكود أدناه

Private Sub kindOfTrans_AfterUpdate()
    If [kindOfTrans] = "صرف" Then
    Me![bonds_number] = Nz(DMax("[bonds_number]", "[bonds]", "[kind_of_trans]='صرف'"), 0) + 1
    End If
    If [kindOfTrans] = "قبض" Then
    Me![bonds_number] = Nz(DMax("[bonds_number]", "[bonds]", "[kind_of_trans]='قبض'"), 0) + 1
    End If
    If [kindOfTrans] = "سماح" Then
    Me![bonds_number] = Nz(DMax("[bonds_number]", "[bonds]", "[kind_of_trans]='سماح'"), 0) + 1
    End If
End Sub

النتيجة (ترقيم تلقائي) لكل نوع من الأنواع

أنتهينا من الشق الأول لمطلبك وهو بصيغة 2007

 

الشق الثاني: لا زال غامض ويحتاج توضيح أكثر

 

تحياتي/ أبومحمد

 

PMS_2007_نوع الحركة.rar

2
#6

السلام عليكم اخي الفاضل الكريم

جزاك الله الف خير على المتابعه و المساعدة (ساعدك الله عز وجل في جميع امور حياتك)

 المطلب الاول ماشي تمام و الحمد لله (تسلم ايدك)

 

اما المطلب الثاني فوضحت الفكرة في الصور المرفقة  وحسب التسلسل 2-3-4  ارجو ان تكون واضحة

 

 

 

 

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

post-254477-0-79789300-1407546614_thumb.

post-254477-0-01795100-1407546667_thumb.

post-254477-0-74881400-1407546720_thumb.

post-254477-0-91587400-1407546782_thumb.

#7

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


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


وبمجرد اضافة مبلغ الصرف او القبض يتغير الرصيد ليصبح الرصيد الحالي وفقا للمبلغ


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


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


سند جديد


"قال رب اشرح لي صدري *ويسر لي امري*واحلل عقدة من لساني يفقهوا قولي" سورة طه
اللهم صل على سيدنا محمد
وعلى آل سيدنا محمد

http://rasoulallah.net/index.php/ar

#8

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

الأخت الفاضلة

تم التعديل (تراكمياً) في الرصيد الإفتتاحي للزبون

رغم تحفظي عليه لوجود البدائل لهذه الجزئية.

ومظنة حدوث الأخطاء وخسارة القيم الصحيحة المختزنة

 

خطوات العمل:

 

أفترضت أن خانة (المبلغ بالدولار - LE_dollar) هي أخر خانة لإدخال القيم

في حدث (بعد التحديث) جعلت الكود المسؤول عن تعديل (الرصيد الاولي بالدولار) للجدول (Clients)

وهو بالتفصيل التالي:

أثناء التحديث يقوم الكود بالمحادثة التفاعلية من خلال MsgBox

بظهور رسالة تحذيرية للمستخدم

تخبره بالرصيد السابق الإولي للزبون (اسم الزبون ؟)

وقدره (كذا)

المبلغ الجديدة المضاف بالدولار LE_dollar = (؟)

قيمة الرصيد الأولي بعد التحديث = مجموع القيمتين = (؟)

عندها يتفاعل المستخدم بأختيار (Yes) أو (No)

عند أختيار (Yes) يقوم الكود أنابة بالأضافة لتحديث الرصيد الأولي ثم ينتقل لحقل جديد

عند أختيار (No) يتم حذف الإجراء والتراجع

تحذير: عليكي أن تكوني حذره بالاستخدام، فالتحديث يعني زيادة الرصيد بشكل تصاعدي في كل مرة

 

post-129354-0-15721000-1407672106_thumb.

 

post-129354-0-93121700-1407672367_thumb.

 

post-129354-0-66779400-1407672868_thumb.

 

أما ما ذكرتي من مشكلة ظهور الرسالة عند (أيرادات عامة)، فهي لم تظهر عندي مطلقاً

آمل أن أكون حققت هدف ما تسعين أليه

 

تحياتي/ أبومحمد

 

PMS2_2007_نوع الحركة.rar

1
#9

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

ما شاء الله العمل تمام التمام و تم التقييم

1- لكن  لماذا قيمة الرصيد الحالي بعد التحديث لا تعطي القيمة الحقيقية للرصيد حيث ان من المفترض ان تكون القيمة نتيجة جمع1600 + 750 = 2350

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

مع العلم ان القيمة المخزونه بالجدول هي 2350 و هي القيمة الصحيحة

 

2- المشكلة التي اشرت اليها مسبقا تظهر لي مرارا و تكرارا ارجو المساعده اخي فانك لو اخترت ايرادات عامة.. بدلا من اختيار ذمم عملاء ..من مربع الحساب الرئيسي ثم ذهبت لاختيار نوع الايرادات و مثلا قمت بختيار بيع خردوات ..ثم ظغطت على زر جديد ستلاحظ ظهور المشكلة... وحسب اعتقادي ان سبب المشكله يكمن في علاقات  بالجدوال

 

جزاك الله خير

#10

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

حفظ الله الاعضاء القائمين على ادامتهِ و جزاهم الله خيرا

 

اتمنى من الاخ ابوم محمد مواصلة موضوعي

#11

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

الأخت الكريمة

تفضلي الملف بعد التعديل عليه

 

تحياتي/ أبومحمد

 

PMS3_2007_نوع الحركة.rar

2
#12

السلام عليكم اخي الفاضل شكرا جزيلا للمجهود الكبير  و الاهتمام الذي قدمته

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

 لذلك قمت بوضع الكود التالي

 Me.[txt40] = Nz([first_balance_dollar_Clients])

بدلا من

 Me.[txt40] = Nz([first_balance_dollar_Clients]) + Nz([LE_dollar])

و طبعا هذا و بالتاكيد بفضل الله ثم بفضل التعديل الذي قمت به فلو لا فكرتك لم تكن تخطر ببالي نهائيا

 

هذا بالنسبة للمطلب الاول تم حله و الحمدلله

 

لكن المشكلة في المطلب الثاني لم لا تزال قائمة و لا اعرف سبب ضهورها!!!

و شكرا لك

#13

السلام عليكم اخواني الكرام جميعا

طاب مسائكم

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

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

post-254477-0-89462200-1409160433_thumb.

الحركة.rar

#14

الأخت الكريمة/

يمكن عمل التحديث بأكثر من طريقة

باستخدام جملة Sql

أو أضافة كود UpDate

وبما أن غالب الجداول تم ربطها بعلاقة (فرض التكامل المرجعي)

فيمكن أضافة جملة التحديث التالية:

إلى حدث عند النقر للـ (RemmindMoney_Click)

Private Sub RemmindMoney_Click()
If [ccc] = "دولار" Then
[RemmindMoney] = [txt2] - [discount] - [PaiedMoney] + [a2]
[first_balance_dollar] = [first_balance_dollar] + ([txt2] - [discount] - [PaiedMoney] + [a2])
Else
[RemmindMoney] = [txt2] - [discount] - [PaiedMoney] + [b2]
[first_balance_dinar] = [first_balance_dinar] + ([txt2] - [discount] - [PaiedMoney] + [a2])
End If
Me.Requery
Me.Refresh
End Sub

 فيتححق المطلوب

 لكني لا أعلم طريقة ترتيبك (المبلغ المتبقي هل يتم أضافته إلى رصيد الزبون بالدولار)

 أم (المبلغ المتبقي يتم طرحه من رصيد الزبون بالدولار)

تم الحل على أفتراض أضافة

 

تحياتي/ أبومحمد

1
#15

شكرا لك اخي الكريم و جزاك الله الف خير  وفرج همك

جاري التجربة و ساخبرك بالنتائج

#16

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

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

الاول

ما فائدة :-

Me.Requery
Me.Refresh

الثاني

كيف استطيع قفل الفاتورة بعد طباعتها بحيث لا يمكن التلاعب بها و لا تتغير قيمها الاولية بالتحديث الذي يجري على بعض الحقول ؟

فمثلا اذا كان الرصيد الاولي للزبون امير 50 و بعد ملىء الفاتورة  الجديده بالطلبات و ا صبح الرصيد المتبقي لديه على سبيل المثال 200 حيث سيتحدث المبلغ المتبقي و يضاف على الرصيد الاولي  لجدول الزبائن كما كان في المطلب السابق و الذي تححق  و الحمد لله

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

ارجوا ان يكون مطلبي واضح

و زادك الله علما و بارك الله بك و باولادك

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