รบกวนสอบถามอาจารย์ครับ เกี่ยวกับสคิป VBS ช่อง Input ล็อคไม่ให้เปลี่ยนค่าได้ครับ


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

28 มิ.ย. 65 , 00:18:43
อ่าน 180 ครั้ง

ittiphol

  • สมาชิกไท.Access
  • กระทู้: 28

  • ขอบคุณ ไท.Access

    • ดูรายละเอียด

รบกวนสอบถามอาจารย์ครับ เกี่ยวกับสคิป VBS ช่อง Input ล็อคไม่ให้เปลี่ยนค่าได้ครับ



โค๊ด: [Select]
serial = InputBox(VBCrLf,"๐๐๐๐๐ ทดสอบ ๐๐๐๐๐ : ",objItem.SerialNumber)
โค้ดมีแถวเดียวครับ จำเป็นต้องให้กด ตกลง เพื่อบันทึกค่าลงไป แต่ไม่ต้องการให้ผู้ใช้เปลี่ยนค่าในช่องครับ
รบกวนอาจารย์ด้วยครับ ขอบคุณมากๆครับ

 

28 มิ.ย. 65 , 08:20:47
ตอบกลับ #1

PNR

รบกวนสอบถามอาจารย์ครับ เกี่ยวกับสคิป VBS ช่อง Input ล็อคไม่ให้เปลี่ยนค่าได้ครับ



โค๊ด: [Select]
serial = InputBox(VBCrLf,"๐๐๐๐๐ ทดสอบ ๐๐๐๐๐ : ",objItem.SerialNumber)
โค้ดมีแถวเดียวครับ จำเป็นต้องให้กด ตกลง เพื่อบันทึกค่าลงไป แต่ไม่ต้องการให้ผู้ใช้เปลี่ยนค่าในช่องครับ
รบกวนอาจารย์ด้วยครับ ขอบคุณมากๆครับ

ขึ้นชื่อว่า Input box จะห้ามไม่ให้แก้ไขก็คงทำไม่ได้

แต่สามารถการใช้การฟอร์มขึ้นมาเลียนแบบ Inputbox มีปุ่ม Ok Cancel
โดยตรงรหัส SerialNumber ใช้ Textbox แทนก็จะสามารถห้ามไม่ให้ Edit ได้ครับ
โดยใช้การสร้างเงื่อนไข ที่จะแสดงฟอร์ม โดยใช้คำสั่งเปิดฟอร์ม เป็น Dialog เช่น
DoCmd.OpenForm "formname", , , , , acDialog

และใช้การปิดฟอร์มหลังจากบันทึกค่าไปแล้ว
DoCmd.Close acForm, "FormName"

ลองดูนะครับ
Time to stop for me  :dizzy:
 
โพสต์นี้ได้รับคำขอบคุณจาก: Un, ittiphol

28 มิ.ย. 65 , 13:28:06
ตอบกลับ #2

ittiphol

  • สมาชิกไท.Access
  • กระทู้: 28

  • ขอบคุณ ไท.Access

    • ดูรายละเอียด

รบกวนสอบถามอาจารย์ครับ เกี่ยวกับสคิป VBS ช่อง Input ล็อคไม่ให้เปลี่ยนค่าได้ครับ



โค๊ด: [Select]
serial = InputBox(VBCrLf,"๐๐๐๐๐ ทดสอบ ๐๐๐๐๐ : ",objItem.SerialNumber)
โค้ดมีแถวเดียวครับ จำเป็นต้องให้กด ตกลง เพื่อบันทึกค่าลงไป แต่ไม่ต้องการให้ผู้ใช้เปลี่ยนค่าในช่องครับ
รบกวนอาจารย์ด้วยครับ ขอบคุณมากๆครับ

ขึ้นชื่อว่า Input box จะห้ามไม่ให้แก้ไขก็คงทำไม่ได้

แต่สามารถการใช้การฟอร์มขึ้นมาเลียนแบบ Inputbox มีปุ่ม Ok Cancel
โดยตรงรหัส SerialNumber ใช้ Textbox แทนก็จะสามารถห้ามไม่ให้ Edit ได้ครับ
โดยใช้การสร้างเงื่อนไข ที่จะแสดงฟอร์ม โดยใช้คำสั่งเปิดฟอร์ม เป็น Dialog เช่น
DoCmd.OpenForm "formname", , , , , acDialog

และใช้การปิดฟอร์มหลังจากบันทึกค่าไปแล้ว
DoCmd.Close acForm, "FormName"

ลองดูนะครับ


ขอบคุณมากๆครับ แต่ผมใช้ผ่านไฟล์ตัวอย่าง test นั้นเลยครับในรูป ไม่ได้ทำผ่านโปรแกรมเขียน vb ครับผม
ใส่เป็น Code เอาเลยครับ

ถ้ามันทำไม่ได้มีทางไหมครับที่จะให้มันเก็บตัวแปลเอาไว้โดยไม่ต้องมาแสดง

โค๊ด: [Select]
serial = InputBox(VBCrLf,"๐๐๐๐๐ ทดสอบ ๐๐๐๐๐ : ",objItem.SerialNumber)
อาจจะให้มันแสดงขึ้นมาเป็น  MsgBox แต่ผมทำให้มันไปฝากค่าไม่เป็นครับเช่นจะเอาค่าไปเก็บที่ serial

serial = MsgBox......................... มัน error ครับ จะทำยังไงให้มันเอาค่าจาก MsgBox ไปเก็บไว้ที่ serial ครับผม  :cry:


 

28 มิ.ย. 65 , 22:44:34
ตอบกลับ #3

OddyWriter

ไม่แน่ว่าผมตอบตรงคำถามหรือเปล่านะครับ
1. เก็บ objItem.SerialNumber ไว้ในตัวแปร
2. นำค่าในตัวแปรมาแสดงใน MsgBox ครับ
วิกฤติโควิดทำให้ร้อนเงิน
ใครอยากจ้างทำฐานข้อมูล สอนวางระบบฐานข้อมูล Excel/ Access/ VBA Excel/ VBA Access/ SQL Server/ Database Design
แม้กระทั่งดูดวง ก็ติดต่อได้นะครับ
 


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