update ข้อมูลไม่ให้มีผลต่อข้อมูลเก่า
กระทู้เก่าบอร์ด อ.Yeadram

 1,784   5
URL.หัวข้อ / URL
update ข้อมูลไม่ให้มีผลต่อข้อมูลเก่า

คือว่า อีฟแยกตารางการขาย(ด้านN)และตารางข้อมูลสินค้า(ด้าน1) แล้วQueryรวมตาราง ต้องการปรับราคาสินค้าขึ้นจาก 25บาท เป็น 30 บาท พอแก้ไขราคาสินค้าในตารางข้อมูลสินค้า ข้อมูลเก่าตั้งแต่ 5 เดือนที่แลัวมันก็ปรับเป็น 30 บาททั้งหมดเลย Queryก็เปลี่ยน โดยเฉพาะในหน้ารายงานยอดขายเพี้ยนไปหมดเลย อีฟพยายามมาจนเหนื่อยแล้ว หากท่านผู้รู้ท่านใดพอจะมีแนวทางแก้ไข หรือปรับแต่งอะไรช่วยชี้แนะด้วยจะเป็นพระคุณอย่างยิ่ง ขอบคุณค๊ะ

5 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R06402
แล้วถ้าอีฟ
สร้างตารางเพิ่มอีกตา??าง ชื่อ ราคาหลัก
มีฟิลด์
1.รหัสราคาหลัก 2.รหัสสินค้า 3.ราคาต้นทุน
แล้วในตาราง การขายด้านN ของอีฟ ค่อยเอาฟิลด์ 1.รหัสราคาหลักมาใส่เพิ่มโดยอ้างอิงจากราคาที่ Update ล่าสุดหรือปัจจุบัน
ต่อไปตอนทำ Query ก็ค่อยไปเชื่อมเอาราคาต้นทุนมาใช้จะได้ไหม ครับ
2 @R08627
มาอัพหัวข้อนี้ครับ

ทำมานานเหมือนกันแต่ในส่วนนี้ผมเองก็ยังทำไม่ได้สักที T_T

อย่างไรก็รอผู้รู้มาช่วยตอบเช่นกันครับ
3 @R08628
ถ้า field ที่เชื่อมโยงเป็นรหัสสินค้า ส่วน field ราคาอิงกับรหัสสินค้า ก็จะอก้ปัญหาไม่ได้หรอกครับ เพราะมีแค่ 1 รหัสสินค้า นอกจากจะทำเป็น many to many แต่คงไม่เหมาะ
เอาแบบง่ายๆนะครับ ไม่ต้องเปลี่ยนความสัมพันธ์ ในตารางข้อมูลสินค้าเพียงแค่เพิ่ม field ราคาสินค้า และ field วันที่ขายเข้าไป ก็ได้แล้วครับ ราคาไม่ผิดเพี้ยน และสามารถย้อนดูการเปลี่ยนแปลงราคาของสินค้านั้นๆได้ด้วย
4 @R08634
ผมเคยคิดจนหัวแทบแตกครับจนสุดท้ายลองคิดแบบง่ายๆครับ คือ
1.ให้เพิ่ม field ที่ตารางการขาย 1 field "ราคา" format เป็นตัวเลขแล้วแต่อีฟครับ
2.query โดยนำช่องทั้งหมดของ ตารางขาย บวก กับ field "ราคาสินค้า" จากตารางข้อมูลสินค้า (เข้าใจว่าคงสร้างความสัมพันธ์ไว้ที่ชื่อสินค้านะครับ)
3.จะได้ query ที่มีการรวมกันของทั้ง 2 ตาราง แล้วนะครับ save ไว้ก่อน
4.สร้าง query ประเภท update ขึ้นมาจาก query ข้อ 3. ครับดังนี้
    field:ราคา
    table:query ข้อ 3.
    update to:[ราคาสินค้า]
    criteria:Is Null
5.ลง run ดูครับจะมีฟ้องการอัพเดทตามจำนวน record ที่เพิ่มเข้ามาครับ
6.ลองเปลี่ยนราคาดูครับ แล้วเมื่อมีการคีย์สินค้าชนิดเดิมที่มีการเปลียนราคาแล้ว
ลองมารัน update query ที่สร้างไว้ดูครับจะเห็นความเปลี่ยนแปลงทั้งที่ table ตารางสินค้า โดยเฉพาะถ้าเข้าไปดูที่ query ข้อ 3. จะเห็นได้ชัดเนื่องจากมี field
"ราคา" และ field "ราคาสินค้า" เทียบกันไปครับ
7.เอา update query ตัวนี้ไปวางไว้ที่เหตุการณ์หลังจากคีย์รหัสสินค้าครับมันจะได้รันอัตโนมัติ และถ้าไม่อยากให้มันโชว์ว่ามีการอัพเดทก็เข้าไปปิดการเตือนของ action query ซะ
8.ฟอร์มดังกล่าวควรจะสร้างจาก query ในข้อ 3. ครับ
9.ไม่ต้องห่วงการอัพเดททับข้อมูลเดิมเนื่องจากตั้ง criteria เป็น is null มันจะอัพเดทเฉพาะ rec ที่มีค่าว่างใน field "ราคา" เท่านั้นครับ
10.เวลานำ query ไปใช้งานต่อ เช่นสร้าง report อย่าสับสนไปเลือก field "ราคาสินค้า" นะครับเพราะมันเป็น field ที่เป็นราคาปัจจุบันย้อนหลังไปทุก record ต้องเลือก field "ราคา" ไปใช้เท่านั้นครับจะเป็นข้อมูลราคาจริง

***เขียนเยอะเพราะจะได้เข้าใจง่ายครับจริงๆแล้วสร้างง่ายนิดเดียวไม่ต้องเขียน code ด้วยครับ

5 @R08642
อืมมมมม..........ขอบคุณสำหรับคำแนะนำของผู้รู็ทุกท่านครับ
คืนนี้ผมเองจะลองทำดูครับ

ขอบคุณมากครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3286s