กระทู้เก่าบอร์ด อ.Yeadram
        
           7,157   23		  
          
					  
		    URL.หัวข้อ / 
		    URL
        
        มีวิธีการป้องกันการกด Shift ไหมครับ      
    
      อยากทราบว่า Access มีวิธีการป้องกันการกด Shift ไหมครับ ผมเคยเห็นบางโปรแกรมที่พัฒนาโดย Access เขาสามารถป้องกันการกด Shift ได้ ไม่รู้ว่าทำยังไง ครับ    
    
  
				23 Reply in this Topic. Dispaly 2  pages and you are on page number 1 
				
        
    1 @R07884    
        
  
      http://www.thai-access.com/yeadram_view.php?topic_id=474    
    
  
        
    2 @R07885    
        
  
      สร้าง mdb มาอีกตัวก็ได้ครับ เอาฟังก์ชั่นไปวางในโมดูล (อย่าลืม add library DAO 3.6) 
สร้างฟอร์มมา 1ตัว มี textbox
ใส่พาธของไฟล์ที่ต้องการล็อกใน textbox
มีปุ่มคำสั่ง
เมื่อคลิ๊กที่ปุ่มคำสั่ง
Dim MyDb As Database
Set MyDb = OpenDatabase(Text0)
MsgBox ("disable set, result = " & ChangeProperty("AllowBypassKey", dbBoolean, False, MyDb))
ตัวที่จะถูกล็อกไม่ใช่ตัวที่ทำงานอยู่ ณ ปัจจุบันนะครับ แต่เป็นตัวที่ ชื่อมันอยู่ใน textbox และ... ขณะที่ตัวนี้กำลังทำงาน mdb ตัวเป้าหมายต้องไม่รันอยู่ในขณะนั้น
************************************
อ. สันติสุข ครับ ไม่ทราบว่าตรงที่บอกให้ใส่ Path ของไฟล์ที่ต้องการล็อกใน textbox ไม่ทราบว่าต้องใส่ตรงไหนครับ ไม่เข้าใจ
    
  สร้างฟอร์มมา 1ตัว มี textbox
ใส่พาธของไฟล์ที่ต้องการล็อกใน textbox
มีปุ่มคำสั่ง
เมื่อคลิ๊กที่ปุ่มคำสั่ง
Dim MyDb As Database
Set MyDb = OpenDatabase(Text0)
MsgBox ("disable set, result = " & ChangeProperty("AllowBypassKey", dbBoolean, False, MyDb))
ตัวที่จะถูกล็อกไม่ใช่ตัวที่ทำงานอยู่ ณ ปัจจุบันนะครับ แต่เป็นตัวที่ ชื่อมันอยู่ใน textbox และ... ขณะที่ตัวนี้กำลังทำงาน mdb ตัวเป้าหมายต้องไม่รันอยู่ในขณะนั้น
************************************
อ. สันติสุข ครับ ไม่ทราบว่าตรงที่บอกให้ใส่ Path ของไฟล์ที่ต้องการล็อกใน textbox ไม่ทราบว่าต้องใส่ตรงไหนครับ ไม่เข้าใจ
        
    3 @R07887    
        
  
      อ่อ ... ได้แล้วครับ โทษทีครับผมอ่านคำตอบไม่เคลียร์เอง  
    
    
   
    
        
    4 @R07888    
        
  
      นำไปใช้ยังไงครับช่วยแนะนำให้ละเอียดหน่อยได้ไหมครับ ผมลองแล้วไม่ทำงานเลยครับ ผมสร้างฐานข้อมูลใหม่ชื่อ db2 แล้วสร้าง Text0 ที่ Control Sourec พิมพ์ ="D:\db1" 
สร้างปุ่มคำสั่ง 1 อันแล้วคีย์
Private Sub Command2_Click()
Dim MyDb As Database
Set MyDb = OpenDatabase(Text0)
MsgBox ("disable set, result = " & ChangeProperty("AllowBypassKey", dbBoolean, False, MyDb))
End Sub
เมื่อคลิกที่ปุ่มคำสั่ง มันจะขึ้น
disable set,result = -1 จากนั้นก็คลิก OK เพื่อปิดข้อความที่ขึ้นมาเตือน
จากนั้นก็ลองไปเปิดไฟล์ db1 โดยกด shift ปรากฏว่ายังสามารถกด shift เข้าโปรแกรมได้อยู่ครับ ไม่รู้ว่าทำผิดขั้นตอนตรงไหน แนะนำหน่อยครับ
    
  สร้างปุ่มคำสั่ง 1 อันแล้วคีย์
Private Sub Command2_Click()
Dim MyDb As Database
Set MyDb = OpenDatabase(Text0)
MsgBox ("disable set, result = " & ChangeProperty("AllowBypassKey", dbBoolean, False, MyDb))
End Sub
เมื่อคลิกที่ปุ่มคำสั่ง มันจะขึ้น
disable set,result = -1 จากนั้นก็คลิก OK เพื่อปิดข้อความที่ขึ้นมาเตือน
จากนั้นก็ลองไปเปิดไฟล์ db1 โดยกด shift ปรากฏว่ายังสามารถกด shift เข้าโปรแกรมได้อยู่ครับ ไม่รู้ว่าทำผิดขั้นตอนตรงไหน แนะนำหน่อยครับ
        
    5 @R07889    
        
  
      คุณ kid ครับ
control source ของ text0 (มุมมองออกแบบ) ไม่ต้องเขียนอะไรลงไปครับ
รันฟอร์มมาเลยครับ ในมุมมองฟอร์ม
กรอก d:\db1 ลงไปใน text0 ครับ แล้วค่อยกดปุ่มคำสั่ง
    
    
  control source ของ text0 (มุมมองออกแบบ) ไม่ต้องเขียนอะไรลงไปครับ
รันฟอร์มมาเลยครับ ในมุมมองฟอร์ม
กรอก d:\db1 ลงไปใน text0 ครับ แล้วค่อยกดปุ่มคำสั่ง
        
    6 @R07891    
        
  
      ทำตามที่แนะนำแล้ว โดยเปิดฟอร์มแล้วกรอกd:\db1 ลงไปใน text0  แล้วค่อยกดปุ่มคำสั่ง ลองแล้วครับยังกด shift เข้าได้เหมือนเดิมครับ    
    
  
        
    7 @R07895    
        
  
      ผมทำเสร็จแล้วทำเป็นโปรแกรมเลยสามารถเลือก Browse ได้ด้วย ครับ แต่ไม่รู้จะเอาลงยังไงเพื่อให้เพื่อนๆ ทุกคนได้ใช้กัน    
    
  
        
    8 @R07897    
        
  
      กรุณาส่งไฟล์ไปที่ e-mail ประจำบอร์ดนี้ ซึ่งอาจารย์ท่านได้ทำไว้ให้ คือ
[email protected]
เสร็จแล้วก็กลับมาแจ้งที่บอร์ดนี้ด้วย ว่าได้ส่งไฟล์แล้วชื่อหัวข้ออะไร
เพื่อนสมาชิกที่สนใจก็จะตามไปโหลดไฟล์กันเองค่ะ (รวมทั้งหนูด้วยล่ะ)
ชื่อผู้ใช้ : [email protected]
รหัสผ่าน : accgmail
ขอบคุณค่ะ
    
    
  [email protected]
เสร็จแล้วก็กลับมาแจ้งที่บอร์ดนี้ด้วย ว่าได้ส่งไฟล์แล้วชื่อหัวข้ออะไร
เพื่อนสมาชิกที่สนใจก็จะตามไปโหลดไฟล์กันเองค่ะ (รวมทั้งหนูด้วยล่ะ)
ชื่อผู้ใช้ : [email protected]
รหัสผ่าน : accgmail
ขอบคุณค่ะ
        
    9 @R07898    
        
  
      คุณ kid เผลอละเลยประเด็นสำคัญนี้ไปหรือเปล่าคะ
 
    
    
  ตัวที่จะถูกล็อกไม่ใช่ตัวที่ทำงานอยู่ ณ ปัจจุบัน แต่เป็นตัวที่ ชื่อมันอยู่ใน textbox และ... ขณะที่ตัวนี้กำลังทำงาน mdb ตัวเป้าหมาย ต้องไม่รันอยู่ในขณะนั้น 
        
    10 @R07901    
        
  
      ตัวที่ Textbox ยังไม่เปิดใช้งานครับ ผมกดปุ่มคำสั่งก่อนแล้วจึงลองไปกด shift เปิด mde ตัวเป้าหมายก็ยังเปิดได้ครับ 
    
    
   
    
        
    11 @R07902    
        
  
      ของผมใช้งานได้นะครับ access 2007
ใน textbox ให้พิมพ์ ไดร์\โฟลเดอร์\ชื่อไฟล์.นามสกุล
อันนี้ของผม
d:\test.accdb เป็น db ที่เป็นเป้าหมาย ไม่ได้เปิดใช้งาน
แล้วกดปุ่มคำสั่ง
ก็ใช้งานได้นะครับ ไม่สามารถกด shift ได้
    
  ใน textbox ให้พิมพ์ ไดร์\โฟลเดอร์\ชื่อไฟล์.นามสกุล
อันนี้ของผม
d:\test.accdb เป็น db ที่เป็นเป้าหมาย ไม่ได้เปิดใช้งาน
แล้วกดปุ่มคำสั่ง
ก็ใช้งานได้นะครับ ไม่สามารถกด shift ได้
        
    12 @R07903    
        
  
      ผมได้ส่งไฟล์ ต.ย. โปรแกรม ไปให้แล้วครับ ชื่อหัวข้อ โปรแกรมป้องกันการกดปุ่ม Shift ครับ เพื่อนๆ สามารถ ดาวน์โหลดไปทดลองใช้กันได้เลยครับ ผม .....   
    
    
   
    
        
    13 @R07905    
        
  
      เรียนคุณ kid
ไฟล์ปลายทางของคุณ (d:\db1) ได้ถูกคอมไพล์ ไปเป็น mde แล้ว
ผมเข้าใจว่า น่าจะใช้คำสั่ง changeproperty กับมันไม่ได้แล้วครับ หรืออย่างไร อันนี้ก็ไม่เคยลองครับ
ถ้าเป็นอย่างที่ผมเข้าใจ คุณ kid เอง อาจต้องหาวิธีอื่นครับ หรือทดลอง ไปเอาต้นฉบับ mdb มา change ก่อนแล้วค่อยแปลงไปเป็น mde อาจจะได้ผลนะครับ อันนี้ต้องลองเอาเองนะครับ
    
  ไฟล์ปลายทางของคุณ (d:\db1) ได้ถูกคอมไพล์ ไปเป็น mde แล้ว
ผมเข้าใจว่า น่าจะใช้คำสั่ง changeproperty กับมันไม่ได้แล้วครับ หรืออย่างไร อันนี้ก็ไม่เคยลองครับ
ถ้าเป็นอย่างที่ผมเข้าใจ คุณ kid เอง อาจต้องหาวิธีอื่นครับ หรือทดลอง ไปเอาต้นฉบับ mdb มา change ก่อนแล้วค่อยแปลงไปเป็น mde อาจจะได้ผลนะครับ อันนี้ต้องลองเอาเองนะครับ
        
    14 @R07906    
        
  
      ผมโหลดมาลองดูแล้วครับ ทำไมยังกด Shift เข้าเปิดโปรแกรมได้อยู่ครับ ใช้ access2000 ครับ...
 
    
    
   
    
        
    15 @R07907    
        
  
      ขอบคุณอาจารย์ Sak อย่างยิ่ง หนูไปโหลดมาแล้ว มีประโยชน์มากเลยค่ะ มีทั้ง ล็อค/ปลดล็อค/Browse ให้เรียบร้อยเลย
เพื่อนสมาชิกลองไปโหลดดูนะคะ
    
  เพื่อนสมาชิกลองไปโหลดดูนะคะ
        
    16 @R07908    
        
  
      ผมเอามาดัดแปลงใช้เป็นโปรแกรมเพื่อให้ใช้ได้ง่ายขึ้นนะครับ ขอบคุณครับ ที่มีประโยชน์กับทุกๆ ท่าน ....  
    
    
   
    
        
    17 @R07909    
        
  
      ของผมป้องกันไม่ได้แล้วทำไมของท่านอื่นๆจึงป้องกันได้....งงครับ!
ผมก็ทำตามขั้นตอนทุกอย่างแล้วที่อยู่ของไฟล์ป้องกันคือD:\db1.mdb กดปุ่มป้องกัน Shift แล้วก็มีข้อความแจ้งเตือน
"ไฟล์ D:\db1.mdb ของคุณถูกป้องกันการกด Shift แล้ว" พอกดปุ่ม OK เสร็จก็ไปทดลองเปิดไฟล์ db1 โดยกด Shift ค้างแล้วดับเบิ้ลคลิกไฟล์ db1 สามารถเปิดได้
มีท่านทดลองแล้วเป็นเหมือนผมบ้างครับ
    
  ผมก็ทำตามขั้นตอนทุกอย่างแล้วที่อยู่ของไฟล์ป้องกันคือD:\db1.mdb กดปุ่มป้องกัน Shift แล้วก็มีข้อความแจ้งเตือน
"ไฟล์ D:\db1.mdb ของคุณถูกป้องกันการกด Shift แล้ว" พอกดปุ่ม OK เสร็จก็ไปทดลองเปิดไฟล์ db1 โดยกด Shift ค้างแล้วดับเบิ้ลคลิกไฟล์ db1 สามารถเปิดได้
มีท่านทดลองแล้วเป็นเหมือนผมบ้างครับ
        
    18 @R07910    
        
  
      กรณีของคุณคิดนั้น เมื่อมีข้อความขึ้นมาว่า "ไฟล์ D:\db1.mdb ของคุณถูกป้องกันการกด Shift แล้ว" ก็แสดงว่ามันทำงานแล้วล่ะ
แต่อาจยังไม่เห็นผล เนื่องจากไฟล์ db1.mdb ของคุณ คงยังไม่ได้สร้างเมนูของตนเองขึ้นมาใช้แทนของ Access โดยซ่อนเมนูของ Access เอาไว้
การกดปุ่ม Shift ก็คือการให้แสดงเมนูของ access ที่ถูกซ่อนอยู่ค่ะ ดังนั้นหากไฟล์ db1.mdb ไม่มีการซ่อนเมนู การกดหรือไม่กด Shift จึงไม่เห็นความแตกต่างค่ะ
    
    
  แต่อาจยังไม่เห็นผล เนื่องจากไฟล์ db1.mdb ของคุณ คงยังไม่ได้สร้างเมนูของตนเองขึ้นมาใช้แทนของ Access โดยซ่อนเมนูของ Access เอาไว้
การกดปุ่ม Shift ก็คือการให้แสดงเมนูของ access ที่ถูกซ่อนอยู่ค่ะ ดังนั้นหากไฟล์ db1.mdb ไม่มีการซ่อนเมนู การกดหรือไม่กด Shift จึงไม่เห็นความแตกต่างค่ะ
        
    19 @R07911    
        
  
      ผมลองแล้วไม่ได้จริงๆนะครับ มีรูปตัวอย่างเปรียบเทียบให้ดูไหมครับ    
    
  
        
    20 @R07914    
        
      
	  
      
    
      เซ็ทค่าเริ่มต้นของไฟล์เป้าหมายตามรูป แล้วทดลองใช้โปรแกรมของคุณ Sak ล็อกและปลดล็อก Shift ไฟล์เป้าหมายดู จะได้ดังรูปตัวอย่างนะคะ
 
    
    
   
      Time: 0.0597s
    
      
		