اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

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

قام بنشر

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

أريد ان أضع فى نموزج زر أضافة عندما أضغط علية يزيد رقم المسلسل بمقدار 1 لتفادى المشاكل التى تحدث من الترقيم التلقائى بالجداول .

وأن تصبح القيمة ألأفتراضية للمسلسل (الرقم السابق+1) .

شاكر لكم سعة صدركم.

جزاكم الله كل خير.

قام بنشر

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

أستاذى التقنى .

شاكر لك ردك وهو بالفعل ما أريد . :clapping:

ولكننى لى طلب أسأل الله ألأ لتخزنى فية وهو أنى أريد كيفية عملة (شرح) لأنى بصراحة حاولت العديد من المرات بعد نسخ الكود وتعديلها على مشروعى ولكننى للأسف فشلت.

فبرجاء الشرح لى جعله الله فى ميزان حسناتك. :fff:

وجزاك الله كل خير.

قام بنشر
السلام عليكم ورحمة الله وبركاتة.

أستاذى التقنى .

شاكر لك ردك وهو بالفعل ما أريد . :clapping:

ولكننى لى طلب أسأل الله ألأ لتخزنى فية وهو أنى أريد كيفية عملة (شرح) لأنى بصراحة حاولت العديد من المرات بعد نسخ الكود وتعديلها على مشروعى ولكننى للأسف فشلت.

فبرجاء الشرح لى جعله الله فى ميزان حسناتك. :fff:

وجزاك الله كل خير.

:fff::fff::fff:

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

بسم الله الرحمن الرحيم

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

حياك الله أخي عمر بن الخطاب

وشكر الله لك صبرك علي

شرح الترقيم بناء على قيمة سابقة :

النموذج ADD فيه عدد 2 زر أمر ومربعي نصي أحدهما الذي فيه الترقيم التلقائي واسمه ID

أولا : نضع الوظيفة التالية في أي مكان من الوحدة النمطية للنموذج ADD ولاحظ أن اسمها checkid:

Function checkid() As Long

 Dim formid As Long, Tblmax As Long

 formid = Me.id
 Tblmax = Nz(DMax("[id]", "names"))

 If formid <= Tblmax Then
   checkid = Tblmax + 1
 Else
   checkid = formid
 End If

End Function
فهي تقوم بتوليد رقم جديد بحيث تضيف رقم واحد لآخر رقم حالي موجود في السجلات وبذلك يزيد الترقيم التلقائي بمقدار واحد . شرح كود الوظيفة checkid : formid مساوية لقيمة Me.id السطر :
Tblmax = Nz(DMax("[id]", "names"))
يقوم بجلب آخر سجل وبالطبع الذي يحمل معه أعلى قيمة في الترقيم فإذا كان formid <= Tblmax فسيتم اضافة رقم واحد الى مربع النصID وذلك من خلال السطر التالي :
checkid = Tblmax + 1
فإن لم يتحقق الشرط فسيكون : checkid = formid الزر (اضافة سجل آخر) يحوي الكود التالي :
Private Sub Command5_Click()
  Me.id = checkid()
 DoCmd.GoToRecord , , acNewRec
 Me.id = Nz(DMax("[id]", "names") + 1)
End Sub

شرح الكود :

هنا قيمة مربع النص ID مستمدة من الوظيفة checkid

بعد ذلك سيتم توجيه المؤشر الى آخر السجلات بحيث يكون سجلا جديداً

السطر الثالث من هذا الكود يقوم بإضافة رقم واحد الى رقم آخر سجل وبذا يكون لدينا تسلسل جديد بناء على قيمة سابقه والذي قام بإحضار آخر سجل هو الأمر DMax

الخلاصة أن النموذج ADD هو الذي يقوم بالترقيم بناء على آخر قيمة وذلك من خلال الزر (اضافة سجل آخر)

والله اعلى وأعلم

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

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

أخى فى الله / التقنى

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

لن أقول لك شكرا لأنك أكبر منها بكثير. :clapping::clapping::clapping:

بارك الله فيك وفى والديك ومن تحب . :fff::fff::fff:

  • 6 months later...
قام بنشر

شكرا أخي التقني على المثال ،ولكن لدي سؤال وهو كيف يمكنني تجديد الرقم التلقائي بداية كل سنة بحيث يبدأ الترقيم من 1 بداية السنة الجديدة مع إضافة رقم السنة إلى الترقيم (مثال: 2007-1، 2008-1، 2009-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