ค่าไม่ตรงตาม digit
กระทู้เก่าบอร์ด อ.Yeadram

 1,666   7
URL.หัวข้อ / URL
ค่าไม่ตรงตาม digit

มี table ชื่อ type_job ฟิวส์ในตารางชื่อ type เป็น text
type ชื่อฟิวส์
APP          ข้อมูลในฟิวส์ type
APR          ข้อมูลในฟิวส์ type
BRK          ข้อมูลในฟิวส์ type
โดยข้อมูลแต่ละตัวจะมีตัวอักษร 3 ตัวและค่าว่างต่อท้ายอีก 1 รวมเป็น 4 digit
จากนั้นก็นำ ฟิวส์ type มาทำ Combo box ที่หน้าฟอร์ม โดยใ้ห้พนักงานเลือก List ที่กำหนดให้แล้ว ข้อมูลที่เลือกก็จะส่งไป ยัง Table ชื่อว่า call โดยจะจัดเก็บข้อมูลไว้ที่ชื่อฟิวส์ action_code แต่ผมไม่เข้าใจว่าทำไมมันถึงมีแค่ 3 digit เองหรอครับทั้งๆ ที่ใน ฟิวส์ type ผมก็มี 4 digit รบกวนผู้รู้ด้วยครับ

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

1 @R12459
ลองดูคำตอบที่ #9 ว่าพอช่วยได้หรือไม่

http://www.accessforums.net/showthread.php/2398-Can-I-keep-a-records-leading-and-trailing-SPACES-Access-2003-and-2007
2 @R12461
เป็นวิธีที่คิดไม่ถึงเลยครับ ลองดูแล้วใช้ได้เลยครับ ขอบคุณด้วยคนครับ
3 @R12462
ใครก็ได้ช่วยแกะ คำตอบที่ 9 ให้หน่อยนะครับ ผมมือใหม่อะครับ ไม่ค่อยเข้าใจเท่าไหร่
4 @R12463
โดยปกติ การที่ข้อมูลมีวรรคตามหลังหรือ Line Feed (chr(10))หรือ Carriage Return (chr(13)) (คือการขึ้นบรรทัดใหม่) โดยไม่มีข้อความอะไร MS Access จะตัดทิ้งไปเมื่อเซฟลงฟิลด์ตาราง
ดังนั้นหากคุณต้องการเซฟ วรรค ลงฟิลด์ในตาราง ให้ใช้วิธีดังนี้
- เขียนคำสั่งบนฟอร์ม ใน Control ที่ต้องการ Event > After Update
- ตัวอย่าง Control ชื่อ Text0
Me.Text0.Value = Me.Text0.text

จากเดิมหากคุณใส่เป็น "APP " จะเซฟที่ฟิลด์เป็น "APP"
หากใช้คำสั่งตามคำตอบที่ 9 จะเซฟที่ฟิลด์เป็น "APP "

คำตอบที่ 9 เป็นเทคนิคการเซฟให้ได้ค่าวรรคตามหลังมาด้วยครับ ส่วนคุณจะเอาไปทำอะไรต่อนั้น ข้อมูลในฟิลด์มันก็จะเป็น 4 digit ตามที่คุณต้องการแล้วครับ
5 @R12466
รบกวนคุณ TTT ด้วยครับแล้วผมต้องใช้ข้อมูลตัวไหนแทนตัว Text0 หรอครับไม่ค่อยเก่งเขียนโค๊ดด้วยรบกวนหน่อยครับ ต้องดึงชื่อฟิวส์หรือชื่อตารางตัวไหนหรอครับรบกวนนำข้อมูลของผมมาเขียนให้ดูหน่อยครับ
6 @R12468
หลักการก็คือคุณทำเหมือนเดิมที่คุณมีปัญหาทุกอย่าง เพียงแต่ ใน Combo box ที่คุณจะให้เลือก เพื่อจะให้นำค่าที่เลือกไปบันทึกใน Table ที่ชื่อว่า call ฟิลด์ชื่อ action_code ใน Event > After Update ของ Combo box นั้น ให้ใช้คำสั่ง เช่น
Me.ชื่อ Combo box.value = Me.ชื่อฟิลด์ของ(action_code).text
เท่านั้นเองครับ

คุณแน่ใจนะครับว่าค่าใน table ชื่อ type_job ฟิลด์ type ของคุณเก็บข้อมูลค่าว่างไว้ด้วยจริงๆ ถ้าได้จริงค่าที่คุณจะบันทึกลง action_code ก็จะเป็น 4 digit เหมือนที่คุณต้องการครับ

แนะนำหน่อยนะครับ ให้หาหนังสือเกี่ยวกับ Access ที่มีเรื่องของการเขียน VBA เบื้องต้นศึกษาดูก่อนจะดีมากครับ ผมเองก็อธิบายไม่ค่อยเก่งเท่าไร ใช้คำที่รวบลัดได้ใจความเลยมันยากอ่ะครับ เพราะถ้าคุณศึกษาพื้นฐานมาพอสมควรแล้ว จะเห็นว่าคำสั่งนี้ตรงไปตรงมาเลยครับ ไม่มีประเด็นอะไรเลย แต่ถ้าจะให้อธิบายก็ยินดี แต่ออกตัวก่อนว่า ผมอธิบายมากๆ อาจทำให้คุณยิ่ง งง ได้นะครับ 555
7 @R12470
แก้ไขนะครับ พอดีเอะใจในเรื่องของ .value กับ .text จะใช้ต่างฟิลด์กันได้หรือ เลยทดสอบดู
สรุปว่ามันจะใช้ได้กับฟิลด์ที่เป็นฟิลด์เดียวกันเท่านั้น ที่อธิบายไปเลยผิดครับ
และได้คำถามในคำตอบว่า หากคุณเก็บข้อมูลในตารางเป็น "APP " ที่มีค่าวรรคต่อท้ายได้จริง การบันทึกใส่ฟิลด์อื่นให้เป็นค่าเหมือนในฟิลด์ "APP " จะทำได้ไม่มีปัญหาเลย แต่ปัญหาของคุณแสดงว่าค่า "APP " ที่คุณอ้างว่าเก็บเป็น 4 digit ได้นั้น อาจไม่ได้จริง คุณลองตรวจสอบดูในตารางที่อ้างว่าเก็บ ตัวอักษร 3 ตัวและค่าว่างต่อท้ายอีก 1 รวมเป็น 4 digit จริงหรือไม่ ซึ่งผมเดาว่าค่าว่างคงถูกตัดทิ้งไปเช่นกัน หากเป็นเช่นนั้นจริง คุณก็ใช้คำสั่ง
Me.Text0.Value = Me.Text0.text
โดย Text0 คือ Control ที่คุณสร้างขึ้นแล้วดึงข้อมูลในฟิลด์ Type จากตาราง
type_job ขึ้นมาเพื่อเซฟใหม่ โดยใช้คำสั่งบนฟอร์มข้างต้น ก็จะได้เทคนิคบันทึกค่าวรรคลงไปด้วย
โดยอาจสร้างฟอร์มเปล่าๆขึ้นมาเพื่อใช้เฉพาะกิจก็ได้
ซึ่งหลักการแล้ว หากสามารถจัดเก็บค่าวรรคต่อท้ายลงในตารางได้จริงๆแล้ว เราสามารถบันทึกค่าในฟิลด์อื่นๆให้เป็นค่าตามฟิลด์ในตารางนี้ได้โดยไม่ต้องใช้คำสั่งพิเศษใดๆเลย ประเด็นอยู่ตรงที่คุณสามารถบันทึกค่าวรรคในตารางได้จริงเท่านั้น
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.2878s