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

001-001
001-002
001-003
001-004
001-005
001-006

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

001-007

و هكذا
الرد }}}
تم الشكر بواسطة: سعود
#2
المثال مرفق 
PHP كود :
Imports System.ComponentModel

Public Class Form1
    Dim fpath 
As String IO.Path.GetDirectoryName(Application.ExecutablePath)
 
   Dim str As String "provider=microsoft.ace.oledb.12.0;data source=" fpath "\db.accdb"
 
   Dim con As New OleDb.OleDbConnection(str)
 
   Dim cm As New OleDb.OleDbCommand
    Dim dt 
As New DataTable
    Private Sub gd
()
 
       dt.Clear()
 
       cm.Parameters.Clear()
 
       DataGridView1.DataSource Nothing
        cm
.Connection con
        cm
.CommandText "select * from tb"
 
       If con.State ConnectionState.Closed Then con.Open()
 
       dt.Load(cm.ExecuteReader)
 
       If con.State ConnectionState.Open Then con.Close()
 
       DataGridView1.DataSource dt
        DataGridView1
.Columns(0).Width "100"
 
       DataGridView1.Columns(0).HeaderText "الرقم"
 
       DataGridView1.Columns(1).Width "150"
 
       DataGridView1.Columns(1).HeaderText "الاسم"
 
       DataGridView1.Columns(2).Width "100"
 
       DataGridView1.Columns(2).HeaderText "العمود الترقيم المخصص"
 
   End Sub
    Private Sub Form1_Load
(sender As ObjectAs EventArgsHandles MyBase.Load
        gd
()
 
   End Sub
    Private 
Function GetNewNumber() As Integer
        cm
.Parameters.Clear()
 
       Dim n As Integer 0
        cm
.CommandText "select max(n) from tb"
 
       If IsDBNull(cm.ExecuteScalarThen
            Return n
        Else
            n 
cm.ExecuteScalar
        End 
If
 
       Return n
    End 
Function
 
   Private Sub Button2_Click(sender As ObjectAs EventArgsHandles Button2.Click
        If con
.State ConnectionState.Closed Then con.Open()
 
       txtn.Text = (GetNewNumber() + 1)
 
       If con.State ConnectionState.Open Then con.Close()
 
   End Sub
    Private Sub Button1_Click
(sender As ObjectAs EventArgsHandles Button1.Click
        cm
.Parameters.Clear()
 
       cm.CommandText "insert into tb(tname,n) values(@tname,@n)"
 
       cm.Parameters.AddWithValue("@tname"txtname.Text)
 
       cm.Parameters.AddWithValue("@n"txtn.Text)
 
       If con.State ConnectionState.Closed Then con.Open()
 
       cm.ExecuteNonQuery()
 
       If con.State ConnectionState.Open Then con.Close()
 
       gd()
 
   End Sub
    Private Sub Form1_Closing
(sender As ObjectAs CancelEventArgsHandles Me.Closing
        If con
.State ConnectionState.Open Then con.Close()
 
   End Sub
End 
Class 




الملفات المرفقة
.zip   increasenumber.zip (الحجم : 30.66 ك ب / التحميلات : 15)
الرد }}}
تم الشكر بواسطة: غدير الصليحي
#3
(17-11-21, 09:42 AM)سعود كتب :
المثال مرفق 
PHP كود :
Imports System.ComponentModel

Public Class Form1
    Dim fpath 
As String IO.Path.GetDirectoryName(Application.ExecutablePath)
 
   Dim str As String "provider=microsoft.ace.oledb.12.0;data source=" fpath "\db.accdb"
 
   Dim con As New OleDb.OleDbConnection(str)
 
   Dim cm As New OleDb.OleDbCommand
    Dim dt 
As New DataTable
    Private Sub gd
()
 
       dt.Clear()
 
       cm.Parameters.Clear()
 
       DataGridView1.DataSource Nothing
        cm
.Connection con
        cm
.CommandText "select * from tb"
 
       If con.State ConnectionState.Closed Then con.Open()
 
       dt.Load(cm.ExecuteReader)
 
       If con.State ConnectionState.Open Then con.Close()
 
       DataGridView1.DataSource dt
        DataGridView1
.Columns(0).Width "100"
 
       DataGridView1.Columns(0).HeaderText "الرقم"
 
       DataGridView1.Columns(1).Width "150"
 
       DataGridView1.Columns(1).HeaderText "الاسم"
 
       DataGridView1.Columns(2).Width "100"
 
       DataGridView1.Columns(2).HeaderText "العمود الترقيم المخصص"
 
   End Sub
    Private Sub Form1_Load
(sender As ObjectAs EventArgsHandles MyBase.Load
        gd
()
 
   End Sub
    Private 
Function GetNewNumber() As Integer
        cm
.Parameters.Clear()
 
       Dim n As Integer 0
        cm
.CommandText "select max(n) from tb"
 
       If IsDBNull(cm.ExecuteScalarThen
            Return n
        Else
            n 
cm.ExecuteScalar
        End 
If
 
       Return n
    End 
Function
 
   Private Sub Button2_Click(sender As ObjectAs EventArgsHandles Button2.Click
        If con
.State ConnectionState.Closed Then con.Open()
 
       txtn.Text = (GetNewNumber() + 1)
 
       If con.State ConnectionState.Open Then con.Close()
 
   End Sub
    Private Sub Button1_Click
(sender As ObjectAs EventArgsHandles Button1.Click
        cm
.Parameters.Clear()
 
       cm.CommandText "insert into tb(tname,n) values(@tname,@n)"
 
       cm.Parameters.AddWithValue("@tname"txtname.Text)
 
       cm.Parameters.AddWithValue("@n"txtn.Text)
 
       If con.State ConnectionState.Closed Then con.Open()
 
       cm.ExecuteNonQuery()
 
       If con.State ConnectionState.Open Then con.Close()
 
       gd()
 
   End Sub
    Private Sub Form1_Closing
(sender As ObjectAs CancelEventArgsHandles Me.Closing
        If con
.State ConnectionState.Open Then con.Close()
 
   End Sub
End 
Class 



مشكور اخي سعود لكن الذي اريد بتنسيق هذا 001-002
نوع الحقل سوف يكون نص لكي يقبل الشرطة الفاصلة بين الرقمين
طبعا الرقم 001-002 هو يمثل جزئين 
الجز الاول رقم المجموعة و الجز الثاني يمثل رقم الطالب
اريد الزيادة في رقم الطالب في الجز الثاني فقط
الكود الاول شغال بس عند اضافة الشرطة الفاصله بين الجزئين يظهر خطاء
الرد }}}
تم الشكر بواسطة: سعود
#4
إقتباس :الجز الاول رقم المجموعة و الجز الثاني يمثل رقم الطالب

كنت اريد ان اتحدث عن هذا ولدي فكرتي الخاصة لكن كنت انتظر لعل احد لديه حل اكثر جدية مما لدي.
ممكن نضع حقل لكل مجموعة  وتكون نصية اما الحقل الرقمي اللذي يحتاج زيادة نجعله من نوع رقم.
وهكذا نحل المشكلة.
اذا لم تتضح ممكن اطبق الفكرة بمثال آخر وارفعه مجددا.
الرد }}}
تم الشكر بواسطة: غدير الصليحي
#5
(17-11-21, 07:21 PM)سعود كتب :
إقتباس :الجز الاول رقم المجموعة و الجز الثاني يمثل رقم الطالب

كنت اريد ان اتحدث عن هذا ولدي فكرتي الخاصة لكن كنت انتظر لعل احد لديه حل اكثر جدية مما لدي.
ممكن نضع حقل لكل مجموعة  وتكون نصية اما الحقل الرقمي اللذي يحتاج زيادة نجعله من نوع رقم.
وهكذا نحل المشكلة.
اذا لم تتضح ممكن اطبق الفكرة بمثال آخر وارفعه مجددا.

يا حبذا مثال مرفق

لو نستخدم الاستعلام max
بعد ذالك في اللغة نفسها نعرف متغير نوع نص 
ثم نعمل على بحث في المتغير على الفاصله ( - )
ثم نعمل على زيادة بمقدار واحد من بعد المفاصله في متغير جديد
او عمل فصل الرقم في متغير جديد 
ثم نعمل على تجميع القيمة الجديدة مع الفاصله 
هل نستطيع ان نطبق الفكره
الرد }}}
تم الشكر بواسطة: سعود
#6
PHP كود :
Public Class Form1
    Dim n 
As Integer 0
    Private Sub Button1_Click
(sender As ObjectAs EventArgsHandles Button1.Click
        n 
+= 1
        t2
.Text t1.Text.Split("-")(0) & "-" n.ToString("000")
 
   End Sub
    Private Sub Form1_Load
(sender As ObjectAs EventArgsHandles MyBase.Load
        n 
Val(t1.Text.Split("-")(1))
 
   End Sub
End 
Class 
بعد ان ناخذ النص من الجدول نجري عليه هذه الاكواد
الرد }}}
تم الشكر بواسطة: غدير الصليحي , غدير الصليحي
#7
(17-11-21, 08:46 PM)سعود كتب :
PHP كود :
Public Class Form1
    Dim n 
As Integer 0
    Private Sub Button1_Click
(sender As ObjectAs EventArgsHandles Button1.Click
        n 
+= 1
        t2
.Text t1.Text.Split("-")(0) & "-" n.ToString("000")
 
   End Sub
    Private Sub Form1_Load
(sender As ObjectAs EventArgsHandles MyBase.Load
        n 
Val(t1.Text.Split("-")(1))
 
   End Sub
End 
Class 
بعد ان ناخذ النص من الجدول نجري عليه هذه الاكواد
لو ترسل المرفق افصل لو سمحت
الرد }}}
تم الشكر بواسطة: ابو انس
#8
(17-11-21, 09:01 PM)غدير الصليحي كتب :
(17-11-21, 08:46 PM)سعود كتب :
PHP كود :
Public Class Form1
    Dim n 
As Integer 0
    Private Sub Button1_Click
(sender As ObjectAs EventArgsHandles Button1.Click
        n 
+= 1
        t2
.Text t1.Text.Split("-")(0) & "-" n.ToString("000")
 
   End Sub
    Private Sub Form1_Load
(sender As ObjectAs EventArgsHandles MyBase.Load
        n 
Val(t1.Text.Split("-")(1))
 
   End Sub
End 
Class 
بعد ان ناخذ النص من الجدول نجري عليه هذه الاكواد
لو ترسل المرفق افصل لو سمحت
المثال هذا من دون  قاعدة بيانات.
لكن اشوف المثال الموجود واحدثه ان شاء الله تعالى.
الرد }}}
تم الشكر بواسطة: غدير الصليحي , ابو انس
#9
(17-11-21, 09:04 PM)سعود كتب :
(17-11-21, 09:01 PM)غدير الصليحي كتب :
(17-11-21, 08:46 PM)سعود كتب :
PHP كود :
Public Class Form1
    Dim n 
As Integer 0
    Private Sub Button1_Click
(sender As ObjectAs EventArgsHandles Button1.Click
        n 
+= 1
        t2
.Text t1.Text.Split("-")(0) & "-" n.ToString("000")
 
   End Sub
    Private Sub Form1_Load
(sender As ObjectAs EventArgsHandles MyBase.Load
        n 
Val(t1.Text.Split("-")(1))
 
   End Sub
End 
Class 
بعد ان ناخذ النص من الجدول نجري عليه هذه الاكواد
لو ترسل المرفق افصل لو سمحت
المثال هذا من دون  قاعدة بيانات.
لكن اشوف المثال الموجود واحدثه ان شاء الله تعالى.
اشكرك اخي سعود طريقتك ناجحة مية مية 
لقد جربت من خلال بتون  بهذ الكود
كود :
 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim n As Integer = 0
        n = Val(TextBox1.Text.Split("-")(1))
        n += 1
        TextBox2.Text = TextBox1.Text.Split("-")(0) & "-" & n.ToString("000")
    End Sub

وكانت ادخل اي رقم بنفس التنسيق السابق و تظهر النتيجة صحيحه
الرد }}}
تم الشكر بواسطة: سعود , ابو انس


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كيف ارسل مجموع 3 تكست بوكس إلى واحد بالترتيب ؟ أبووسم 3 330 18-12-23, 05:17 PM
آخر رد: أبووسم
  طريقة جلب صف من قاعدة البيانات بشرط العمود ٤ لا يساوي فارغ Adel27213 2 423 07-11-23, 05:02 AM
آخر رد: Adel27213
  كيف اجعل البرنامج في بداية الشهر ينفذ حدث معين بالاصح اريد البرنامج في تاريخ واحد من Adel27213 3 484 05-11-23, 01:45 AM
آخر رد: justforit
  اريد التعديل على كود اذا كان القيمة المدخلة مكررة بDataGridView يتم فقط زيادة العدد moh61 6 820 26-07-23, 10:41 AM
آخر رد: تركي الحلواني
  مساعده في تشغيل اكثرمن فورم في وقت واحد maherhaddaf 5 527 19-07-23, 03:28 PM
آخر رد: Taha Okla
  طريقة حذف حرف زيادة من مربع النص علاء الكبابي 2 553 19-06-23, 05:08 PM
آخر رد: Taha Okla
Lightbulb كتابة اسم العمود في الداتا جريد فيو أبو خالد الشكري 5 735 18-04-23, 06:22 PM
آخر رد: أبو خالد الشكري
  زيادة كمية منتج Osama NY 3 592 12-04-23, 03:40 PM
آخر رد: مصمم هاوي
  هل يمكن الاعتماد على 2 او اكثر من قاعدة البيانات لبرنامج واحد حماده ممدوح البحيرى 0 469 10-12-22, 08:56 PM
آخر رد: حماده ممدوح البحيرى
  كيف يمكن عرض سجل واحد من DatagreadView في تقرير ReportView QWERTU 1 600 09-10-22, 05:27 PM
آخر رد: a7med saba

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


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