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

عمل Update لبيانات جدول استناد لجدول اخر

بدأه khaledmh في 26 يوليو 2008 · 14 رد · 1,683 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

DB1.rar

#2

اخوانى كيف يتم عمل الـ update فى مثالى المرفق

#3

المطلوب غامض

#4

ماهو الغامض فى طلبى

لقد أنشئت جملة من داخل الفيجول وهى :

If Text1.Text = 1 Then
SQL = "UPDATE chr INNER JOIN Report ON chr.code = Report.AccNo SET chr.code =  [Report].[AccNo], chr.Debit1 = [Report].[Debit], chr.Credit1 = [Report].[Credit] " & _
"WHERE chr.code = [Report.AccNo]  And Report.Period= " & Text1 & ";"
con1.Execute SQL

ElseIf Text1.Text = 2 Then
SQL = "UPDATE chr INNER JOIN Report ON chr.code = Report.AccNo SET chr.code =  [Report].[AccNo], chr.Debit2 = [Report].[Debit], chr.Credit2 = [Report].[Credit] " & _
"WHERE chr.code = [Report.AccNo]  And Report.Period= " & Text1 & ";"
con1.Execute SQL

ElseIf Text1.Text = 3 Then
SQL = "UPDATE chr INNER JOIN Report ON chr.code = Report.AccNo SET chr.code =  [Report].[AccNo], chr.Debit3 = [Report].[Debit], chr.Credit3 = [Report].[Credit] " & _
"WHERE chr.code = [Report.AccNo]  And Report.Period= " & Text1 & ";"
con1.Execute SQL

ElseIf Text1.Text = 4 Then
SQL = "UPDATE chr INNER JOIN Report ON chr.code = Report.AccNo SET chr.code =  [Report].[AccNo], chr.Debit4 = [Report].[Debit], chr.Credit4 = [Report].[Credit] " & _
"WHERE chr.code = [Report.AccNo]  And Report.Period= " & Text1 & ";"
con1.Execute SQL

ElseIf Text1.Text = 5 Then
SQL = "UPDATE chr INNER JOIN Report ON chr.code = Report.AccNo SET chr.code =  [Report].[AccNo], chr.Debit5 = [Report].[Debit], chr.Credit5 = [Report].[Credit] " & _
"WHERE chr.code = [Report.AccNo]  And Report.Period= " & Text1 & ";"
con1.Execute SQL
ElseIf Text1.Text = 6 Then
SQL = "UPDATE chr INNER JOIN Report ON chr.code = Report.AccNo SET chr.code =  [Report].[AccNo], chr.Debit6 = [Report].[Debit], chr.Credit6 = [Report].[Credit] " & _
"WHERE chr.code = [Report.AccNo]  And Report.Period= " & Text1 & ";"
con1.Execute SQL

ElseIf Text1.Text = 7 Then
SQL = "UPDATE chr INNER JOIN Report ON chr.code = Report.AccNo SET chr.code =  [Report].[AccNo], chr.Debit7 = [Report].[Debit], chr.Credit7 = [Report].[Credit] " & _
"WHERE chr.code = [Report.AccNo]  And Report.Period= " & Text1 & ";"
con1.Execute SQL

ElseIf Text1.Text = 8 Then
SQL = "UPDATE chr INNER JOIN Report ON chr.code = Report.AccNo SET chr.code =  [Report].[AccNo], chr.Debit8 = [Report].[Debit], chr.Credit8 = [Report].[Credit] " & _
"WHERE chr.code = [Report.AccNo]  And Report.Period= " & Text1 & ";"
con1.Execute SQL

ElseIf Text1.Text = 9 Then
SQL = "UPDATE chr INNER JOIN Report ON chr.code = Report.AccNo SET chr.code =  [Report].[AccNo], chr.Debit9 = [Report].[Debit], chr.Credit9 = [Report].[Credit] " & _
"WHERE chr.code = [Report.AccNo]  And Report.Period= " & Text1 & ";"
con1.Execute SQL

ElseIf Text1.Text = 10 Then
SQL = "UPDATE chr INNER JOIN Report ON chr.code = Report.AccNo SET chr.code =  [Report].[AccNo], chr.Debit10 = [Report].[Debit], chr.Credit10 = [Report].[Credit] " & _
"WHERE chr.code = [Report.AccNo]  And Report.Period= " & Text1 & ";"
con1.Execute SQL

ElseIf Text1.Text = 11 Then
SQL = "UPDATE chr INNER JOIN Report ON chr.code = Report.AccNo SET chr.code =  [Report].[AccNo], chr.Debit11 = [Report].[Debit], chr.Credit11 = [Report].[Credit] " & _
"WHERE chr.code = [Report.AccNo]  And Report.Period= " & Text1 & ";"
con1.Execute SQL

ElseIf Text1.Text = 12 Then
SQL = "UPDATE chr INNER JOIN Report ON chr.code = Report.AccNo SET chr.code =  [Report].[AccNo], chr.Debit12 = [Report].[Debit], chr.Credit12 = [Report].[Credit] " & _
"WHERE chr.code = [Report.AccNo]  And Report.Period= " & Text1 & ";"
con1.Execute SQL

End If

ولكن هل هيه صحيحه لانها تعمل ولكن عند عمل تحديث مع تغيير رقم الشهر اللى هو text 1 = حقل period

لاتلغى التحديث القديم وتكون القيمة فى الحقل كما هي

طبعا اسماء الجداول مختلفة لانى كنت بعمل اختبار وايضا استعنت بجدول report لنقل قيم جدول jdetail بعد جمع الحقول ثم استخدمت update من جدول report الى جدول chr هذا ماتوصلت اليه . .

تم تعديل هذه المشاركة بواسطة khaledmh في 28 يوليو 2008 في 13:54

#6

المطلوب عمل تحديث للبيانات بأستخدام الـ sql

#7

أخي الكريم هذا قسم SQL server وهو مختلف عن SQL .

واعتقد ان المشكلة عندك في استخدام inner join حيث انها في التعديل لها شروط معينة لاستخدامها واتصور يمكن كتابة الحل كمايلي

SQL = "UPDATE chr  SET  chr.Debit1 =(select top 1  [Report].[Debit]  from report  where chr.code = [Report.AccNo]) , chr.Credit1=(select top 1  [Report].[credit]  from report  where chr.code = [Report.AccNo])  " & _
"WHERE  Report.Period= " & Text1 & ";"

وتأكد من اسماء الحقول فيمكن ان اكون قد كتبت شيء خطأ

تم تعديل هذه المشاركة بواسطة TareqVB في 28 يوليو 2008 في 20:07

#8

بداية اخى اعتذر عن خطئى فى طرح السؤال هنا ولكنى كنت فى اشد الحاجة الى جملة الـ sql و شكرا لمساعدتى ولكن يوجد خطأ عند تنفيذ الجملة وهو مرفق بالصورة برجاء التوضيح . . . لانى لم اضف لجملة الـ sql التى كتبتها غير con1.Execute SQL

error.bmp

#9

الاستعلام ليناسب الاكسس

UPDATE chart INNER JOIN jDetail ON chart.code = jDetail.AccNo SET  chart.Debit1 = [jDetail].[Debit], chart.Credit1 = [jDetail].[Credit] 
WHERE chart.code = [jDetail.AccNo]  And jDetail.Period= 6
#10

شكرا على مساعدتك اخى طارق ولكنى اريد اولا جمع حقول debit & credit فى جدول jdetail ويتم نقلهم (تحديثهم) الى جدول chart

استناد الى حقل AccNo فى جدول jdetail وحقل code فى جدول chart

وتوضيح صغير لكى افهم اكثر هل الاستعلام المرفق الجديد لايناسب الـ SQLSERVER

تم تعديل هذه المشاركة بواسطة khaledmh في 29 يوليو 2008 في 19:54

#11

اعمل استعلام Query للجمع وبدل اسم الاستعلام مكان jDetail

والاستعلام يجب ان يكون كمايلي

select sum(credit) as credit ,sum(debit) as debit from jDetail group by ACCNO

#12

عملت الاستعلام وغيرت اسم الجدول الى اسم الاستعلام وهاهو نفس الخطأ

SQL = "UPDATE chart INNER JOIN QJdetail ON chart.code = QJdetail.AccNo SET chart.Debit1 = [QJdetail].[Debit], chart.Credit1 = [QJdetail].[Credit] " & _
"Where chart.code = [QJdetail.AccNo] And QJdetail.Period = " & Text1 & ";"
con1.Execute SQL

هل الجملة خطأ ايضا ام ماذا

تم تعديل هذه المشاركة بواسطة khaledmh في 29 يوليو 2008 في 20:48

#13

up

#14

محتاج التصحيح وشكرا

#15

up

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