مرفق قاعدة بيانات اكسيس مع شرح تفصيلى للمطلوب اريد عمل تحديث لبيانات جدول من جدول اخر
عمل Update لبيانات جدول استناد لجدول اخر
اخوانى كيف يتم عمل الـ update فى مثالى المرفق
ماهو الغامض فى طلبى
لقد أنشئت جملة من داخل الفيجول وهى :
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
هل المطلوب في الاكسس ام في SQL sever ؟؟؟
المطلوب عمل تحديث للبيانات بأستخدام الـ sql
أخي الكريم هذا قسم 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
الاستعلام ليناسب الاكسس
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
شكرا على مساعدتك اخى طارق ولكنى اريد اولا جمع حقول debit & credit فى جدول jdetail ويتم نقلهم (تحديثهم) الى جدول chart
استناد الى حقل AccNo فى جدول jdetail وحقل code فى جدول chart
وتوضيح صغير لكى افهم اكثر هل الاستعلام المرفق الجديد لايناسب الـ SQLSERVER
تم تعديل هذه المشاركة بواسطة khaledmh في 29 يوليو 2008 في 19:54
اعمل استعلام Query للجمع وبدل اسم الاستعلام مكان jDetail
والاستعلام يجب ان يكون كمايلي
select sum(credit) as credit ,sum(debit) as debit from jDetail group by ACCNO
عملت الاستعلام وغيرت اسم الجدول الى اسم الاستعلام وهاهو نفس الخطأ
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
up
محتاج التصحيح وشكرا
up
