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

اريد كود اضافة قيمة افتراضيه لحقل

بدأه كوماندير في 22 يوليو 2010 · 7 رد · 1,423 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

دلوني بالله ياشباب عن طريقة كتابة كود لعمل قيمة افتراضية لحقل في نموذج مثلا اريد عمل الكود لعمل قيمة افتراضيه تزايديه مثلا حقل رقم الفاتورة ابداء مثلا بالرقم 00001 لفاتورة فعند بدئي بكتابة الفاتورة الثانية لا اريد ان اظطر لكتابة الرقم 00002 للفاتورة الثانية ولكن اريد عندما ابتدئ في كتابة الفاتورة الثانية يقوم البرنامج تلقائيا بعمل الرقم بدون تدخلي كما في الترقيم التلقائي (يعني بزيادة واحد لكل سجل جديد ابداء فيه )

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

تم تعديل هذه المشاركة بواسطة كوماندير في 22 يوليو 2010 في 18:27

#2
Dim m_IdNo
DoCmd.GoToRecord , , acLast
m_IdNo = IdNo

    DoCmd.GoToRecord , , acNewRec
    IdNo = m_IdNo + 1

IdNo هو حقل رقم الفاتورة

ضع هذا الكود في حدث عند النقر لزر إضافة فاتورة جديدة

الشرح :

Dim m_IdNo

لإنشاء متغير يحتفظ بقيمة رقم الفاتورة

DoCmd.GoToRecord , , acLast

إذهب إلى آخر سجل في القاعدة

m_IdNo = IdNo

ضع رقم آخر فاتورة في المتغير

DoCmd.GoToRecord , , acNewRec

إنشاء سجل جديد

IdNo = m_IdNo + 1

ضع في حقل الفاتورة قيمة المتغير المحفوظه سلفا ثم زد عليه واحد

إنتهى

صورة
صورة

حسابي في الفيس بوك
http://goo.gl/XIzwL

حسابي في تويتر
http://goo.gl/6p4e3

 

 
 
#3

بعد اذن اخونا فيصل

الكود السابق سيؤدى الغرض و لكن

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

او لو تم الانتقال الى السجل الجديد عن طريق اخر غير هذا الزر

اعتقد ان الموضوع سيؤدى الى الارتباك

و لذلك اعتقد ان الحل هو ان نضع الكود فى الحقل نفسه ( القيمة الافتراضية )

كما بالمرفق

New Microsoft Office Access Application.rar

1

مدونتى:-

احترف الأكسس مع أبو يوسف

متغيب حاليا لانشغالى الشديد

#4

اشكر تفاعلكم اعزائي ومزيدا من التقدم والنشاط

وقد حلت المشكلة ووصلت الفكرة

لكن لو ممكن اريد شي ايضا وهو عند حذف سجل مثلا سجل الفاتورة رقم 0004 ان ياخذ رقم الفاتورة 0005 هذا الرقم تلقائيا وان لا يبقى هناك شيئا فارغا يعني باغا الترتيب يستمر 0003 وبعده 0004 وهلم جرا ... لو ممكن

تم تعديل هذه المشاركة بواسطة كوماندير في 22 يوليو 2010 في 23:30

#5
كوماندير كتب:

اشكر تفاعلكم اعزائي ومزيدا من التقدم والنشاط

وقد حلت المشكلة ووصلت الفكرة

لكن لو ممكن اريد شي ايضا وهو عند حذف سجل مثلا سجل الفاتورة رقم 0004 ان ياخذ رقم الفاتورة 0005 هذا الرقم تلقائيا وان لا يبقى هناك شيئا فارغا يعني باغا الترتيب يستمر 0003 وبعده 0004 وهلم جرا ... لو ممكن

استخدم هذا الكود فى حدث عند النقر لزر

    Dim xid, strsql, xrec As String
    xid = Me.id
    xrec = Me.CurrentRecord
    DoCmd.SetWarnings False

If MsgBox("هل تريد حذف البيان", vbYesNo + vbCritical + vbMsgBoxRight + vbDefaultButton2, "تحذير") = vbNo Then
   Exit Sub
   Else

    DoCmd.RunCommand acCmdDeleteRecord
    Refresh
    strsql = "UPDATE table1 SET table1.Id = table1.Id-1 WHERE " & "(((table1.Id)>" & xid & "));"
    DoCmd.RunSQL strsql
    Me.Requery
    DoCmd.GoToRecord , , acGoTo, xrec
End If

تم تعديل هذه المشاركة بواسطة mrnooo2000 في 23 يوليو 2010 في 08:50

مدونتى:-

احترف الأكسس مع أبو يوسف

متغيب حاليا لانشغالى الشديد

#6

ايه الابداع ده

والله المشكلة هي من زمان وانا ابحث لها عن حل

مزيدا من التفاعل وشكرا جزيلا

تم تعديل هذه المشاركة بواسطة كوماندير في 23 يوليو 2010 في 17:55

#7

السلام عليكم

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

يرجى الافادة ولكم الشكر

#8

ابداع من الجميع وخصوصا من الاخ mrnooo2000

تستاهل +1 وبجدارة

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

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

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

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

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