โค้ด text box รับค่าตัวเลขจาก...
กระทู้เก่าบอร์ด อ.Yeadram

 5,933   3
URL.หัวข้อ / URL
โค้ด text box รับค่าตัวเลขจาก...

อยากทราบว่า โค้ด VBA ของMS Access จะเขียนอย่างไรถ้าต้องการให้ text box ที่สร้างขึ้นมาในฟอร์มๆหนึ่งให้สามารถรับค่าตัวเลขซึ่งเป็น Text จากฟิลด์ที่เราป้อนเข้าไปในฟอร์มๆนั้น

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

1 @R00672
"ต้องการให้ text box ที่สร้างขึ้นมา....สามารถรับค่าตัวเลข"
textbox รับค่าตัวเลขได้อยู่แล้วครับ ไม่ต้องเขียนโค้ดเพิ่มเติม

"ซึ่งเป็น Text จากฟิลด์ที่เราป้อนเข้าไป"
อันนี้ผมยัง งง อยู่ครับ ขอคำอธิบายเพิ่มเติมหน่อยครับ
2 @R00676
คือผมมีฟอร์มฟอร์มหนึ่งชื่อว่า A
และมีฟิลด์ 1 ฟิลด์ สำหรับกรอกตัวเลขซึ่งผมกำหนดให้ค่าฟิลด์นั้นเป็น Text
ต่อมาผมสร้าง TextBox ขึ้นมา 1 Box เพื่อต้องการให้มีค่าเหมือนกันกับฟิลด์ สำหรับกรอกตัวเลข
คือกรอกตัวเลขที่ฟิลด์อย่างไรก็ให้ Textbox ที่สร้างขึ้นมามีตัวเลขอย่างนั้น
ผมจะต้องเขียนโค้ดใน VBA อย่างไรครับ(ต้องการเขียนเป็นโค้ดครับ)
ขอบคุณมากครับที่กรุณาช่วยตอบ
3 @R00678
ค่าของมันจะเป็นข้อมูลชนิดใด ขึ้นอยู่กับการอ้าง ซึ่งเราอาจต้องใช้ฟังก์ชั่น convert เข้ามาช่วยเพื่อให้เปลี่ยนชนิดของข้อมูล
สมมติเช่น มี เลข 9 อยู่ใน textbox ที่ชื่อว่า text1

- หากต้องการเอาค่า string เราจะอ้างเอาว่า cstr(text1)     ค่าที่ได้ก็จะเป็น ตัวหนังสือที่เขียนว่า 9 ตามหลักแล้วจะนำไปบวก ลบ คูณ หาร ไม่ได้ เพราะ มันไม่ใช่ number แต่ระบบใหม่ๆ ทุกวันนี้ มันอัตโนมัติไปหมดแล้ว เมื่อ string ไปเจอกับ operator แล้วมันจะพยายามแปลงชนิดข้อมูลให้อัตโนมัติ
- หากต้องการให้เป็นตัวเลข ทีนี้จะมีแยกย่อยไปว่า ต้องการให้เป็น number แบบไหน
เช่น
    - ถ้าต้องการให้เป็น Long เราจะอ้างค่าด้วยการใช้ฟังก์ชั่น clng (convert to long) ก็คือ Clng(text1) ค่าที่ได้คือ 9 (ซื่งเป็นตัวแปรที่สามารถนำไปคำนวนได้เลย แต่เป็นจำนวนเต็ม ไม่มีจุดทศนิยม)
    - ถ้าต้องการให้เป็น double เราก็อ้าง Cdbl(text1) ก็จะได้ 9.00 คือได้มาเป็นจำนวนจริง

แม้ว่า ถ้าเราตามเข้าไปดูลึก ๆ ใน VB6 พร็อพเพอร์ตี้เริ่มต้น ของ textbox จะเป็น string (text1.text)
และใน Access พร็อพเพอร์ตี้เริ่มต้น จะเป็น Number (text1.value) ก็ตาม แต่เพื่อความแน่นอนกว่า ส่วนใหญ่ก็ยังใช้ ฟังก์ชั่น convert ช่วยอยู่ดี


ซึ่งที่กล่าวมา จะเห็นได้ว่า ระบบโค้ดจะไม่สนว่า text1 จะมีอะไรในนั้นและไม่สนว่า สิ่งที่อยู่ใน text1 เป็น text หรือ number
ส่วนคำถามที่ต้องการ ให้ text1 มีค่าเป็น text
แล้วให้ text2 มีค่าเป็น number
"เพื่อต้องการให้มีค่าเหมือนกัน" ผมก็เลย งงๆ ว่าผมเข้าใจ โจกท์หรือเปล่าเนี่ย เหอๆ

แต่ถ้าอยากได้โค้ดให้เห็นเป็นรูปธรรมจริงๆ ก็.... คุณอยากให้ text2 เป็นตัวเลขแบบไหนล่ะ
text2 = Clng(text1)           
text2=Cint(text1)
text2 = Cdbl(text1)
text2 = val(text1)
มันก็มีแค่นี้แหละครับ โค้ด ส่วนจะให้โค้ดมันทำงาน "เมื่อไหร่ ?" .... ก็ ... แล้วแต่ผู้จะนำไปใช้
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3210s