กระทู้เก่าบอร์ด อ.Yeadram
1,374 7
URL.หัวข้อ /
URL
update ระหว่าง 2 table
ผมใช้
CurrentProject.Connection.Execute "update tb_A inner join tb_B on tb_A.Item_Code = tb_B.Item_Code set tb_A.Cost = tb_B._Cost"
ในการอัพเดท ราคาระหว่าง 2 เทเบิล โดยใช้ inner join เข้ามาช่วย จากที่ลองทำพบปัญหาคือเวลารันแล้วถ้าเกิด tb_B ข้อมูลเยอะ จะช้ามาก มีวิธีแก้ไขหรือป่าวคับ
อย่างเช่นผมแก้ไข cost ที่ item_code ชื่อ ad โดยใช้ where ได้ไหมคับ
แล้วให้มันอัพเดทเฉพาะ item_code ที่ชื่อ ad คับ จะลดเวลาช่วงที่รันลงได้หรือป่าวคับ หรือว่ามันจะอัพเดททุกโค๊ดเลยคับ
หรือว่ามีคำสั่งอื่นอีกไหมคับที่ใช้อัพเดท ระหว่าง 2 ตารางคับ รบกวนขอคำแนะนำหน่อยคับ
7 Reply in this Topic. Dispaly 1 pages and you are on page number 1
1 @R03345
ใช้ where ได้ครับ ระบุ ทีละ รหัสก็ได้ครับ
2 @R03354
ขอขอบพระคุณอาจารย์มากเลยคับ จะลองทำดูคับ
3 @R03357
เรียน คุณกลอยใจ
กรณีที่ต้องการ update ข้อมูลผ่านฟอร์ม ลองเพิ่มเติมเงื่อนไขลงไปนะครับ
กรณีที่ต้องการ update ข้อมูลผ่านฟอร์ม ลองเพิ่มเติมเงื่อนไขลงไปนะครับ
WHERE (((tb_A.Item_Code)=[Forms]![ชื่อฟอร์ม]![Item_Code]));
4 @R03367
คุณ อนุชิตคับ ผมลอง ใส่ where ตามที่บอกแล้วคับ มันขึ้น erorr คัับ ไม่รู้ว่าผิดตรงไหนหรือป่าวคับ ผมใส่ตามโค๊ดข้างล่างนี้เลยนะคับ
CurrentProject.Connection.Execute "update tb_routing inner join tb_database on tb_routing.C_Item_Code = tb_database.C_Item_Code set tb_database.Process_Cost = tb_routing.Process_Cost,tb_database.Paint_Cost = tb_routing.Paint_Cost,tb_database.Prcssttcst = (tb_routing.Process_Cost+tb_routing.Paint_Cost*tb_database.QPA),tb_database.GPrcssttcst = (tb_routing.Process_Cost+tb_routing.Paint_Cost*tb_database.QPA) WHERE ((tb_database.C_Item_Code)=[Forms]![frm_routing]![Itemcd])"
CurrentProject.Connection.Execute "update tb_routing inner join tb_database on tb_routing.C_Item_Code = tb_database.C_Item_Code set tb_database.Process_Cost = tb_routing.Process_Cost,tb_database.Paint_Cost = tb_routing.Paint_Cost,tb_database.Prcssttcst = (tb_routing.Process_Cost+tb_routing.Paint_Cost*tb_database.QPA),tb_database.GPrcssttcst = (tb_routing.Process_Cost+tb_routing.Paint_Cost*tb_database.QPA) WHERE ((tb_database.C_Item_Code)=[Forms]![frm_routing]![Itemcd])"
5 @R03428
ไม่มีท่านใด ตอบกลับเลยเหรอคับ รอ....คำชี้แนะ
6 @R03432
จุดอื่นผิดบ้างหรือไม่ ไม่ทราบนะครับ แต่ที่แน่ๆคือ คุณต้อง evaluate ค่าของ textbox ออกมาใส่ใน SLQ Command เพราะตัว Data Access Method อะไรก็แล้วแต่ จะไม่รู้จัก Access Object ซึ่งในที่นี้ก็คือ [Forms]![frm_routing]![Itemcd]
ดังนั้นจึงต้องเป็น ... WHERE tb_database.C_Item_Code = '" & [Forms]![frm_routing]![Itemcd] & "' " เช็คดีๆเพราะเป็นเครื่องหมาย single quote ติดกับ double quote ครับ อาจดูยากนิดนึง
ดังนั้นจึงต้องเป็น ... WHERE tb_database.C_Item_Code = '" & [Forms]![frm_routing]![Itemcd] & "' " เช็คดีๆเพราะเป็นเครื่องหมาย single quote ติดกับ double quote ครับ อาจดูยากนิดนึง
7 @R03437
ขอบคุณอาจารย์ สันติสุข มากเลยนะคับ สำหรับคำแนะนำ
ผมจะลองทำตามดูคับ
ผมจะลองทำตามดูคับ
Time: 0.3512s