بسم الله الرحمن الرحيم
السلام عليكم
لدي قاعدة بيانات في 3 انواع من السندات ( قبض-صرف-قيد) وعملت 3 فورم لأدخال البيانات وحفظها في قاعدة البيانات
المطلوب عملت حقل تكست (للترقيم) علما ان حقل الترقيم في قاعدة البيانات من نوع text
وهناك ليبل لأسم السند ... اريد ترقيم تلقائي لرقم السند استنادا" لأسم السند في الليبل
يعني سند قبض يبدأ من 1 وهكذا تصاعديا
وكذلك بالنسبة للصرف من 1 ويتصاعد
ولسند القيد كذلك
استادي العزيز
اشكر تفهمك ... أنا أعمل في مجال المحاسبة ولم انخصص ببرامج المحاسبة
أهوى عمل برامج بالدوت نت ... قاعدة بياناتي عبارة عن جدول يومية daily
أخزن فيه كل المعلومات المستندية ,, وهناك دليل محاسبي (ليس نظام محاسبي موحد)
أقرب للدليل الحكومي ايرادات _ نفقات _ موجودات _ مطلوبات ...
وجدول لمراكز الكلفة (( هناك مؤسسات تستلم التخصيصات المالية))
وجدول بأسماء المستلمين ((اصحاب الذمم المالية)) لكي يتم تسوية ذممهم المالية
هذه فكرة بسيطة عن المطلوب .. وأتمنى أن تتحفني بأفكارك ,,
انا لا افهم في نظام المحاسبه
ولكن جداول قاعده البيانات يقبل فقط حقل واحد ترقيم تلقائي
لكن ممكن مثلا نعمل جدول ثاني يكون فيه ثلاث حقول رقميه تتحدث في كل مره نحفظ فيه
يعني تكون الحقول للجدول الثاني (قبض، صرف، قيد)
ولما نريد حفظ بيانات صرف جديد نقوم بالتالي
اولا نقرا حقل صرف في الجدول الثاني عشان نعرف فين وصل الرقم
ثانيا نزيد واحد ونحفظ البيانات في الجدول الاول
ثالثا نقوم بتحديث حقل صرف في الجدول الثاني بالرقم الجديد
هذه مجرد فكره ويمكن يكون عند بقيه الاعضاء افكار عمليه اكثر
' sarfID صرف
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
cnn.Open()
Dim cmd As New OleDb.OleDbCommand
cmd.Connection = cnn
' خطوة قراءة اعلى قيمة
cmd.CommandText = "SELECT MAX(sarfID) FROM [tb]"
Dim max As Integer = 0
On Error Resume Next ' احتياط لما يكون ما سطر عشان يقرا قيمه
max = cmd.ExecuteScalar
On Error GoTo 0
' خطة الاضافه
cmd.CommandText = "INSERT INTO [tb] ( [fname], [sarfID] ) VALUES ( @fname, @sarfID ) "
cmd.Parameters.AddWithValue("@fname", TextBox1.Text)
cmd.Parameters.AddWithValue("@sarfID", max + 1)
Dim rsult As Integer = cmd.ExecuteNonQuery()
cnn.Close()
cmd.Dispose()
If rsult > 0 Then
MsgBox("نجاح")
Else
MsgBox("فشل")
End If
End Sub
' gabdID قبض
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
cnn.Open()
Dim cmd As New OleDb.OleDbCommand
cmd.Connection = cnn
' خطوة قراءة اعلى قيمة
cmd.CommandText = "SELECT MAX(gabdID) FROM [tb]"
Dim max As Integer = 0
On Error Resume Next ' احتياط لما يكون ما سطر عشان يقرا قيمه
max = cmd.ExecuteScalar
On Error GoTo 0
' خطة الاضافه
cmd.CommandText = "INSERT INTO [tb] ( [fname], [gabdID] ) VALUES ( @fname, @gabdID ) "
cmd.Parameters.AddWithValue("@fname", TextBox1.Text)
cmd.Parameters.AddWithValue("@gabdID", max + 1)
Dim rsult As Integer = cmd.ExecuteNonQuery()
cnn.Close()
cmd.Dispose()
If rsult > 0 Then
MsgBox("نجاح")
Else
MsgBox("فشل")
End If
End Sub
' qaydID قيد
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
cnn.Open()
Dim cmd As New OleDb.OleDbCommand
cmd.Connection = cnn
' خطوة قراءة اعلى قيمة
cmd.CommandText = "SELECT MAX(qaydID) FROM [tb]"
Dim max As Integer = 0
On Error Resume Next ' احتياط لما يكون ما سطر عشان يقرا قيمه
max = cmd.ExecuteScalar
On Error GoTo 0
' خطة الاضافه
cmd.CommandText = "INSERT INTO [tb] ( [fname], [qaydID] ) VALUES ( @fname, @qaydID ) "
cmd.Parameters.AddWithValue("@fname", TextBox1.Text)
cmd.Parameters.AddWithValue("@qaydID", max + 1)
Dim rsult As Integer = cmd.ExecuteNonQuery()
cnn.Close()
cmd.Dispose()
If rsult > 0 Then
MsgBox("نجاح")
Else
MsgBox("فشل")
End If
23-06-15, 02:51 AM (آخر تعديل لهذه المشاركة : 23-06-15, 03:05 AM {2} بواسطة raaddawood.)
بحمد الله رفع الملف
بسم الله الرحمن الرحيم
رفعت الملف لكم استادي العزيز
قاعدة البيانات فيها جداول ,, الرئيسي الذي يخزن هو daily
عملت فيه 3 حقول ترقيم لسند الصرف وسند القبض وسند قيد id_s , id_kh , id_k
وهناك ترقيم رئيس تلقائي ,,, والحقول كلها من نوع text لضرورة الحفظ في القاعدة
في نموذج سند الصرف وسند القبض عملت زر جديد ودرجت الكود الي اعطيتوه لي
لم يتغير ,, برجاء التعديل ,, وعند الأضافة بعد الحفظ يتم تفريغ محتويات الفورم لنبدأ بسند جديد
كما وأرجو منكم ترتيب الكودات وان كانت هناك طريقة اسهل أرجو اعلامي
كما وأرجو اعلامي عن طريقة حفظ الكودات في module لأختصار الكودات وكيفية الحفظ وما الكودات التي تحفظ فيه
لبيان ارائكم بصدد المشروع وإفادتي لطفا ... فانا اريد عمل تقارير وطباعة المستندات
من ناحية الترقيم التلقائي ...
اقترح ان تستخدم عمود من نوع ترقيم تلقائي ويكون مفتاح اساسي.
او
اذا اردت ان تستخدم طريقة مخصصة فاستخدم توليد رقم عشوائي وتكتب دالة تفحص هل الرقم المولد موجود سابقا ام لا.
استاد سعود المحترم
كل عام وانتم بخير ورمضان كريم
للأسف أعمل على فجوال 2010 ولم يعمل عندي الملف المرفق لكم
طمعي بأرشادي حول النهج الصحيح للمشروع وترتيب الأكواد وكيف أجعلها في modu el لتفادي تكرار الكودات
شكرا جزيلا لكم