05-12-17, 08:41 AM
مع أن الموضوع قد تم حله، فقد أردت وضع أسلوب آخر للفائدة
هذه طريقة أخرى أرجو أن تكون مفيده
وهي تكوين الرقم الجديد دون حفظه الا عند اضافة البيانات فيتم ارفاقه مع معهم
إنشاء رقم جديد (دون حفظه) عن طريقة الدالة getNewID
على أساس أن الحقل نوعه نصي كما في المثال المرفق
وبمكانك تجربة بالكود التالي على المثال المرفق
هذه طريقة أخرى أرجو أن تكون مفيده
وهي تكوين الرقم الجديد دون حفظه الا عند اضافة البيانات فيتم ارفاقه مع معهم
إنشاء رقم جديد (دون حفظه) عن طريقة الدالة getNewID
على أساس أن الحقل نوعه نصي كما في المثال المرفق
PHP كود :
'معرفة الرقم الجديد
Function getNewID() As String
Try
cnn.Open()
Using cmd As New OleDbCommand("Select Top 1 [ID] From [Table1] Order By [ID] Desc", cnn)
Dim id As String = cmd.ExecuteScalar
If IsNothing(id) Then id = Today.Year & "-000"
Dim y As Integer = Val(id.Split("-")(0))
Dim i As Integer = Val(id.Split("-")(1))
If y <> Today.Year Then
y = Today.Year
i = 0
End If
id = y.ToString & "-" & (i + 1).ToString("000")
Return id
End Using
Catch ex As Exception
MsgBox(ex.Message)
Return Nothing
Finally
cnn.Close()
End Try
End Function
وبمكانك تجربة بالكود التالي على المثال المرفق
PHP كود :
Imports System.Data.OleDb
Public Class Form1
Dim cnn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\DBTEST.accdb;Persist Security Info=True")
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'معرفة الرقم الجديد
Dim id As String = getNewID()
MsgBox("الرقم الجديد: " & vbNewLine & id)
'عرض الرقم الجديد
TextBox1.Text = id
'الحفظ
save(id)
End Sub
'معرفة الرقم الجديد
Function getNewID() As String
Try
cnn.Open()
Using cmd As New OleDbCommand("Select Top 1 [ID] From [Table1] Order By [ID] Desc", cnn)
Dim id As String = cmd.ExecuteScalar
If IsNothing(id) Then id = Today.Year & "-000"
Dim y As Integer = Val(id.Split("-")(0))
Dim i As Integer = Val(id.Split("-")(1))
If y <> Today.Year Then
y = Today.Year
i = 0
End If
id = y.ToString & "-" & (i + 1).ToString("000")
Return id
End Using
Catch ex As Exception
MsgBox(ex.Message)
Return Nothing
Finally
cnn.Close()
End Try
End Function
Function save(ByVal id As String) As Boolean
Try
cnn.Open()
Using cmd As New OleDbCommand("Insert Into [Table1] ([ID]) Values(@id)", cnn)
cmd.Parameters.AddWithValue("@id", id)
cmd.ExecuteNonQuery()
End Using
Return True
Catch ex As Exception
MsgBox(ex.Message)
Return False
Finally
cnn.Close()
End Try
End Function
End Class

