Update field in table



0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

25 เม.ย. 61 , 09:50:07
อ่าน 1468 ครั้ง

Earth

Update field in table
« เมื่อ: 25 เม.ย. 61 , 09:50:07 »
ต้องการUpdate field TOTAL_ActualDay
โดยในหน้าฟอร์ม ใส่เป็นunbound textbox  ชื่อว่าActualday เพื่อนำค่าที่ได้ไปupdateลงตาราง ของแต่ละวัน

ตอนนี้Errorค่ะ
ช่วยดูโค้ดให้หน่อยค่ะ

DoCmd.RunSQL "UPDATE Monthly_FG_Imple_Sum SET [Monthly_FG_Imple_Sum].TOTAL_ActualDay ='" & Me.Actualday & "' WHERE [Monthly_FG_Imple_Sum].Date= " & Me.Date, dbFailOnError



 

25 เม.ย. 61 , 09:52:55
ตอบกลับ #1

Earth

> Update field in table
« ตอบกลับ #1 เมื่อ: 25 เม.ย. 61 , 09:52:55 »
ลองโค้ดนี้ก็ขึ้นเหมือนกันค่ะ


strSQL = "UPDATE Monthly_FG_Imple_Sum" & _
    " SET Monthly_FG_Imple_Sum.TOTAL_ActualDay = " & Me.Actualday & _
    " WHERE Monthly_FG_Imple_Sum.Date = " & Forms![Monthly_FG_Imple_Sum]![Date]

DoCmd.RunSQL strSQL

 

25 เม.ย. 61 , 11:10:23
ตอบกลับ #2

สันติสุข

> Update field in table
« ตอบกลับ #2 เมื่อ: 25 เม.ย. 61 , 11:10:23 »
DoCmd.RunSQL "UPDATE Monthly_FG_Imple_Sum SET [Monthly_FG_Imple_Sum].TOTAL_ActualDay = Forms![ชื่อฟอร์ม]!Actualday WHERE [Monthly_FG_Imple_Sum].Date = Forms![ชื่อฟอร์ม]!Date", dbFailOnError
ช่วยพกถุงผ้า/ถุงพลาสติกใช้แล้วไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 

25 เม.ย. 61 , 11:42:28
ตอบกลับ #3

pizza_p

> Update field in table
« ตอบกลับ #3 เมื่อ: 25 เม.ย. 61 , 11:42:28 »
DoCmd.RunSQL "UPDATE Monthly_FG_Imple_Sum SET [Monthly_FG_Imple_Sum].TOTAL_ActualDay ='" & Me.Actualday & "' WHERE [Monthly_FG_Imple_Sum].Date= " & CDbl(Me.Date)

ปล. ให้ดูตรง TOTAL_ActualDay ว่าเป็นฟิลด์ Text หรือ Number อาจจะต้องแก้ไขตรงนี้ด้วยนะครับ

 

25 เม.ย. 61 , 13:06:41
ตอบกลับ #4

Earth

> Update field in table
« ตอบกลับ #4 เมื่อ: 25 เม.ย. 61 , 13:06:41 »
Updateได้ค่ะ แต่ตรงFormDetail ถ้าไปโฟกัส recordไหน มันจะUpdate เฉพาะแถวนั้นค่ะ
มีวิธีUpdate ทั้งหมดไหมคะ





 

25 เม.ย. 61 , 15:49:30
ตอบกลับ #5

ปิ่นณรงค์

> Update field in table
« ตอบกลับ #5 เมื่อ: 25 เม.ย. 61 , 15:49:30 »
เอา where ออกครับ ถ้าจะอัพเดททั้งหมด
UPDATE ชื่อ table SET field1 = 'value1'

แต่ผมงง โจทย์นะครับ มันต้องกำหนดวัน ด้วยหรือเปล่า
อ้างถึง
โดยในหน้าฟอร์ม ใส่เป็นunbound textbox  ชื่อว่าActualday เพื่อนำค่าที่ได้ไปupdateลงตาราง ของแต่ละวัน
« แก้ไขครั้งสุดท้าย: 25 เม.ย. 61 , 16:05:23 โดย Newbies »
:love: :grin:
 

25 เม.ย. 61 , 16:44:02
ตอบกลับ #6

Earth

> Update field in table
« ตอบกลับ #6 เมื่อ: 25 เม.ย. 61 , 16:44:02 »
DoCmd.RunSQL "UPDATE Monthly_FG_Imple_Sum SET [Monthly_FG_Imple_Sum].TOTAL_ActualDay = Forms![Monthly_FG_Imple_Sum]!Actualday , dbFailOnError"

เอาออกแล้วError ค่ะ

เงื่อนไขคือวันที่ วันที่ในForm =วันที่ในตามรางค่ะ


 

25 เม.ย. 61 , 17:01:25
ตอบกลับ #7

สันติสุข

> > Update field in table
« ตอบกลับ #7 เมื่อ: 25 เม.ย. 61 , 17:01:25 »
DoCmd.RunSQL "UPDATE Monthly_FG_Imple_Sum SET [Monthly_FG_Imple_Sum].TOTAL_ActualDay = Forms![Monthly_FG_Imple_Sum]!Actualday , dbFailOnError"

เอาออกแล้วError ค่ะ

เงื่อนไขคือวันที่ วันที่ในForm =วันที่ในตามรางค่ะ

ต้องเป็น ...day" , dbFailOnError  ไม่ใช่ ...day , dbFailOnError"
ช่วยพกถุงผ้า/ถุงพลาสติกใช้แล้วไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 

25 เม.ย. 61 , 17:19:40
ตอบกลับ #8

Earth

> Update field in table
« ตอบกลับ #8 เมื่อ: 25 เม.ย. 61 , 17:19:40 »
Update ได้ค่ะ
แต่กลายเป็นว่า Updateทุกวันที่เท่ากันหมดเลย ไม่ได้เก็บตามDateค่ะ


 

25 เม.ย. 61 , 17:33:53
ตอบกลับ #9

สันติสุข

> Update field in table
« ตอบกลับ #9 เมื่อ: 25 เม.ย. 61 , 17:33:53 »
เนื่องจากคุณอัพเดตโดยตัด WHERE ทิ้ง ก็เท่ากับอัพเดตทุกเรคอร์ดในเทเบิล  ตอนนี้ก็เลยไม่เข้าใจครับ ว่าต้องการอัพเดตฟิลด์อะไร ให้มีค่าเป็นอะไร มาจากไหน  และเลือกเรคอร์ดที่จะอัพเดตด้วยเงื่อนไขอะไร ช่วยเขียนอธิบายให้ละเอียดๆด้วย

« แก้ไขครั้งสุดท้าย: 25 เม.ย. 61 , 17:35:26 โดย สันติสุข »
ช่วยพกถุงผ้า/ถุงพลาสติกใช้แล้วไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 

25 เม.ย. 61 , 17:46:12
ตอบกลับ #10

Earth

> Update field in table
« ตอบกลับ #10 เมื่อ: 25 เม.ย. 61 , 17:46:12 »
ต้องการUpdate ตาราง Monthly_FG_Imple_Sum  ฟิลด์ TOTAL_ActualDay

โดยในฟอร์ม Monthly_FG_Imple_Sum ได้นำ Unbound textbox ชื่อว่าActualday มาเก็บค่าแต่ละวัน

จากนั้นให้Update ฟิลด์ TOTAL_ActualDay ให้มีค่าเท่ากับ Actualday ค่ะ (โดยแต่ละวันค่าจะต่างกัน)
เช่นในตาราง วันที่6ตัองมีค่า=851 (ไม่ใช่852เหมือนในรูป)
« แก้ไขครั้งสุดท้าย: 25 เม.ย. 61 , 17:57:27 โดย Earth »

 

25 เม.ย. 61 , 18:32:33
ตอบกลับ #11

สันติสุข

> Update field in table
« ตอบกลับ #11 เมื่อ: 25 เม.ย. 61 , 18:32:33 »
1. Total_ActualDay เกิดจากการคำนวนใช่ไหม มีสูตรว่าอย่างไร หรือว่าไม่ได้เกิดจากการคำนวน แต่ดึงมาจากฟิลด์ไหนโดยตรงเลยครับ
2. บนฟอร์ม เอาข้อมูลมาจากตาราง Monthly_FG_Imple_Sum ตรงๆเลยใช่หรือไม่ หรือมาจากคิวรี่ชื่ออะไร
3. เรคอร์ดอะไรบ้างจากตารางหรือคิวรี่ในข้อ 2. ที่จะถูกเลือกมาแสดงบนฟอร์ม ใช้เงื่อนไขอะไร หรือว่าดึงมาแสดงทุกเรคอร์ดเลยครับ
« แก้ไขครั้งสุดท้าย: 25 เม.ย. 61 , 18:36:48 โดย สันติสุข »
ช่วยพกถุงผ้า/ถุงพลาสติกใช้แล้วไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 

25 เม.ย. 61 , 19:02:28
ตอบกลับ #12

Earth

> Update field in table
« ตอบกลับ #12 เมื่อ: 25 เม.ย. 61 , 19:02:28 »
1.Total_ActualDayในฟอร์มจะใช้unbound textbox ชื่อว่า Actualday
เกิดจากการ คำนวนจากฟิวSumOfSumOfTotal(m2)ในตาราง บวกกับ unbound textbox ชื่อว่า ShippingArea (ใส่ค่าเองในฟอร์ม)
2. บนฟอร์ม เอาข้อมูลมาจากตาราง Monthly_FG_Imple_Sum ตรงๆเลยใช่หรือไม่ >>> ใช่ค่ะ
3. ดึงจากตารางมาทุกเรคอร์ด เว้น Type2
**มีDateเป็นPKค่ะ

 

25 เม.ย. 61 , 20:20:26
ตอบกลับ #13

สันติสุข

> Update field in table
« ตอบกลับ #13 เมื่อ: 25 เม.ย. 61 , 20:20:26 »
จากที่บอกมา คุณต้องไม่อัพเดตด้วยตัว Actualday ตรงๆ  เพราะการอ้างถึง Actualday ซึ่งเป็นเท็กซ์บ็อกซ์(หรือจะเป็นคอนโทรลอื่นๆก็ตาม)ในส่วนของ Detail section (ส่วนที่แสดงออกมาในแต่ละบรรทัด) บนฟอร์มที่เป็นแบบ Continuous Form หรือ Datasheet Form จะได้ค่าจากบรรทัด(เรคอร์ด)ปัจจุบันเท่านั้น ซึ่งก็คือบรรทัดที่มีเครื่องหมายลูกศรชี้อยู่ที่ด้านหน้าของบรรทัดนั้น ไม่ใช่ค่าที่เปลี่ยนไปตามแต่ละบรรทัดให้อัตโนมัติอย่างที่คิด ดังนั้นจากการอัพเดตก่อนหน้านี้ จึงได้อัพเดตออกมาเป็นค่าเดียวกันหมด คือ 852

สิ่งที่ต้องทำคือ ต้องอัพเดต TOTAL_ActualDay ด้วยสูตรที่ใช้สร้าง Actualday อีกที ถ้าเข้าใจไม่ผิด ก็จะเป็น SumOfSumOfTotal(m2) + Forms![ชื่อฟอร์ม]!ShippingArea และ ShippingArea จะเป็นค่าเดียวกันทุกบรรทัด

ดังนั้น UPDATE Query ที่ควรจะเป็นก็คือ

DoCmd.RunSQL "UPDATE Monthly_FG_Imple_Sum AS M SET M.TOTAL_ActualDay = M.[SumOfSumOfTotal(m2)] + Forms![ชื่อฟอร์ม]!ShippingArea", dbFailOnError
ช่วยพกถุงผ้า/ถุงพลาสติกใช้แล้วไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 
โพสต์นี้ได้รับคำขอบคุณจาก: Earth

26 เม.ย. 61 , 08:43:11
ตอบกลับ #14

Earth

> Update field in table
« ตอบกลับ #14 เมื่อ: 26 เม.ย. 61 , 08:43:11 »
ทำได้แล้วค่ะ ขอบคุณมากค่ะ


ดังนั้น UPDATE Query ที่ควรจะเป็นก็คือ

DoCmd.RunSQL "UPDATE Monthly_FG_Imple_Sum AS M SET M.TOTAL_ActualDay = M.[SumOfSumOfTotal(m2)] + Forms![ชื่อฟอร์ม]!ShippingArea", dbFailOnError

 

30 เม.ย. 61 , 16:24:13
ตอบกลับ #15

Earth

> Update field in table
« ตอบกลับ #15 เมื่อ: 30 เม.ย. 61 , 16:24:13 »
หลังกดปุ่มUpdate แล้วขึ้นแจ้งเตือนแบบนี้ ถ้าต้องการให้เป็น Yesทุกครั้ง ไม่ต้องการให้กล่องแจ้งเตือนขึ้นมา
ต้องเพิ่มโค้ดส่วนไหนคะ


 


บอร์ดเรียนรู้ Access สำหรับคนไทย