تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] كود اظهار رساله في حال وجود الرقم في اكثر من عمود
#1
السلام عليكم ورحمة الله وبركاته



لدي برنامج وضعت فيه خانة رقم الهوية الرئيسي (textbox) ووضعت فيه خانه اخري التابعين (textbox)



المطلوب

لو قمت ووضعت رقم هوية احد التابعين في خانة التابع وتم الحفظ



وبعد وقت اريد ان اضيف التابع في خانه رقم الهوية  الرئيسي 



اذا قمت وادخلت هوية التابع في الرئيسي 



اريد ان تظهر رساله الشخص موجود في قائمة التابعين للهوية الرئيسي رقم ....................

قاعدة البيانات اكسس



اتمني وصلت الفكرة 

هذا الكود للحفظ واضهار رساله اذا كان الرقم موجود مسبقا في الرئيسي فقط 

كود :
If connAccess2005.State = ConnectionState.Closed Then connAccess2005.Open()
       Dim cmd As New OleDbCommand("SELECT COUNT([idr]) FROM [tan]  WHERE [idr]=? ", connAccess2005)
       cmd.Parameters.AddWithValue("@", Val(txtidr.Text))
       If cmd.ExecuteScalar > 0 Then
           MsgBox("رقم الهوية مضاف مسبقا!", MsgBoxStyle.Exclamation, "تنبية!")
           Return

       End If
       Try
           Dim cmdinsert As New OleDbCommand("insert into tan (idr, idt ) values ('" & txtidr.Text & "','" & txtidt.Text & "')")
           cmdinsert.Connection = connAccess2005
           cmdinsert.ExecuteNonQuery()
       
   MsgBox("تم حفظ البيانات بنجاح")

 Catch ex As Exception
            MsgBox(ex.Message.ToString)
        End Try
        connAccess2005.Close()
الرد }}}
تم الشكر بواسطة:
#2
كرر الإستعلام في جدول التابعين ان كان يوجد جدول منفصل
او اضف الشرط في عمود رقم التابعين
PHP كود :
Dim cmd As New OleDbCommand("SELECT COUNT([idr]) FROM [tan]  WHERE [idr]=?  and [IDCode]=?"connAccess2005
[صورة مرفقة: images?q=tbn:ANd9GcT72OLJW7D1E5QW-HUeWeJ...TGoNeg2jnQ]
الرد }}}
تم الشكر بواسطة: Taha Okla , Taha Okla
#3
اهلين اخ تركي

اتمني لو تحطه لي بمثال أكون لك من الشاكرين

مبتدئ بالبرمجة
الرد }}}
تم الشكر بواسطة:
#4


هذي صورة البرنامج المطلوب 



لما يتم ادخال الاسم الرئيسي والتابعين وحفظها 



لما يتم الحفظ ورجعت مره ثانية ابي اضيف التابع رئيسي يطلع لي رساله 



بأن صاحب هذه الهوية مضاف تابع للمستخدم الرئيسي صاحب الهويه ..............



اتمني وصلت الفكره 



البرنامج بالمرفقات للتعديل عليه 


الملفات المرفقة
.rar   ali.rar (الحجم : 232.47 ك ب / التحميلات : 9)
الرد }}}
تم الشكر بواسطة:
#5
يبدو أن الكود يقوم بالتحقق من وجود الرقم المُدخل في قاعدة البيانات قبل إدخاله، وإذا كان موجودًا، يُظهر رسالة تنبيه. الخطوة التالية هي إدخال البيانات في حالة عدم وجود الرقم.

ومن الجيد أنك تتحقق من الاتصال بقاعدة البيانات وتُغلقه بشكل صحيح. إليك تحسينات للكود

هذا الكود يقوم بإدخال البيانات إذا لم يتم العثور على الرقم في قاعدة البيانات، 
وإلا فإنه يُظهر رسالة تنبيه. يستخدم الكود استعلامات معلماتية (parameterized queries) 
للتعامل مع البيانات المدخلة، 
مما يساهم في تفادي ثغرات الأمان مثل هجمات حقن SQL (SQL injection).
PHP كود :
If connAccess2005.State ConnectionState.Closed Then connAccess2005.Open()
Try
 
   Dim cmd As New OleDbCommand("SELECT COUNT([idr]) FROM [tan] WHERE [idr]=?"connAccess2005)
 
   cmd.Parameters.AddWithValue("@idr"Val(txtidr.Text))
 
   Dim count As Integer Convert.ToInt32(cmd.ExecuteScalar())
 
   
    If count 
0 Then
        MsgBox
("رقم الهوية مضاف مسبقا!"MsgBoxStyle.Exclamation"تنبية!")
 
       Return
    End 
If

 
   Dim cmdinsert As New OleDbCommand("INSERT INTO tan (idr, idt) VALUES (?, ?)"connAccess2005)
 
   cmdinsert.Parameters.AddWithValue("@idr"txtidr.Text)
 
   cmdinsert.Parameters.AddWithValue("@idt"txtidt.Text)
 
   cmdinsert.ExecuteNonQuery()
 
   
    MsgBox
("تم حفظ البيانات بنجاح")
Catch 
ex As Exception
    MsgBox
(ex.Message.ToString())
Finally
 
   connAccess2005.Close()
End Try 

ولا تنسي الضغط علي شكر
الرد }}}
تم الشكر بواسطة: مبرمج صغير 1
#6
(06-01-24, 02:04 AM)HALIM ELEULMA كتب : يبدو أن الكود يقوم بالتحقق من وجود الرقم المُدخل في قاعدة البيانات قبل إدخاله، وإذا كان موجودًا، يُظهر رسالة تنبيه. الخطوة التالية هي إدخال البيانات في حالة عدم وجود الرقم.

ومن الجيد أنك تتحقق من الاتصال بقاعدة البيانات وتُغلقه بشكل صحيح. إليك تحسينات للكود

هذا الكود يقوم بإدخال البيانات إذا لم يتم العثور على الرقم في قاعدة البيانات، 
وإلا فإنه يُظهر رسالة تنبيه. يستخدم الكود استعلامات معلماتية (parameterized queries) 
للتعامل مع البيانات المدخلة، 
مما يساهم في تفادي ثغرات الأمان مثل هجمات حقن SQL (SQL injection).
PHP كود :
If connAccess2005.State ConnectionState.Closed Then connAccess2005.Open()
Try
 
   Dim cmd As New OleDbCommand("SELECT COUNT([idr]) FROM [tan] WHERE [idr]=?"connAccess2005)
 
   cmd.Parameters.AddWithValue("@idr"Val(txtidr.Text))
 
   Dim count As Integer Convert.ToInt32(cmd.ExecuteScalar())
 
   
    If count 
0 Then
        MsgBox
("رقم الهوية مضاف مسبقا!"MsgBoxStyle.Exclamation"تنبية!")
 
       Return
    End 
If

 
   Dim cmdinsert As New OleDbCommand("INSERT INTO tan (idr, idt) VALUES (?, ?)"connAccess2005)
 
   cmdinsert.Parameters.AddWithValue("@idr"txtidr.Text)
 
   cmdinsert.Parameters.AddWithValue("@idt"txtidt.Text)
 
   cmdinsert.ExecuteNonQuery()
 
   
    MsgBox
("تم حفظ البيانات بنجاح")
Catch 
ex As Exception
    MsgBox
(ex.Message.ToString())
Finally
 
   connAccess2005.Close()
End Try 

ولا تنسي الضغط علي شكر


اولا شاكر لمرورك وردك

الكود يحفظ معي فقط ولكن لايتم التدقيق في قاعدة البيانات هل الرقم موجود في التابعين ام لا

حفظ معاي وكرر الرقم في التابعين
الرد }}}
تم الشكر بواسطة:
#7
- أولاً : عندما تعمل علاقة بين جدولين، يجب أن يكون بينهما حقل مشترك تتكرر البيانات فيه في كلا الجدولين (في أحدهما مرة على الأكثر) فإن وجِدَ الأول.. (تكرر في الثاني صفر مرة على الأقل(يعني قد لا يوجد وقد يوجد مرات كثيرة)).
- ثانياً : الجدولين عندك في قاعدة البيانات التي لديك لا يوجد بينهما حقل مشترك. 
- ثالثاً : أنت عملت علاقة بين حقلين مختلفين (هوية الرئيسي - وهوية التابع) وهذا خطأ مربع.
- رابعاً : عندما تعمل علاقة بين جدولين عليك الاستفادة من الاستعلامات الداخلية التي تضمنها ضمن قاعدة البيانات (وهذا أنت لم تفعله وربما لا تعرفه) فعليك الاطلاع أكثر على فيديوهات تعلم قواعد البيانات والعلاقات بين الجداول.
- خامساً : عندما تريد استخدام الجداول بشكل مباشر من مشروع برمجي (وليس الربط مع الاستعلامات على تلك الجداول) فمن الخطأ أن تعمل علاقة بين الجداول ضمن قاعدة البيانات، بل الربط يكون فقط في رأسك وتطبقه على الجداول من خلال الكود الذي أنت تضعه (فالكود سيتعامل مع الجدولين وكأنه يوجد علاقة مع أنها غير موجودة).

في هذا الموضع في الرابط : يوجد مشروع 
فيه مثال يشبه تقريباً مشروعك من حيث المطلوب برمجياً مع اختلاف المسميات
فيك الاستفادة منه- ركز على المشاركتين الثالثة والرابعة .. يعني (المشروع - ثم الكود الذي ستضعه في المشروع بدلاً من الموجود فيه، ) 
طريقة عمل المشروع بعد التعديل - مشابهة لما تريد من مشروعك أن يعمله
فيك الاطلاع على البلوكات الجاهزة التي تم إضافتها للمشروع  - للاستفادة منها في مشروعك.
نفس الكود ولكن يختلف عليك أن تعدل على الاستعلام فقط، بدلاً من الحذف تضع كود إضافة، وتعدل إستعلام كود التحقق بما يناسب مشروعك..
إذا أطلعت على المشروع وقرأت كوده خطوة خطوة وفهمته، ستحصل على كل ما تريد..
قال صلى الله عليه وسلم: 
«كلمتان خفيفتان على اللسان 
ثقيلتان في الميزان،حبيبتان إلى الرحمن: 
سبحان الله وبحمده، سبحان الله العظيم».
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  استعلام الذين فات تاريخ التسديد 3 أيام أو اكثر محمد خيري 3 142 12-05-24, 02:42 AM
آخر رد: محمد خيري
  تقسيم الفانورة الي اكثر من ورقة عبدالكريم برشدان 1 109 20-04-24, 02:22 AM
آخر رد: عبدالكريم برشدان
  [VB.NET] مشكله رساله خطا Omaro 7 176 24-03-24, 03:46 PM
آخر رد: Omaro
  ارجو التعديل على الدالة المرفقة - الدالة تعيد الرقم -1 new_programer 4 152 20-03-24, 01:18 PM
آخر رد: تركي الحلواني
  مشكلة فى جمع عمود فى داتا جريد فيو احمد خطاب 3 182 06-03-24, 07:49 PM
آخر رد: احمد خطاب
  تعديل بيانات عمود DataGridView دفعة واحدة مصمم هاوي 2 233 05-03-24, 08:27 PM
آخر رد: مصمم هاوي
  كيفية جمع أرقام عمود فى الداتا جريد فيو بناءاً على بيانات معينة heem1986 5 280 25-02-24, 11:26 PM
آخر رد: heem1986
  مشكلة تعليق البرنامج في حال عدم وجود ماسح ضوئي متصل بالكمبيوتر صالح عبدالله 1 229 09-01-24, 10:51 PM
آخر رد: صالح عبدالله
  حماية عمود داخل ورقة الاكسل العيدروس 3 203 05-01-24, 12:21 AM
آخر رد: HALIM ELEULMA
  خطأ عن مقارنه الرقم التفعيل Ashraf Elafify 2 275 31-12-23, 11:49 PM
آخر رد: Ashraf Elafify

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


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