السلام عليكم ورحمة الله وبركاته اريد ان اجعل حقل الارقام ترقيم تلقائى عن طريق الكود وليس عن طريق قاعده البيانات ارجو التجربة على الملف المرفق بالمرفقات
كيفيه عمل حقل ارقام متسلسلة فى قاعده بيانات Access
up
كلمات اتعبت الملائكة في كتابة الأجر فذهبوا وشكوا إلى ربهم .... ماذا يفعلون
فقال لهم سبحانه وتعالى اطووها بصحائفها وضعوها تحت عرشي فتبقى حسناتها إلى يوم القيامة الله اكبر
(( اللهم لك الحمد كما ينبغي لجلال وجهك وعظيم سلطانك))
وعليكم السلام ورحمة الله وبركاته
إستبدال الكود الموجود بالفورم لود بهذا الكود
Set DB = OpenDatabase("Access.mdb")
Set RS = DB.OpenRecordset("MyTbale", 2)
RS.MoveLast بعد فتح الجدول نذهب لآخر سجل
Text1.Text = RS(0) + 1 نجعل قيمة التكست تساوي قيمة الحقل + واحد
ملاحظة مهمة جدا قد يحدث هنا خلل فني خطير
لنفرض يوجد لدينا سجلين فقط خلينا نضرب المثال على كذا
بالنسبة لو أدخلنا رقم 2 في الأول مثلا وحفضنا السجل ثم في السجل اللي بعده ادخلنا رقم 1 وحفظنا أيضاً
بهذا الشكل حيكون الترتيب الفعلي للسجلات // السجل الأول رقم 2 ثم السجل الثاني رقم 1
الخلل يكمن في انه بعد فتح الجدول بالطريقة اللي انته عاملها سوف يذهب لآخر سجل ويزيد عليه رقم 1 ويضعه في التكست شفت الكارثة كيف حتحصل // هنا حيلاقي رقم 1 في آخر السجلات حيزيد عليه 1 ويضع القيمة في التكست وأحنا أصلا عندنا رقم أثنين ..... طيب حلها حيكون كيف نفس الأكواد بس طريقة فتح الجدول حتكون كذا
Set RS = DB.OpenRecordset("select num from MyTbale order by num asc", 2)
نحددله الحقل المراد ثم نقله رتبهم ترتيب تصاعدي أو تنازلي حسب الرغبة
على فكره الترتيب هذا ما يأثر في الجدول يعني بعد عملية الترتيب وحفظ سجل جديد لو فتحت الجدول حتلاقيه مثل ما أدخل أول مره المهم
asc = ترتيب تصاعدي
desc = ترتيب تنازلي
وبما أنه سوف يرتب الحقل تصاعدي فسيضع رقم 1 في الأول ثم رقم 2 //// الآن هنا يذهب لآخر سجل ثم يزيد رقم 1 ويضعه في التكست ...
أتمنى الإفادة مع أني كثرت الكلام
تم تعديل هذه المشاركة بواسطة محمدvb في 12 يناير 2010 في 09:26