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

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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  معرفة الأسماء المكررة في نفس العمود في الداتاقريدفيو جيولوجي مبتدئ 5 184 منذ 5 ساعة مضت
آخر رد: سعود
  زيادة عدد من السنوات لحقل تاريخ atefkhalf2004 13 630 21-11-21, 10:42 PM
آخر رد: asemshahen5
  [سؤال] اريد خانة تعديل فقط عامود واحد من الجدول مجـ متعلم ـرد 7 387 23-10-21, 02:47 AM
آخر رد: ابراهيم ايبو
  [سؤال] برنامج يبحث بالعديد من النصوص داخل ملف واحد maio_do 1 340 22-08-21, 01:49 PM
آخر رد: asemshahen5
  [VB.NET] استفسار تعبئة اثنين DataGridView في فورم واحد من جداول مختلفة bilgacim 3 585 08-08-21, 11:16 PM
آخر رد: ابراهيم ايبو
  إعادة ترتيب العمود التسلسلي kebboud 3 636 03-08-21, 02:50 AM
آخر رد: ابراهيم ايبو
  إعادة ترتيب العمود التسلسلي kebboud 0 336 01-08-21, 06:14 PM
آخر رد: kebboud
  كيفية حفظ واستدعاء أكثر من Text box من ملف واحد Yasser_Abuelhassab 1 377 27-07-21, 03:13 AM
آخر رد: سعود
  [كود] جعل التاكست بوكس يكتب في سطر واحد zazasami 3 504 30-06-21, 09:31 AM
آخر رد: ابو انس
  استعلام عن اكبر تاريخ و اكبر قيمة في الحقلين العيدروس 12 1,150 24-04-21, 05:37 AM
آخر رد: messry

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


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