تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشكلة بكود التعديل بسبب جملة فور
#11
السلام عليكم جميعا ..
شكرا للأخ WaeLx   على الكود لانه يعمل جيدا وحل لي المشكلة ..
بارك الله فيك ..
========
ولاني اريد ازيد من الفهم لان هذه المشاركات تجعلك تفهم كيف ..
يفكر المبرمجين ورايت الاخ  ابراهيم ايبو  وضع رد وحابب اعرف فكرته في التعديل وحل المشكلة سأرفع لك
المشروع اخي ابراهيم ايبو لتنظر فيه وتعدل  .. لكي افهم فكرتك ..
-----
شكرا لكم جميعاً للمشاركة ووفقكم اله .
وهذا هو المشروع


الملفات المرفقة
.rar   Project Security Management Help35.rar (الحجم : 1.25 م ب / التحميلات : 17)
الرد }}}
تم الشكر بواسطة: WaeLx , ابراهيم ايبو , ابو ليلى , asemshahen5
#12
السلام عليكم ورحمة الله وبركاته
مسألة تعديل مشروع لمبرمج أخر اصعب من انشاء مشروع جديد بسبب محاولة فهم الاكواد والربظ بين الادوات المهم
اخي عبد الله قاعدة البيانات لديك كنت ستواجه فيها مشكلة الحفظ والتعديل وكلما اغلقت الرنامج واعدت تشغيله سوف لن تجد ماقمت بتخزينه 
والسبب انك وافقت على انشاء نسخة من قاعدة البيانات واصبح لديك اثنتا واحد في المشروع وواحدة في مجلد الـ Debug
قمت بانشاء قاعدة بيانات جديدة باسم DB1   
تم تعديل مثالك وبعض الامور في الاكواد  وعدلت لك   صب التحقق الى فنكشن ينادى عليه في اي جملة حفظ اوتعديل 
سيتم تمرير 3 باراميترات ( اسم الجدول - اسم الحقل في الجدول - اسم مربع النص المراد التحقق من قيمته )انظر الى كود بوتون الحفظ والتعديل


الملفات المرفقة
.zip   Project Security Management Help35.zip (الحجم : 1.42 م ب / التحميلات : 27)
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد }}}
#13
(21-06-20, 03:09 PM)ابراهيم ايبو كتب : السلام عليكم ورحمة الله وبركاته
مسألة تعديل مشروع لمبرمج أخر اصعب من انشاء مشروع جديد بسبب محاولة فهم الاكواد والربظ بين الادوات المهم
اخي عبد الله قاعدة البيانات لديك كنت ستواجه فيها مشكلة الحفظ والتعديل وكلما اغلقت الرنامج واعدت تشغيله سوف لن تجد ماقمت بتخزينه 
والسبب انك وافقت على انشاء نسخة من قاعدة البيانات واصبح لديك اثنتا واحد في المشروع وواحدة في مجلد الـ Debug
قمت بانشاء قاعدة بيانات جديدة باسم DB1   
تم تعديل مثالك وبعض الامور في الاكواد  وعدلت لك   صب التحقق الى فنكشن ينادى عليه في اي جملة حفظ اوتعديل 
سيتم تمرير 3 باراميترات ( اسم الجدول - اسم الحقل في الجدول - اسم مربع النص المراد التحقق من قيمته )انظر الى كود بوتون الحفظ والتعديل

وعليك السلام.
ربما كلامك صحيح..
فقط حبيت افهم فكرتك..
وهذا يفتح لي أفكار في فهم بعض
المختصين بما يفكرون..

على العموم شمرا لك..
انا في العمل وسأعود مساء
وارى مشروك.. جزاك الله خير..
----
فقط عندي سؤال بخصوص
ان قاعدة البيانات لا تحفظ كما قلت.. ما السبب
هل لان التقارير لها دخل لانها تعمل نسخة

كلامك صحيح انا عملت نسخه للقاعدة
ما الحل هل اعيد اكتب واصمم القاعدة من جديد
مش معقول وكيف احل المشكلة
ممكن توضح لي المشكلة.. لماذا؟


وفقك الله
الرد }}}
تم الشكر بواسطة: ابو ليلى , asemshahen5
#14
???

أخي ابراهيم ايبو   تابعت مشروعك ..
لا جديد فيه ؟؟

انا حينما اقوم واريد ان اعدل الشارة لا يسمح لي لكن ماذا لو اردت ..
أن اعدل في الإسم وتبقى الشارة كما هي ؟؟؟

نفس المشكلة سيعيد لي اظهار الرسالة لان الشرط مربوط برقم الشارة ؟؟؟

انا اريد يكون مرن حتى مع اسم الموظف  بارك الله فيك ..
فربما هناك خطأ بالاسم والشارة صحيح ... فاريد اغير الاسم وتبقى الشارة ولا اريد ان يظهر لي رسالة
ان الشارة موجودة سيكون عائق لي من تعديل اسم الموظف ..؟؟
هذا المقصد بارك الله فيك ..

وتحياتي لك
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو , ابو ليلى , asemshahen5
#15
السلام عليكم اخي عبدالله
اشكرك على  اهتمامك بعملك 
كتبت لك الكود ولكن لم يخطر ببالي اننا في جملة التعديل قد نغير في الاسم وهذا امر وارد او ربما نغير الشارة
لذلك غيرت قليلا في الكود بحيث تظهر رسالة تخبرك بوجود سجل يحمل الشارة نفسها سواء السجل نفسه او غيره وتطلب الموافقة على المتابعة لبتم التعديل او الحفظ
او الخروج  من الاجراء شيء أخر كنت قد نسيت وهو اني اضفت لايبل Lbl_id وكنت قد استخدمته في الكود كمربع نص  انتبهت لهذا الخطأ وخطأ صغير أخر متعلق بكود الحفظ مع باراميتر ال ID 
المهم استبدل هذه الاكواد فقط وسيعمل معك باذن الله
الفنكشن اصبح هكذا
كود :
Public Function DetectedValue(tble As String, colum As String, txtCompar As TextBox) As Boolean
       Dim detct As Boolean = False
       Dim dts As New DataTable()
       Try
           dts.Clear()
           da = New OleDbDataAdapter("select * From " & tble & " where " & colum & " = '" & txtCompar.Text.Trim & "'", Con)
           da.Fill(dts)
           If dts.Rows.Count > 0 Then
               detct = True
           Else
               detct = False
           End If
       Catch ex As Exception
           MessageBox.Show(ex.Message, "Alert", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
       End Try
       Return detct
   End Function
صب الحفظ   
كود :
Public Sub insert_User(ByVal FName As String, ByVal Shara As String)
       ' عندما يكون الاي دي ترقيم تلقائي لاندخل الاي دي في كود الحفظ هو يتولد تلقائيا
       Dim cmd As New OleDbCommand("insert into tb1 ( FName,Shara) values( @FName,@Shara)", con)
       cmd.Parameters.Add("@FName", OleDbType.VarChar).Value = FName
       cmd.Parameters.Add("@Shara", OleDbType.VarChar).Value = Shara
       con.Open()
       cmd.ExecuteNonQuery()
       con.Close()
   End Sub
كود بوتون الحفظ
كود :
Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click

       If txtName.Text = "" Then
           MsgBox("قم بإدخال الإسم لإتمام عملية الإضافة", MsgBoxStyle.Information, "تنبيه")
           Exit Sub
       End If

       If txtShara.Text = "" Then
           MsgBox("قم بكتابة رقم الشارة لإتمام عملية الإضافة", MsgBoxStyle.Information, "تنبيه")
           Exit Sub
       End If
       '---------------------------------
       ' التحقق من وجود سجل فيه نفس الشارة عبر الفنكشن التي ستبحث في الجدول وان وجدت ستعيد قيمة ترو
       Try
           If DetectedValue("tb1", "Shara", txtShara) = True Then ' التحقق من الحقل
               If (MessageBox.Show("يوجد سجل يحمل القيمة هل تريد المتابعة؟", "Alert", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation)) = Windows.Forms.DialogResult.Yes Then
                   insert_User(txtName.Text, txtShara.Text)
                   FillDGV()

                   MsgBox("تمت عملية الإضافة بنجاح", MsgBoxStyle.Information, "الإضافة")
                   AllClear()
               Else
                   txtShara.Focus()
                   Exit Sub
               End If
           Else
               insert_User(txtName.Text, txtShara.Text)
               FillDGV()

               MsgBox("تمت عملية الإضافة بنجاح", MsgBoxStyle.Information, "الإضافة")
               AllClear()
           End If
       Catch ex As Exception
           MsgBox(ex.Message)
       End Try

   End Sub
صب التعديل
كود :
 Public Sub update_User(ByVal FName As String, ByVal Shara As String, ByVal id As Integer)
       Dim cmd As New OleDbCommand("update tb1 set FName=@FName,Shara=@Shara where id=@id", con)
       cmd.Parameters.Add("@FName", OleDbType.VarChar).Value = FName
       cmd.Parameters.Add("@Shara", OleDbType.VarChar).Value = Shara
       cmd.Parameters.Add("@id", OleDbType.Integer).Value = id
       con.Open()
       cmd.ExecuteNonQuery()
       con.Close()
   End Sub
بوتون التعديل
كود :
  Private Sub btnUpdate_Click(sender As Object, e As EventArgs) Handles btnUpdate.Click
       Try
           If DetectedValue("tb1", "Shara", txtShara) = True Then ' التحقق من الحقل
               If (MessageBox.Show("يوجد سجل يحمل القيمة هل تريد المتابعة؟", "Alert", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation)) = Windows.Forms.DialogResult.Yes Then
                   update_User(txtName.Text, txtShara.Text, Lbl_Id.Text)
                   FillDGV()
                   MsgBox("تمت عملية التعديل بنجاح", MsgBoxStyle.Information, "التعديل")
                   AllClear()
               Else
                   txtShara.Focus()
                   Exit Sub
               End If
           Else
               update_User(txtName.Text, txtShara.Text, Lbl_Id.Text)
               FillDGV()
               MsgBox("تمت عملية التعديل بنجاح", MsgBoxStyle.Information, "التعديل")
               AllClear()

           End If
       Catch ex As Exception
           MsgBox(ex.Message)
       End Try
   End Sub
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد }}}
#16
شكرا لك للإهتمام ..
وإن شاء الله تتيسر الأمور وانظر في المشروع وأعدل كل شي ..
وأوافيك بالنتيجة ..
---
عندنا مشكاة نعاني منها في اليمن هي الكهرباء ..
4 ساعات منطفآة و 2 ساغتين شغال ..
في المجموع 16 ساعة منطفأة و 8 ساعات شغال ..
---
لا نكاد نجد الوقت للنظر في اللابتوب ..
بالكاد نصارع ونعمل شارجينج للأجهزة ..
---
على العموم شكرا لك ..
وبأقرب فرصة أوافيك ..
الرد }}}
تم الشكر بواسطة: ابو ليلى , ابراهيم ايبو , asemshahen5
#17
شكرا لك أخي ابراهيم ايبو

جربت الأكواد ولكن ؟

على الرغم من انه يظهر رسالة ان الرقم موجود لكن لوضغط ..
اليوزر موافق سيعدل القيمة على الرقم من ان هناك سجل يحمل نفس القيمة ؟
ورجعنا لنفس الخطأ وهو التكرار ..
وهذه صورة من الالسجلات المكررة

الرد }}}
#18
السلام عليكم اخي عبدالله
الكود يعمل بشكل ممتاز ربما لم تغير الفنكشن 
عندما نختار اي سجل من الداتا غرايد ستظهر البيانات في مربعات النصوص والاي دي في اللايبل 
الان لو اردنا التعديل بطبيعة الحال السجل موجود برقم الاي دي والشارة 
لدينا الحالات التالية :
-- لو غيرنا الشارة لوحدها سيتم التعديل بدون ان تظهر رسالة وجود سجل يحمل الشارة الا اذا وضعنا اسم شارة موجود في سجل أخر غير السجل الحالي عندها ستظهر الرسالة
 -- او غيرنا  الاسم لوحده ستظهر الرسالة بوجود سجل يحمل الشارة وفي الرسالة لدينا حالتين
1 - yes سيتم التعديل ان ضغطنا عليه اي موافق
2 - اما ان ضغطنا  no سيتم الخروج بدون تعديل ويوضع مؤشر الماوس في مربع نص الشارة لنعدل 
اما في الحفظ فقط ان كان احد السجلات فيه نفس الشارة ايضا لدينا خيارين الموافقة اولا


الملفات المرفقة
.zip   Project finalnt Help35.zip (الحجم : 1.42 م ب / التحميلات : 26)
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد }}}
#19
أخي بارك الله فيك ..

رقم الشارة في العمل لايتكرر إطلاقا ..
فحينما تظهر الرسالة لي بلا او نعم ؟؟

------
لا أحتاج ان يظهر لي بلا أو نعم لانه منطقياً لا يمكن وضع شارة
عامل موجودة لعامل آخر ..؟؟

----
وانا غيرت كل الاكواد التي اعطيتني اياها ..
ولا زال يظهر لي الرسالة وحنما اقول  نعم ..
يعيد نفس الشارة وهي موجودة مسبقا ويحفظها ..
وهذا خطأ ..؟
المقصود في التعديل والحفظ حينما اعدل او احفظ
لماذا يظهر لي رسالة بلا او نعم
ماذا لو بالخطأ ضغط نعم سيحفظ او سيعدل برقم موجود مسبقاً
وهذا تكرار لايجوز ويسبب مشاكل
لان الشارة لا تتكرر في العمل ..
الرد }}}
تم الشكر بواسطة: ابو ليلى , asemshahen5
#20
السلام عليكم ورحمة الله وبركاته
اخي عبد الله 
ظهور الرسالة هي لضبط عملية الحفظ والتعديل من الضغط بالخطأ على بوتون التعديل او الحفظ 
وكذلك اعلامك بوجود سجل يحمل الشارة سواء الذي تعدله او ان قمت بوضع شارة لسجل أخر سهوا
لدي سؤال هل تستخدم قاعدة البيانات التي انشأتها انت؟ اي المسماة DB
اذا كنت تستخدمها فكلامك صحيح لانني نبهتك عنها بأنك ستعاني من مشكلة الحفظ والتعديل فيها
استخدم القاعدة التي انشأتها لك وهي المسماة DB1 
حمل المثال الاخير وجرب يتم التعديل ان وافقت ولايتم اذا لم توافق وكذلك الحفظ
وكنت قد شرحت لك الحالات
اما غير ذلك لااعلم ان كان لديك شيئ آخر
دمت بخير
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد }}}



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


يقوم بقرائة الموضوع: