منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : كيف يمكنني التعامل مع جدولين
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السـلام عليكم
اخواني لدي جدولين الاول معلومات عن الموظفين (الاسم ، الرقم الوظيفي ،تاريخ التعيين )
وعندي جدول آخر فيه ( الرقم الوظيفي ، رقم الفاتوره )

اريد طريقة بحيث اذا قمت بتخزين معلومات الموظف قي الجدول الأول ان يتم رقم الوظف في الجدول الثاني تلقائياً بدون ما اقوم بكتابة اكواد فتح قاعدة البيانات وتخزين الرقم الوظيفي في الجدول الثاني ....

هل الحل في ربط الجدولين من خلال علاقة تفي بالغرض ؟؟
وشـكراً لكم
السلام عليكم

اختي العزيزة ان اي حقل مشترك بين جدولين يجب ان يحتويا على نفس الرقم لذا اذا قمنا بادخال رقم في الجدول الرئيسي فيجب ادخال نفس الرقم في الجدول الثانوي

بمعنى يجب ان يكون الاضافة لكلا الجدولين بنفس الوقت

تحياتي
اخي SAJAD شـكراً على الرد

فهمت من كلام انه لايوجد طريقة لربط الجدولين بحيث عند تخزين رقم الموظف في جدول ، يظهر تلقائياً في جدول آخر

طيب ... مافائدة ربط الجداول عند التعامل معها في الفيجيوال دوت نت ؟؟؟

هل الربط مهم في الجداول ..وما هي فائدته ؟؟؟ Heart
نعم الربط مهم جدا

ابسط مثال: ماذا لو اردتي ان تحذفي سجلا من الجدول الرئيسي وبالمقابل تريدين ان يحذف كل ما هو متعلق من السجل الثاني بالسجل الاول؟

فالمفتاح الثانوي يمثل حلقة وصل بين الجدولين فمثلا يوجد هنالك علاقات تسمى One to One و One to Many و Many to Many

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

معناها .. فقط في عمليات الحذق نستفيد من ربط الجدولين ... اي عندما نحذف من الجدول الرئيسي بيانات الموظف يقوم بحذف جميع ما هو متعلف برقمه الوظيفي في الجدول الآخر ..

فقط في حالة الحذف تكون الافادة من الربط ؟؟

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

معلش غلبتك Big GrinBig GrinBig Grin
لانني لا اريد استخدام جملة الاضافة (INSERT) مرتين .. مرة للجدول الاول ومرة بالجدول الثاني Tongue
اختي انا لم اقل ان الفائدة تتلخص فقط في الحذف!!!!!

يجب استخدام جملية الInsert مرتين؟ الى الان لم اسمع بInsert واحد لكلا الجدولين؟؟؟؟؟؟؟؟؟؟

طيب كيف اضيف معلومات للجدول الثاني عن طريق الجدول الاول؟

لا يوجد حقل تضاف تلقائيا من نفسه الى الجدول ما عدا الحقول التي تكون Primary Key في بعض الاحيان نجعل قيمة الحقل تلقائي بحيث تضاف الرقم وتزيد بمقدار واحد تلقائيا وهذا يعتمد على الاضافة لبقية الحقول بحيث لو لم نستخدمة جملة الInsert فالحقل التلقائي لن تضاف لها رقما تلقائيا

لذا لا يوجد شيء اسمه اضافة معلومات بدون جملة الاضافة (Insert)

تحياتي
في قواعد البيانات اسكيو ال سيرفر هناك خاصية تسمى تريقر ممكن تعمل المطلوب ،، بمعنى عند اضافة سجل في الجدول الأول وظيفة التريقر يضيف الرقم للجدول الثاني دايركت .

بالتوفيق
هذا الكود اتمنى ان يفيدك


كود :
dim tran As OleDbTransaction





cmd.CommandText = "insert into   A(Id_user,emp_name)values(?,?) "

        cmd.Connection = con

        cmd.Parameters.Clear()

        cmd.Parameters.Add(New OleDbParameter("@Id_user", OleDbType.VarChar)).Value = Val(txt_Id_user.Text)
       cmd.Parameters.Add(New OleDbParameter("@emp_name", OleDbType.VarChar)).Value = Val(txt_emp_name.Text)
      
        con.Open()
        tran = con.BeginTransaction
        cmd.Transaction = tran
        cmd.ExecuteNonQuery()


        cmd1.CommandText = "insert into b (Id_user,phone,email,note)values(?,?,?)"

        cmd1.Connection = con

        cmd1.Parameters.Clear()


        cmd1.Parameters.Add("@Id_user", OleDbType.VarChar).Value = Val(txt_Id_user.Text)
        cmd1.Parameters.Add("@phone", OleDbType.VarChar).Value = Trim(Val(txt_phone.Text))
        cmd1.Parameters.Add("@email", OleDbType.VarChar).Value = Trim(txt_email.Text)
      
        cmd1.Transaction = tran
        cmd1.ExecuteNonQuery()
        tran.Commit()


      

      
        con.Close()
(27-03-14, 10:06 PM)Ahlam كتب : [ -> ]معناها .. فقط في عمليات الحذق نستفيد من ربط الجدولين ... اي عندما نحذف من الجدول الرئيسي بيانات الموظف يقوم بحذف جميع ما هو متعلف برقمه الوظيفي في الجدول الآخر ..

فقط في حالة الحذف تكون الافادة من الربط ؟؟

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

معلش غلبتك Big GrinBig GrinBig Grin

السلام عليكم أختي الكريمة احلام
عندي نفس المشكلة و ما زلت ابحث عن حل لها ..يعني عندي داتاغريدفيو و تستقبل بيانات من قاعدة اكسس ..لكن العمود الأول و الثاني أحب أن تكون بياناتهما تأتي من جدول آخر ..فما هو الحل ؟
الصفحات : 1 2