تقييم الموضوع :
  • 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 ك ب / التحميلات : 13)
<<التوقيع>>
الرد }}
تم الشكر بواسطة: غدير الصليحي
#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

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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كيف يمكن عرض سجل واحد من DatagreadView في تقرير ReportView QWERTU 0 117 26-07-22, 04:36 PM
آخر رد: QWERTU
  كود البحث عن اكبر تاريخ في قاعدة بيانات اكسس hatem555 3 240 25-07-22, 12:11 PM
آخر رد: سعود
Question كيفية زيادة وانقاص الارقام العشرية في C# و VB.NET silverlord 4 451 29-05-22, 02:49 AM
آخر رد: silverlord
  كيفية اضافة اكتر من عمليه في وقت واحد او إلغاءها في حالة حدوث خطأ Emam emam 6 738 26-04-22, 04:03 AM
آخر رد: ابو محمد محمد محمد
Sad هل استطيع حذف بيانات العمود فى الداتا جريد لعدة صفوف حسين ادريس 2 623 19-03-22, 08:21 AM
آخر رد: حسين ادريس
  معرفة الأسماء المكررة في نفس العمود في الداتاقريدفيو جيولوجي مبتدئ 7 1,032 28-11-21, 05:08 PM
آخر رد: سعود
  زيادة عدد من السنوات لحقل تاريخ atefkhalf2004 13 1,599 21-11-21, 10:42 PM
آخر رد: asemshahen5
  [سؤال] اريد خانة تعديل فقط عامود واحد من الجدول مجـ متعلم ـرد 7 949 23-10-21, 02:47 AM
آخر رد: ابراهيم ايبو
  [سؤال] برنامج يبحث بالعديد من النصوص داخل ملف واحد maio_do 1 718 22-08-21, 01:49 PM
آخر رد: asemshahen5
  [VB.NET] استفسار تعبئة اثنين DataGridView في فورم واحد من جداول مختلفة bilgacim 3 964 08-08-21, 11:16 PM
آخر رد: ابراهيم ايبو

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


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