Fromat วันที่ บน FORM
กระทู้เก่าบอร์ด อ.Yeadram

 1,783   5
URL.หัวข้อ / URL
Fromat วันที่ บน FORM

ผมต้องการวาง TEXBOX ไว้รับค่าวันที่โดยมีรูปแบบดังนี้
_ _/_ _/_ _     (วัน/เดือน/ปี   ปีเป็นเลข 2 หลัก เช่น 25/08/51)

คือให้ผู้ใช้เห็นรูปแบบดังกล่าว เลย ก่อนที่จะเริ่ม KEY ข้อมูล
FORMAT ดังกล่าวผมต้องเขียนด้วย CODE หรือ
ทำอย่างไรครับ

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

1 @R00553
ที่คุณสมบัติของ textbox
ไปที่แท็บ Data
ดูตัวเลือกที่สอง "รูปแบบการป้อนข้อมูล" (InputMask)

ใส่ค่า    00/00/00;0;_

* หากต้องการรูปแบบอื่นๆ ลองกดปุ่ม ... หลังตัวเลือกตัวนี้
** ผู้ใช้จะมองไม่เห็นรูปแบบ จนกว่าจะนำเคอร์เซอร์มาวางที่ textbox ตัวนี้
2 @R00570
ได้ตามแบบที่แนะนำครับ แต่เนื่องจากผม set ค่า DEFALT
=DATE() และตั้งการแสดงผลเป็น MEDIUM DATE ผลมันจะได้
25-AUG-08
เมื่อนำ CURSOR มา FOCUS มันจ ะขึ้น25/08/2551ผมต้องลบแล้ว
พิมพ์ใหม่ถ้าจะเปลี่ยนวันที่
แต่ผมต้องการให้ FOCUS แล้วให้มันขึ้น_ _/_ _/_ _   เลย
ผมต้องเขียน CODE ต่ออย่างไรครับ เพื่อบังคับมันให้รอรับข้อมูลอย่างที่ว่า
3 @R00571
- ณ เหตุการณ์ ได้รับโฟกัส
- ถ้า text1 เป็นค่าว่าง (แสดงว่าเป็นเรคคอร์ใหม่ กำลังจะเพิ่มข้อมูล) ให้ inputmask เป็น   00/00/00;0;_
- ถ้า text1 ไม่เป็นค่าว่าง (แสดงว่าเป็นเรคคอร์ดเก่า และต้องการแก้ไข) ให้ text1 เป็นค่าว่างเสียก่อน แล้วค่อย ให้ inputmask เป็น 00/00/00;0;_
- ** กรณี เคอร์เซอร์ แค่แวะผ่านทาง ไม่ได้มีเจตนาจะแก้ไข ก็ต้องเอาข้อมูลเก่ากลับมาใส่คืน

dim x

Private sub text1_onfocus()
x = text1
if text1<>"" then text1=""
text1.inputmask ="00/00/00;0;_ "
End sub

private sub text1_lostfocust()
if text1="" and x<>"" then text1=x
end sub
4 @R00574
ผมต้องกำหนดตัวแปร X ไว้ตรงไหนครับ เพราะเมื่อ RUN
Private sub text1_onfocus()
x = text1
if text1<>"" then text1=""
text1.inputmask ="00/00/00;0;_ "
End sub

แล้ว มันจะทำลายตัวแปร x ทิ้ง เป็น NULL (ใช้ WACTH ดู)
ผมลองกำหนดตรง
Option Compare Database
Option Explicit
Dim x
มันน่าจะได้ แต่ไม่ได้เหมือนกัน หรือมันต้องเป็นตัวแปรแบบไหนครับ
5 @R00576
x จริงๆ แล้วตั้งใจให้เป็น datetime ครับ
แต่กลัวผิดพลาด กรณี textbox มีค่าเป็นอย่างอื่น จึงให้เป็น variat ไว้ก?อนครับ

x จะมีค่าก็ต่อเมื่อ เคอร์เซอร์ ไปอยู่ที่ text1
และ x จะมีค่าก็ต่อเมื่อ text1 เคยมีข้อมูลเก่าอยู่แล้ว

เมื่อเคอร์เซอร์ เคลื่อนที่ออกจาก text1 ค่า x จะไร้ความหมาย ผม ไม่ได้เคลียร์ค่าทิ้งไปแต่ จริงๆ เราก็ไม่ได้เอาไปทำอะไรอีก
เมื่อเคอร์เซอร์ ไปอยู่ที่ text1 รอบใหม่ ค่า x ก็จะเปลี่ยนไปทุกครั้งครับ
ดังนั้น ถ้า debug ดูค่า x จะเห็นว่า บางครั้ง เป็น null
การประกาศ ไว้ที่ ส่วน declear ตามนั้นถูกต้องแล้วครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.2810s