الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف أضيف نفس القيم لكل السجلات فى الجدول المرتبط؟

مغلق
بدأه m_nasser في 28 مايو 2007 · 8 رد · 854 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

إخوانى الأعزاء السلام عليكم ورحمة الله وبركاته. لقد قمت بفضل الله أولا ثم بفضل الدروس القيمه فى هذا المنتدى الرائع بعمل برنامج لتسجيل عمليات البيع بالتقسيط وذلك باستخدام Visual Basic 2005 وقد قمت بعمل قاعدة البيانات ببرنامج الاكسس كالآتى:

جدول Clients لتسجيل العملاء وبياناتهم - جدول Transactions لتسجيل عمليات البيع – جدول Payment لتسجيل عمليات السداد التى تتم على كل عملية بيع وتاريخ السداد. وكونت علاقاتى كالتالى بين جدول Clients وجدول Transactions بعلاقة رأس الى أطراف وبين جدول Transactions وجدول Payment بعلاقة رأس بأطراف حيث لكل عميل كود مميز وكذلك لكل عملية بيع وكل سداد وهى الحقول المستخدمة فى الربط.

وعند تسجيل سداد خاص بعملية بيع معينة فإنه يتم اختيار عملية البيع من الـComboBox المخصص لذلك فتظهر بياناتها بما فيها كود العملية والذى استخدمه لربط السداد بهذه العملية كما يظهر فى الكود التالى:

Dim InsertCommand As New OleDbCommand
                    InsertCommand.Connection = conn
                    InsertCommand.CommandType = CommandType.Text
                    InsertCommand.CommandText = "INSERT INTO Payment(Transactions _Code,Payment, TheDay, TheMonth, TheYear) VALUES(?,?,?,?,?);"
                    InsertCommand.Parameters.Clear()
                    InsertCommand.Parameters.AddWithValue("?",Transactions _CodeTxtBox.Text)
                    InsertCommand.Parameters.AddWithValue("?", PaymentTxtBox.Text)
                    InsertCommand.Parameters.AddWithValue("?",TheDay.Text)  
                    InsertCommand.Parameters.AddWithValue("?",TheMonth.Text)
                    InsertCommand.Parameters.AddWithValue("?",TheYear.Text)
                    InsertCommand.ExecuteNonQuery()
                    InsertCommand.Dispose()
                    MsgBox(" تم تسجيل عملية السداد بنجاح ", MsgBoxStyle.MsgBoxRight)

والمشكلة التى تواجهنى حاليا هو اننى أريد أن أضيف عملية سداد بنفس قيمها وبياناتها لكل عمليات البيع المسجلة فى جدول transactions وليس لعملية واحدة.

على سبيل المثال إذا أردت أن أضيف سداد بياناته كالتالى:

Payment= 50 , TheDay = 1 , TheMonth = February , TheYear = 2007

وأريد تسجيلة بالنسبة لكل العمليات المسجلة فى جدول Transactions دفعة واحدة. فهل هذا ممكن.

ارجو من الإخوان أن يفيدونى إن أمكن. وجزاكم الله خيرا.

#2

يمكنك الاستفادة مما يلي

لتحديث قيم عمود ما في جدول ما نستخدم عبارة UPDATE شبيهة بالتالية

UPDATE TABLE_NAME SET COLUMN_NAME=VALUE

ولتحديث قيمة معينة في ذلك العمود

UPDATE TABLE_NAME SET COLUMN_NAME=VALUE WHERE SOME_CONDITION

عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه

نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا

ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا

محمد سامر أبو سلو

#3

الأخ العزيز msas شكرا على اهتمامك بالرد.

ولكن ما اسأل عنه اخى هو كيف اضيف مجموعة بيانات الى الجدول Payment ويتم تكرارها فى الجدول بالنسبه للسجلات الموجودة بالجدول Transactions اى بنفس عددها ومرتبطه بها. ارجو ان اكون اوضحت استفسارى.

وشكرا.

تم تعديل هذه المشاركة بواسطة m_nasser في 28 مايو 2007 في 11:41

#4

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

لكن يمكنك انشاء Command جديد ووضع ما تريد بها مع استخدام خاصية transaction في حالة حدث اي خطأ للتراجع عن جميع العمليات .

اي command للدفعات واخر للحركات

او

اذا وجد تطابق في الجدولين يمكنك عمل command ووضع به ما يلي

insert into transactions select *from payments  where payment.day=2 and ......
#5

الأخ TareqVB هذه بنية الجداول

post-105876-1180345761_thumb.jpg

تم تعديل هذه المشاركة بواسطة m_nasser في 28 مايو 2007 في 12:50

#7

الاخ TareqqVB لقد عدلت المشاركة وارفقت بنية الجداول

وكما اوضحت فى الموضوع الاساسى الخطوات التى اتبعها لاضافة سداد خاص بعملية بيع فاننى اختار العملية من الكومبو المخصص لذلك فتظهر بياناتها وكودها المميز وهو حقل Transaction_Code والذى استخدمه فى الربط بين جدول payment وجدول Transaction ثم اقوم باضافة سجل فى جدول Payment يحتوى على حقل الربط Transaction_Code وباقى بيانات السداد.

و ما اريده هو اضافة بيانات سداد فى جدول Payment يتم تكرارها لكل قيم حقل Transaction_Code الموجوده فى جدول Transactions .

فاذا فرضنا اننا لدينا ثلاث سجلات (عمليلت بيع) فى جدول Transactions وقيم حقل المفتاح الاساسى Transaction_Code هى 3,2,1. واننا نريد اضافة سداد بياناته كالتالى: Payment=50 , TheDay=1, TheMonth=5, TheYear=2007 وذلك لكل عمليات البيع(السجلات) فى جدول Transactions.

اذن نحن نريد كود يقوم بادراج ثلاث سجلات فى جدول Payment (حسب عدد السجلات الموجودة فى جدول Transactions) ويتم ملئ حقل Transaction_Code فى هذه السجلات بالقيم الموجود فى نفس الحقل(Transaction_Code) من جدول Transactions وهى 3,2,1 ثم يتم ملئ باقى الحقول من واقع البيانات المدخلة وهى:

Payment=50 , TheDay=1, TheMonth=5, TheYear=2007 . اى تكرر فى كل السجلات كما هى.

ارجو ان اكون قد اوضحت الموضوع جيدا.

وشكرا للأخ TareqVB وكل الاخوة الاعضاء.

#8

فاهم المطلوب ومش فاهم :rolleyes:

ساستعمل نفس الكود الذي استعملته بس بتغيير بسيط

nsertCommand.CommandText = "INSERT INTO Payment(Transactions _Code,Payment, TheDay, TheMonth, TheYear) select Transaction_Code,?,?,?,? from Transactions;"

وحذف اول parameter والذي هو

'InsertCommand.Parameters.AddWithValue("?",Transactions _CodeTxtBox.Text)

واعتقد هذا هو المطلوب

#9

الف شكرا اخى TareqVB لقد جربت الكود بعد تعديله وبالفع نفذ لى ما اريده وقد ارفقت نموذج مبسط لهذه الجزئية وبه 2 فورم,

فورم SinglePayment وهى التى نفذتها بالسابق وعن طريقها اضيف عملية السداد الخاصة بعميل معين وعمليه بيع معينه, وفورم ALLPayment وهي المعدلة باقتراحك والتى اضيف بها عملية سداد موحدة فى بياناتها لكل العملاء وبالتالى عمليات البيع الخاصه بهم.

على امل ان يستفيد بها الجميع.

وجزاك الله عنى كل الخير وجعله فى ميزان حسناتك.

وان شاء الله بعد اتمام المشروع فسوف ارفعة كاملا على هذا المنتدى العظيم الذى تعلمت عن طريقة العلم ونبل الأخلاق.

ونرجوا من الله ان يتقبل اعمالنا خالصتا لوجهه الكريم.

Takseet.rar

تم تعديل هذه المشاركة بواسطة m_nasser في 29 مايو 2007 في 05:24

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…