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

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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  ممكن ايضاح اكثر لـ continu for justforit 6 303 05-11-25, 12:10 AM
آخر رد: justforit
  القاعدة رغم وجود الباس وورد اصبحت لا تفتح atefkhalf2004 5 461 20-10-25, 10:24 AM
آخر رد: dr.programming
  [VB.NET] جمع عمود داتا كريت فيو مع تجاهل الخلايا الفارغة EMADW 4 475 29-04-25, 10:57 PM
آخر رد: Taha Okla
Question [VB.NET] هناك سؤال يهم كل مبرمج الماذا برنامجك يظهر على بعض الشاشات اكثر دقه بشكل مصغر ومشوه Microformt 0 444 01-02-25, 03:48 PM
آخر رد: Microformt
  تقريب الأعداد العشرية إلى الرقم الأعلى مباشرة العيدروس 2 353 20-01-25, 12:51 AM
آخر رد: العيدروس
  التأكد من وجود أرقام فقط فى string heem1986 3 307 07-01-25, 01:37 AM
آخر رد: أبو خالد الشكري
  القيام بعملية Insert بعد التأكد من عدم وجود السجل بالجدول صالح عبدالله 2 340 04-01-25, 03:56 PM
آخر رد: صالح عبدالله
  احتاج مساعدة في اظهار الصورة على PictureBox sloom00 2 379 31-12-24, 11:29 PM
آخر رد: sloom00
  [VB.NET] كيف أجعل الأداة Listbox تعرض عمودين بدل عمود واحد mmaalmesry 6 457 15-10-24, 11:05 AM
آخر رد: Taha Okla
  [VB.NET] طريقة عرض الرقم MOHAMMED ALZWI 4 384 30-07-24, 12:44 AM
آخر رد: MOHAMMED ALZWI

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


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