สอบถามครับ "This Recordset is not updateable" นี่แก้ยังไงครับ???



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

23 ก.ย. 63 , 09:56:08
อ่าน 200 ครั้ง

pattan0013

สอบถามครับ "This Recordset is not updateable" นี่แก้ยังไงครับ??? เกิดขึ้นเมื่อผมทำ Query ที่มาจาก Query Union กับ Table มาทำใน QUery เดียวกันครับ และผมก็ไม่สามารถใส่ข้อมูล หรือแก้ไขได้เลยครับ

 

23 ก.ย. 63 , 14:05:24
ตอบกลับ #1

UnKnown

ผมคิดว่าการทำ UNION Query นั้นจะเป็นเพียงการรวมข้อมูลในหลายๆตารางมาแสดงเท่านั้นทำให้แก้ไขไม่ได้ครับ
>> https://stackoverflow.com/questions/1261959/how-do-i-make-an-editable-union-query link

ปล.เท่าที่ผมทราบ+หาดูมาให้นะ

 
โพสต์นี้ได้รับคำขอบคุณจาก: pattan0013

23 ก.ย. 63 , 14:15:14
ตอบกลับ #2

pattan0013

ผมคิดว่าการทำ UNION Query นั้นจะเป็นเพียงการรวมข้อมูลในหลายๆตารางมาแสดงเท่านั้นทำให้แก้ไขไม่ได้ครับ
>> https://stackoverflow.com/questions/1261959/how-do-i-make-an-editable-union-query link

ปล.เท่าที่ผมทราบ+หาดูมาให้นะ

แล้วอย่างนี้พอจะมีไอเดียบ้างไหมครับ?? หรือมีคำแนะนำไหมครับ??

 

23 ก.ย. 63 , 18:51:42
ตอบกลับ #3

OddyWriter

คือถ้า Query ประเภทที่แก้ไขข้อมูลไม่ได้ คือแก้ไขไม่ได้ครับ
วิธีการคือให้สร้าง Update Query เพื่อไปแก้ไขข้อมูลในตารางที่นำมาทำ Union ครับ จากนั้นก็สั่ง Requery อีกที่หลังจาก Update Query ทำงานเสร็จ
กินร้อน ช้อนตัวเอง จานใครจานมัน ออกนอกบ้านใส่หน้ากากอนามัยหรือหน้ากากผ้า
 
โพสต์นี้ได้รับคำขอบคุณจาก: สันติสุข, pattan0013

24 ก.ย. 63 , 10:15:20
ตอบกลับ #4

pattan0013

คือถ้า Query ประเภทที่แก้ไขข้อมูลไม่ได้ คือแก้ไขไม่ได้ครับ
วิธีการคือให้สร้าง Update Query เพื่อไปแก้ไขข้อมูลในตารางที่นำมาทำ Union ครับ จากนั้นก็สั่ง Requery อีกที่หลังจาก Update Query ทำงานเสร็จ

แล้วถ้าเอา Union Query ไปสร้างหรือบันทึกใน Table ได้ไหมครับ?? แล้วถ้ามีการ Requery ใน Table ที่ทำการ Split Database แล้วจะมีผลอย่างไรบ้างครับ???

 

24 ก.ย. 63 , 12:21:07
ตอบกลับ #5

OddyWriter

ได้ครับ
โดยนำ Union Query ไปสร้างเป็น Action Query ตามต้องการ
กินร้อน ช้อนตัวเอง จานใครจานมัน ออกนอกบ้านใส่หน้ากากอนามัยหรือหน้ากากผ้า
 
โพสต์นี้ได้รับคำขอบคุณจาก: pattan0013

25 ก.ย. 63 , 13:54:08
ตอบกลับ #6

pattan0013

ได้ครับ
โดยนำ Union Query ไปสร้างเป็น Action Query ตามต้องการ

ตอนนี้ผมได้ทำการนำ Union Query ไปทำการ Query Make Table เป็นตารางใหม่ได้แล้วครับ และผมนำตารางดังกล่าวสมมุติชื่อ Table A ไป Query กับอีก Table ชื่อ Table B โดยเป็นการ Query Select แต่พอกด Run แล้วผมไม่สามารถใส่ข้อมูลใน Record ได้เลย มันขึ้น "This Recordset is not updateable" เหมือนเดิมเลยครับ

 

25 ก.ย. 63 , 14:50:23
ตอบกลับ #7

OddyWriter

ก็อย่างที่เคยบอกไว้คือ

Query ไม่ใช่จะสามารถป้อนหรือแก้ไขข้อมูลได้ทุกคิวรี โดยเฉพาะ Action Query หรือ Crosstab Query หรือ Query ที่มีความสัมพันธ์แบบ 1:N (มีบางกรณีที่ Update ข้อมูลได้) หรือ M:N

ถ้า Select Query ที่คุณสร้าง มีความสัมพันธ์แบบ 1:N หรือ M:N อย่าได้พยายามแก้ไขหรือป้อนข้อมูลเลยครับ ถ้าทำได้ ข้อมูลก็อาจผิดมันก็เลยล็อคไว้ตัวตัวของมันเอง
กินร้อน ช้อนตัวเอง จานใครจานมัน ออกนอกบ้านใส่หน้ากากอนามัยหรือหน้ากากผ้า
 
โพสต์นี้ได้รับคำขอบคุณจาก: pattan0013

25 ก.ย. 63 , 15:57:49
ตอบกลับ #8

pattan0013

ก็อย่างที่เคยบอกไว้คือ

Query ไม่ใช่จะสามารถป้อนหรือแก้ไขข้อมูลได้ทุกคิวรี โดยเฉพาะ Action Query หรือ Crosstab Query หรือ Query ที่มีความสัมพันธ์แบบ 1:N (มีบางกรณีที่ Update ข้อมูลได้) หรือ M:N

ถ้า Select Query ที่คุณสร้าง มีความสัมพันธ์แบบ 1:N หรือ M:N อย่าได้พยายามแก้ไขหรือป้อนข้อมูลเลยครับ ถ้าทำได้ ข้อมูลก็อาจผิดมันก็เลยล็อคไว้ตัวตัวของมันเอง

อย่างไรก็ไม่มีหวังใช่ไหมครับ?? ถ้าอย่างนี้นผมขอไอเดียหน่อยครับ เดิมข้อมูลผมที่ให้พนักงานกรอกเป็นแบบนี้ครับ



จะเห็นว่าหัวมันจะเรียง Truck No.1 - 10 ผมอยากเรียงให้มันอยู่ใน Column เดียวผมเลยใช้ Union Query ให้เป็นแบบนี้ครับ



เพื่อแยก Cost ของรถแต่ล่ะคันครับ และต้องใช้ข้อมูลนี้ไปเทียบกับอีก Table นึงเพื่อให้พนักงานกรอกข้อมูลเกี่ยวกับค่าใช้จ่ายเพิ่มครับ ตรงนี้แหล่ะครับที่ผมติดปัญหาอยู่

คำถาม ถ้าไม่ใช้ Union Query มีวิธีอื่นที่แยกได้แบบนี้ไหมครับ?? หรือมีวิธีเก็บข้อมูลตั้งแต่ต้นให้เป็นแบบนี้ไหมครับ??

 

25 ก.ย. 63 , 17:51:03
ตอบกลับ #9

OddyWriter

คือคุณต้องการ Update ข้อมูลในตารางไหน คุณเอาตารางนั้นมาทำ Update Query ครับ ไม่จำเป็นต้องทำ Union เลยนี่นา เพราะ Union นั้นเขาเอาไว้ดูข้อมูลอย่างเดียว

คราวนี้มาดูรูปแบบการกรอกข้อมูลแล้ว มันเหมาะกับ Excel มากกว่า เนื่องจากยังไม่ได้ทำ Normalization
การใช้งานฐานข้อมูลนั้นต้องทำ Normalization ครับ เรื่องนี้เป็นเรื่องสำคัญมากมาย

ถ้าคุณทำ Normalization แล้ว การ Update ข้อมูลน่าจะทำได้ง่ายกว่านี้ครับ
กินร้อน ช้อนตัวเอง จานใครจานมัน ออกนอกบ้านใส่หน้ากากอนามัยหรือหน้ากากผ้า
 
โพสต์นี้ได้รับคำขอบคุณจาก: sjs, สันติสุข, pattan0013

28 ก.ย. 63 , 09:26:22
ตอบกลับ #10

pattan0013

คือคุณต้องการ Update ข้อมูลในตารางไหน คุณเอาตารางนั้นมาทำ Update Query ครับ ไม่จำเป็นต้องทำ Union เลยนี่นา เพราะ Union นั้นเขาเอาไว้ดูข้อมูลอย่างเดียว

คราวนี้มาดูรูปแบบการกรอกข้อมูลแล้ว มันเหมาะกับ Excel มากกว่า เนื่องจากยังไม่ได้ทำ Normalization
การใช้งานฐานข้อมูลนั้นต้องทำ Normalization ครับ เรื่องนี้เป็นเรื่องสำคัญมากมาย

ถ้าคุณทำ Normalization แล้ว การ Update ข้อมูลน่าจะทำได้ง่ายกว่านี้ครับ

ขอบคุณครับ เดี๋ยวจะไปดูเรื่อง Normalization ครับ

 


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