تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] الترقيم التلقائي
#1
بسم الله الرحمن الرحيم
الاخوة الافاضل كل عام وانتم بخير   ...   وطبتم وطابت اوقاتكم

قمت بانشاء مشروع بالفيجول بيسك 2015 معتمداً على قاعدة بيانات اكسيس 
لدي جدول اسمه let_50  وهو خاص بخطابات الضمان -   فيه عمود اسمه let_code_50  وقمت بعمل كود لكل خطاب ضمان على حدي مستخدماً الكود التالي الذي يقوم بتوليد الكود بشكل اوتوماتيكي اعتمادا على اخر كود موجود فى الجدول
كود :
  Dim dcJobTicketNo As New OleDb.OleDbCommand("SELECT MAX(let_code_50)+1 AS JobTicketNo from LETTERS_50", con)
المشكلة الان
انني لدي 3 انواع من الخطابات واريد ان اصنع 3 اكواد وذلك بناء على الاختيار من ComboBox
مثلا سيكون الكومبو بوكس بداخله 3 اختيارات 
50000
100000
other
المطلوب اذا اخترة الاختيار الاول (50000) يبداء الترقيم كود 5001 والمرة التى تليها يبداء الكود من بعد  اخر رقم 
ثـــــــــم اذا اخترة الاختيار الثانى (100000) يبداء الترقيم كود 1001 والمرة التى تليها يبداء الكود من بعد  اخر رقم 
ثـــــــــم اذا اخترة الاختيار الثالث(other) يبداء الترقيم كود 9001 والمرة التى تليها يبداء الكود من بعد  اخر رقم 

اسف على الاطالة
وان شاء الله اجد ضالتي لديكم
الرد }}}
تم الشكر بواسطة:
#2
السلام عليكم و رحمة الله و بركاته
بمعلوماتي البسيطة أخي الكريم .. هذا الأمر لم أستطع تخيّله و أتمنى فعلا أن تجد المساعدة من الإخوة الأعضاء بارك الله فيهم
1 - لأنّ عمود الترقيم التلقائي و كل الدوال تعتمد على آخر رقم موجود بقاعدة البيانات .. و سيادتك لديك 3 إختيارات و لذلك كود الترقيم التلقائي على أي أساس سوف يختار آخر رقم سجل ليضيف عليه واحد .
اللهم .. إذا تركت حقل الترقيم التلقائي يسلك مجراه الترقيمي بالطريقة العادية و تضيف حقل آخر يأخذ قيمة الترقيم التلقائي و تضيف له ترقيمك الخاص
2 - هذا الأمر سيحدث لك لخبطة بالترقيم و ما سيترتب عن ذلك من أخطاء
3 - لو من الممكن تفكّر في كيفية تعديل البيانات لديك ليصبح كل جزء بحقل خاص سيكون أفضل و أسهل .. و الله أعلم
تحياتي
قناتنا على اليوتوب
الرد }}}
تم الشكر بواسطة: mr_hso , ابراهيم ايبو , elgokr , elgokr
#3
استاذ عبد العزيز صباحك فل وورد
اتبعت نصيحتك وحاولت ان احلها ولكن ببعض من Smile Smile (الفكاكا)  Smile Smile بس الحمد لله حققت الغرض

اولاً: اضفت ثلاثة عواميد فى الجدول كل
 (let_50   -   let_100   -   let_oth)

ثانياً: اضفت ثلاث RadioButton 

(50000  -  100000  -  other)

ثم اضفت هذا الكود ليتم التوليد الاوتوماتيكي
كود :
Private Sub RadioButton1_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton1.CheckedChanged
       If RadioButton1.Checked = True Then
           TextBox3.Text = "50000"
           Dim dtJobTicketNo As New DataTable
           Dim cmd As New OleDbCommand("select * from LETTERS where let_50 =" & TextBox1.Text & "", con)
           Dim dcJobTicketNo As New OleDb.OleDbCommand("SELECT MAX(let_50)+1 AS JobTicketNo from LETTERS", con)
           con.Open()
           TextBox1.Text = dcJobTicketNo.ExecuteScalar
           con.Close()
       Else
           TextBox3.Text = ""
       End If
   End Sub
   Private Sub RadioButton2_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton2.CheckedChanged
       If RadioButton2.Checked = True Then
           TextBox3.Text = "100000"
           Dim dtJobTicketNo As New DataTable
           Dim cmd As New OleDbCommand("select * from LETTERS where let_100 =" & TextBox1.Text & "", con)
           Dim dcJobTicketNo As New OleDb.OleDbCommand("SELECT MAX(let_100)+1 AS JobTicketNo from LETTERS", con)
           con.Open()
           TextBox1.Text = dcJobTicketNo.ExecuteScalar
           con.Close()
       Else
           TextBox3.Text = ""
       End If
   End Sub
   Private Sub RadioButton3_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton3.CheckedChanged
       If RadioButton3.Checked = True Then
           TextBox3.Text = ""
           Dim dtJobTicketNo As New DataTable
           Dim cmd As New OleDbCommand("select * from LETTERS where let_oth =" & TextBox1.Text & "", con)
           Dim dcJobTicketNo As New OleDb.OleDbCommand("SELECT MAX(let_oth)+1 AS JobTicketNo from LETTERS", con)
           con.Open()
           TextBox1.Text = dcJobTicketNo.ExecuteScalar
           con.Close()
       Else
           TextBox3.Text = ""
       End If
   End Sub

لم يبقي الا امر واحد الحفظ

كما تري انا قمت بتوليد الرقم فى textbox1
ومن ثما سوف احفظه فى الجول فى عامود واحد حتى يسهل امر البحث عن الرقم
لذكل وضعت الكود التالي فى زر الحفظ دون النظر الى نوع الخطاب
كود :
dt.Rows(pos).Item(0) = TextBox1.Text
ثم وضعت هذا الكود حتى يتمكن من توليد الرقم فى المرة التالية
كود :
If RadioButton1.Checked = True Then
           dt.Rows(pos).Item(24) = TextBox1.Text
           dt.Rows(pos).Item(25) = "0"
           dt.Rows(pos).Item(26) = "0"
       ElseIf RadioButton2.Checked = True Then
           dt.Rows(pos).Item(24) = "0"
           dt.Rows(pos).Item(25) = TextBox1.Text
           dt.Rows(pos).Item(26) = "0"
       ElseIf RadioButton3.Checked = True Then
           dt.Rows(pos).Item(24) = "0"
           dt.Rows(pos).Item(25) = "0"
           dt.Rows(pos).Item(26) = TextBox1.Text
       End If
وبذلك تمت العملية بنجاح
يا رب اكون عرفت اوصل المعلومة لمن يقرا ليستفيد بها الاخرون
سبحان الله وبحمده سبحان الله العظيم
الرد }}}
#4
السلام عليكم اخوتي الكرام 
بفضل من الله وتوفيقه قمت بعمل مثال لجعل الترقيم تلقائي وفق 3 فئات واجد 1000 والثانية 5000 والاخرى 9000
وعند تحديد الفئة من الكومبوبوكس ثم الضغط على زر جديد سيقوم بتوليد الترقيم وفق الفئة وان لم يكن هناك اي سجل من تللك الفئة
سيكون الترقيم بسجل الفئة + 1 ويمكن الحفظ والتعديل والحدف وكأن ذلك ترقيم واحد تماما
ارجو ان يكون هذا ماطلبه اخونا الكريم mr_hso  ويستفيد منه من يطلع عليه
تقبل تحياتي اخي عبد العزيز


الملفات المرفقة
.rar   3_Max_ID.rar (الحجم : 86.19 ك ب / التحميلات : 145)
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد }}}
#5
السّلام عليكم و رحمة الله و بركاته
أشكرك جزيل الشكر أخي الفاضل " mr_hso " على المحاولة القيمة و وضعك للكود للإطّلاع و الإستفادة منه للجميع .. و هذه مبادرة طيبة .. طيبة شخصك الكريم ..
بدوري أشكر أخي العزيز الغالي " ابراهيم إيبو " جزيل الشكر .. مع كامل عرفاني لك بجميل و روائع تدخلاتك المميزة .. جزاك الله خير الجزاء و زادك من علمه و فضله و نفع بك الاسلام و المسلمين
تحياتي و احتراماتي و تشكراتي و تقييماتي لكما
قناتنا على اليوتوب
الرد }}}
تم الشكر بواسطة: mr_hso , sendbad100 , sendbad100 , elgokr
#6
الشكر لله والحمد لله
للكلام الجميل المنمق والتهذيب الراقي عنوان واحد هو عبد العزيز البسكري شكرا لك من كل قلبي لمساهماتك الرائعة
 في هذا المنتدى
حل المشكلات البرمجية يحتاج الى صبر وتخيل لسير الكود والخزينة العلمية والتجربة تسرع من ايجاد الحل 
اما الاهم من كل ذلك في تصوري هو ابجاد المشكلة بحد ذاتها وهذا مايوجده اعضاء اسرة فيجوال بيسك لكل العرب
فالسؤال بحد ذاته يخلق لك افقا للابداع في الحلول والبحث 
اشكركم مرة ثانية اخواي mr_hso -  عبد العزيز البسكري
تقصدت كلمة ثانية لانها تعني ان هناك ثالثة ورابعة و و و ودوام الشكر لانني لوكتبت مرة أخرى بدلها
 لانتهى الشكر(كما تعلم وانت استاذ باللغة العربية)
دمتم بخير
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد }}}
تم الشكر بواسطة: عبد العزيز البسكري , mr_hso , elgokr
#7
الاستاذ الفاضل المحترم / عبد العزيز البسكري
اشكر لحضرتك ذوقك الرفيع وتشجيعك 
واتمني ان ينفعنا الله بهذا العلم ويجعله فى ميزان حسناتنا جميعا 
اثابنا الله واياكم 
شكرا لحضرتك


الاستاذ / ابرهيم ايبو
تحياتي لشخك الكريم 
ما فعلته انت مقابل الذي فعلته انا هو الفرق بين المحترف والهاو
ذادك الله من علمه 
لكن هناك سؤال حين شرعت فى تنفيذ الاكواد على المشروع الخاص بي ظهر خط احمر تحت هذه الجملة 
Cmb_ModeMaxID
ولا ادري لماذا
وهذا غير رسالة تظهر 


ولا ادري السبب ايضا
تحياتي وامتناني لمجهودك وشكرا لذوقك الرفيع
الرد }}}
تم الشكر بواسطة:
#8
السلام عليكم اخي الكريم
هذه الجملة هي اسم الكومبو بوكس التي فيها فئات الترقيم Cmb_ModeMaxID
والرسالة الاخرى هي كوني استخدم قاعدة بيانات Access 2003 
  Provider=Microsoft.Jet.OLEDB.4.0  
انشئ قاعدة بيانات حسب الحقول بنسخة access 2007 

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







الرد }}}
تم الشكر بواسطة: عبد العزيز البسكري , elgokr , mr_hso
#9
(29-03-19, 04:07 PM)ابراهيم ايبو كتب :
السلام عليكم اخي الكريم
هذه الجملة هي اسم الكومبو بوكس التي فيها فئات الترقيم Cmb_ModeMaxID
والرسالة الاخرى هي كوني استخدم قاعدة بيانات Access 2003 
  Provider=Microsoft.Jet.OLEDB.4.0  
انشئ قاعدة بيانات حسب الحقول بنسخة access 2007 

واحذف الفديمة وضع جملة اتصال مع قاعدة بيانات 2007

السلام عليكم استاذ ابرهيم
تم تنفيذ الكود وكله تمام جزاك الله خيرا وذادك علما
تحياتي لك ولمجهودك المشكور
سبحان الله وبحمده سبحان الله العظيم
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو , elgokr
#10
Question 
(29-03-19, 03:54 PM)mr_hso كتب : الاستاذ الفاضل المحترم / عبد العزيز البسكري
اشكر لحضرتك ذوقك الرفيع وتشجيعك 
واتمني ان ينفعنا الله بهذا العلم ويجعله فى ميزان حسناتنا جميعا 
اثابنا الله واياكم 
شكرا لحضرتك




بخصوص هذا الرساله اذهب الى project في اعلى شريط للبرنامج ومن قم اختار خصائص المشروع

 اليك صورة توضيحيه
الرد }}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم