กระทู้เก่าบอร์ด อ.Yeadram
        
           3,519   6		  
          
					  
		    URL.หัวข้อ / 
		    URL
        
        ขอโค้ดปิด MsgBox แจ้งข้อผิดพลาดของ Access ค่ะ      
    
      ขอรบกวนอาจารย์ทุกท่านอีกแล้วค่ะ
คือหนูได้สร้างโค้ดต่างๆ สำหรับตรวจสอบการคีย์ข้อมูลของผู้ใช้ (ไ้ด้จากบอร์ดนี้แหละ) โค้ดต่างๆมันก็ทำงานได้ตามต้องการแล้วละค่ะ แต่มันหงุดหงิดตรงที่ Access มันชอบมี MsgBox แจ้งข้อผิดพลาดซ้ำซ้อนร่วมกับ MsgBox ของเราด้วยค่ะ
คือหมายความว่า เมื่อผู้ใช้ทำผิดเงื่อนไขที่กำหนด เราก็จะมี MsgBox ที่เราสร้างข้อความเอาไว้ แจ้งเตือนให้ผู้ใช้ทราบค่ะ ทีนี้พอผู้ใช้เขาคลิกปุ่ม OK ที่ MsgBox ของเราแล้วแทนที่จะจบแค่นั้น มันยังจะมี MsgBox ของ Access โผล่แจ้งเตือนข้อผิดพลาด ขึ้นมาอีก ทำให้ผู้ใช้ต้องเสียเวลาอ่าน MsgBox ของ Access อีกครั้ง
ซึ่งมันเป็นข้อความแบบกว้างๆ เนื้อหาครอบคลุมหลายประเด็นอ่านแล้วเข้าใจยาก ทำให้ผู้ใช้สับสนตกใจว่า เอ้ะ ฉันทำอะไรผิดอะไรร้ายแรงไป ถึงได้มีการแจ้งเตือนถึงสองครั้ง
นี่แหละค่ะ หนูก็เลยอยากหาวิธีปิด MsgBox ของ Access ที่ไม่ได้รับเชิญไปเสีย แบบว่า Access ไม่ต้องมาแสดงข้อความเตือนอะไรทั้งนั้น หากผู้ใช้ทำผิดเงื่อนไขก็ให้โชว์เฉพาะ MsgBox ที่เราสร้างไว้เท่านั้นค่ะ
ขอความกรุณาอาจารย์ด้วยนะคะ
    
  คือหนูได้สร้างโค้ดต่างๆ สำหรับตรวจสอบการคีย์ข้อมูลของผู้ใช้ (ไ้ด้จากบอร์ดนี้แหละ) โค้ดต่างๆมันก็ทำงานได้ตามต้องการแล้วละค่ะ แต่มันหงุดหงิดตรงที่ Access มันชอบมี MsgBox แจ้งข้อผิดพลาดซ้ำซ้อนร่วมกับ MsgBox ของเราด้วยค่ะ
คือหมายความว่า เมื่อผู้ใช้ทำผิดเงื่อนไขที่กำหนด เราก็จะมี MsgBox ที่เราสร้างข้อความเอาไว้ แจ้งเตือนให้ผู้ใช้ทราบค่ะ ทีนี้พอผู้ใช้เขาคลิกปุ่ม OK ที่ MsgBox ของเราแล้วแทนที่จะจบแค่นั้น มันยังจะมี MsgBox ของ Access โผล่แจ้งเตือนข้อผิดพลาด ขึ้นมาอีก ทำให้ผู้ใช้ต้องเสียเวลาอ่าน MsgBox ของ Access อีกครั้ง
ซึ่งมันเป็นข้อความแบบกว้างๆ เนื้อหาครอบคลุมหลายประเด็นอ่านแล้วเข้าใจยาก ทำให้ผู้ใช้สับสนตกใจว่า เอ้ะ ฉันทำอะไรผิดอะไรร้ายแรงไป ถึงได้มีการแจ้งเตือนถึงสองครั้ง
นี่แหละค่ะ หนูก็เลยอยากหาวิธีปิด MsgBox ของ Access ที่ไม่ได้รับเชิญไปเสีย แบบว่า Access ไม่ต้องมาแสดงข้อความเตือนอะไรทั้งนั้น หากผู้ใช้ทำผิดเงื่อนไขก็ให้โชว์เฉพาะ MsgBox ที่เราสร้างไว้เท่านั้นค่ะ
ขอความกรุณาอาจารย์ด้วยนะคะ
				6 Reply in this Topic. Dispaly 1  pages and you are on page number 1 
				
        
    1 @R03398    
        
  
      docmd.setwarnings false    
    
  
        
    2 @R03401    
        
  
      ขอบคุณค่ะอาจารย์
ยังไม่หายเลยค่ะ ยังมีการแจ้งเตือนอยู่เหมือนเดิม
อาจารย์คะ คำสั่งนี้ต้องใส่ไว้ตำแหน่งไหนคะ หนูนำไปใส่ไว้ที่บรรทัดก่อนจะ End if และลองใส่ไว้หลัง End if ดูก็มีผลเช่นเดิมค่ะ
    
    
  ยังไม่หายเลยค่ะ ยังมีการแจ้งเตือนอยู่เหมือนเดิม
อาจารย์คะ คำสั่งนี้ต้องใส่ไว้ตำแหน่งไหนคะ หนูนำไปใส่ไว้ที่บรรทัดก่อนจะ End if และลองใส่ไว้หลัง End if ดูก็มีผลเช่นเดิมค่ะ
        
    3 @R03403    
        
  
      ใส่ไว้ที่ บรรทัดแรกก่อนที่จะเริ่มคำสั่งต่างๆสิครับ
ถ้าใน Procedure มี คำสั่ง On error goto xxx ละก็ให้ไปลบ MsgBox Err.Description ทิ้งก็จะหายละครับ
    
  ถ้าใน Procedure มี คำสั่ง On error goto xxx ละก็ให้ไปลบ MsgBox Err.Description ทิ้งก็จะหายละครับ
        
    4 @R03406    
        
  
      ใช้วิธีตั้งค่า Option ใน Access เลือกไปที่ Tools>>Option>>Edit/Find>>Confirm ให้คลิ๊กเอา checkbox ออกให้หมด ก็เป็นวิธีหนึ่งที่ช่วยได้นะครับ    
    
  
        
    5 @R03407    
        
  
      เรียน คุณมาลี
อาจจะลองดูข้อความที่ Access เตือนขึ้นมาดูก่อนนะครับ ว่าเกิดจากสาเหตุอะไร หรือไม่ก็ลอง Add ข้อมูลมาดูก่อนก็ได้ครับ จะได้ทราบว่าเกิดจากสาเหตุอะไร
ลองดูตัวอย่างตามนี้นะครับ
1. ข้อความที่แจ้งเตือนจากการใช้ Action Query ก็ให้ใช้คำสั่ง docmd.setwarning False ก่อนการ Run Action Query
2. ถ้าเป็น Error ที่เป็นประเภทแบบ Run-time Err ก็ให้ใช้ Error Handlers คือใช้
3. หรือคุณอาจจะไปกำหนด Properties ที่ Validation Rule ก็ได้ครับ
ลองดูนะครับ
    
  อาจจะลองดูข้อความที่ Access เตือนขึ้นมาดูก่อนนะครับ ว่าเกิดจากสาเหตุอะไร หรือไม่ก็ลอง Add ข้อมูลมาดูก่อนก็ได้ครับ จะได้ทราบว่าเกิดจากสาเหตุอะไร
ลองดูตัวอย่างตามนี้นะครับ
1. ข้อความที่แจ้งเตือนจากการใช้ Action Query ก็ให้ใช้คำสั่ง docmd.setwarning False ก่อนการ Run Action Query
2. ถ้าเป็น Error ที่เป็นประเภทแบบ Run-time Err ก็ให้ใช้ Error Handlers คือใช้
On Error {Goto LineID | Resume [Next] | Goto 0 }
    On Error
    Goto
    Resume Next
3. หรือคุณอาจจะไปกำหนด Properties ที่ Validation Rule ก็ได้ครับ
ลองดูนะครับ
        
    6 @R03410    
        
    
      ขอบคุณอาจารย์ทุกๆท่านนะคะ
หนูแก้ได้แล้ว โดยใช้แบบนี้ค่ะ
หนูใช้คำสั่ง docmd.setwarnings false ที่อาจารย์ yeadram แนะนำค่ะ ซึ่งดัดแปลงเล็กน้อยเป็น docmd.setwarnings Off แล้วนำไปวางที่ตำแหน่งบรรทัดแรก ตามคำแนะนำของอาจารย์ Nova ค่ะ
ได้ผลตามที่ต้องการแล้วค่ะ สำหรับคำสั่ง Off ที่ใส่เข้าไปนั้น หนูก็ใช้วิธีมั่วๆเอาค่ะ แล้วบังเอิญมันใช้ได้ก็เลยโชคดีจบงานได้ค่ะ
ขอขอบคุณอาจารย์ทุกๆท่านที่กรุณาให้ความรู้ดีๆแก่หนูค่ะ
    
  หนูแก้ได้แล้ว โดยใช้แบบนี้ค่ะ
หนูใช้คำสั่ง docmd.setwarnings false ที่อาจารย์ yeadram แนะนำค่ะ ซึ่งดัดแปลงเล็กน้อยเป็น docmd.setwarnings Off แล้วนำไปวางที่ตำแหน่งบรรทัดแรก ตามคำแนะนำของอาจารย์ Nova ค่ะ
ได้ผลตามที่ต้องการแล้วค่ะ สำหรับคำสั่ง Off ที่ใส่เข้าไปนั้น หนูก็ใช้วิธีมั่วๆเอาค่ะ แล้วบังเอิญมันใช้ได้ก็เลยโชคดีจบงานได้ค่ะ
ขอขอบคุณอาจารย์ทุกๆท่านที่กรุณาให้ความรู้ดีๆแก่หนูค่ะ
      Time: 0.1123s
    
      
		