เราสามารถให้ข้อมูลบาง Record เป็น Read only ได้หรื
กระทู้เก่าบอร์ด อ.Yeadram

 1,169   4
URL.หัวข้อ / URL
เราสามารถให้ข้อมูลบาง Record เป็น Read only ได้หรื

ผมสร้าง Form ป้อนข้อมูล แบบเห็นได้หลาย ๆ Record (หน้าตาคล้าย ๆ Excel) โดยมี Field หนึ่งชื่อ Record_Status ซึ่งเป็น Field แรก และมีค่า Default = "A" เสมอ    ส่วน Field อื่น ๆ ก็ป้อนข้อมูลตามที่ออกแบบไว้ (ไม่ขอกล่าวถึง) เมื่อป้อนข้อมูลเสร็จ จะกี่ Record ก็ได้   เมื่อกดปุ่ม Run โปรแกรม ที่เป็น VBA จะนำข้อมูลที่ Record_Status="A" เท่านั้นไปประมวลผล   และหลังจากประมวลผลเสร็จ โปรแกรม VBA ก็จะกลับมาเปลี่ยน   Record_Status="C" เพื่อแสดงว่าข้อมูลถูกประมวลผลไปเรียบร้อยแล้ว      แต่มีปัญหาว่าบ้างครั้ง ก็ต้องกลับมาแก้ไขข้อมูลที่ประมวลไปแล้ว   โดยป้อนข้อมูลที่ Record_Status="A" ก่อน   แล้ว Run ใหม่      เพราะฉะนั้นในหน้าจอ Form จึงมีข้อมูลทั้ง Record_Status ที่เท่ากับ "A" และ "C" เราจะเลือกกำหนดได้ไหมว่า เฉพาะ Record_Status ที่เท่ากับ   "C" เท่านั้น ”ห้ามแก้ไข”   จนกว่าจะป้อนข้อมูลที่ Record_Status ให้เท่ากับ "A" จึงจะแก้ไขข้อมูลใน Field อื่น ๆ ได้   ทำแบบนี้มีวิธีไหมครับ

ตัวอย่าง

Record_status            Item_Code            Item_Name                     Amount
C                                 FJ5678                  Food Jar 560 cc                 800
C                                 CK9017                 Insectiside 350 cc              500
A                                 AB0106                 Beer 630 cc                      100
A                                 AB0148                 Beer 350 cc                        500

ขอสอบถามว่า ในหน้าจอแบบนี้ ผมจะเลือกกำหนดให้ ข้อมูลเฉพาะ Record_Status ที่เท่ากับ "C" เท่านั้น ที่เป็น Read Only คือห้ามแก้ไขข้อมูล หากจะแก้ไขข้อมูลต้องคีย์แก้ไข Record_Status="A" ก่อน   จึงจะแก้ไขได้ ต้องทำอย่างไรครับ

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

1 @R22358
ถ้า Status = "C" คือแก้ไม่ได้ แล้วจะให้แก้ Status ที่ Form อื่น ก่อน ใช่หรือเปล่าครับ?
2 @R22361
อยู่บน Form เดียวกันครับ
3 @R22363
ลองใช้ Conditional Formatting กับทุกคอนโทรลบนฟอร์ม ยกเว้นคอนโทรล Status โดยกำหนดเงื่อนไข

Expression Is: [Record_status] = "C"

แล้วกำหนดให้เป็น Disable

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