กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
399 1
URL.หัวข้อ /
URL
การอัพเดตรข้อมูลใน table ของ Access
การอัพเดตรข้อมูลใน table ของ Access ในกรณีที่เราใช้แบบสอบถาม (ไม่แน่ใจว่าเป็น Query หรือเปล่าครับ คือ Tab ที่สองครับ) สมมติว่าผมมี Table ชื่อ Name ภายใน Table นี้ประกอบไปด้วย
Name_ID จะเก็บ รหัสคนนี้
Name จะเก็บ ชื่อคนนี้
แล้วผมต้องการที่จะ Update ข้อมูลโดยให้เช็คว่าคนที่ Name_ID มีขนาดความยาวของฟิลด์เท่ากับ 10 ตัวอักษร ให้ทำการเปลี่ยน Format เป็น "####-###-###" ผมไม่ทราบว่าจะทำอย่างไรครับ
ยกตัวอย่างนะครับ ถ้าผมเขียนใน VB
RS.OPEN "SELECT * FROM NAME",STRCONN,1,3
WHILE NOT RS.EOF
IF LEN(RS!NAME) = 10 THEN
RS!NAME = FORMAT(RS!NAME,"####-###-###")
RS.UPDATE
END IF
RS.MOVENEXT
WEND
RS.CLOSE
แต่ถ้าผมจะเขียนใน Query ของ Access ไม่ทราบจะทำอย่างไรครับ เพราะถ้าเขียนใน VB กว่าจะวน Loop เสร็จก็ช้ามาก ๆ รบกวนผู้รู้หรืออาจารย์สุภาพ ช่วยแนะนำด้วยครับผม ... ขอบคุณครับ ...
Name_ID จะเก็บ รหัสคนนี้
Name จะเก็บ ชื่อคนนี้
แล้วผมต้องการที่จะ Update ข้อมูลโดยให้เช็คว่าคนที่ Name_ID มีขนาดความยาวของฟิลด์เท่ากับ 10 ตัวอักษร ให้ทำการเปลี่ยน Format เป็น "####-###-###" ผมไม่ทราบว่าจะทำอย่างไรครับ
ยกตัวอย่างนะครับ ถ้าผมเขียนใน VB
RS.OPEN "SELECT * FROM NAME",STRCONN,1,3
WHILE NOT RS.EOF
IF LEN(RS!NAME) = 10 THEN
RS!NAME = FORMAT(RS!NAME,"####-###-###")
RS.UPDATE
END IF
RS.MOVENEXT
WEND
RS.CLOSE
แต่ถ้าผมจะเขียนใน Query ของ Access ไม่ทราบจะทำอย่างไรครับ เพราะถ้าเขียนใน VB กว่าจะวน Loop เสร็จก็ช้ามาก ๆ รบกวนผู้รู้หรืออาจารย์สุภาพ ช่วยแนะนำด้วยครับผม ... ขอบคุณครับ ...
1 Reply in this Topic. Dispaly 1 pages and you are on page number 1
Time: 0.1331s
เนื่องจาก Format() จะช่วยจัดให้แสดงผลเท่านั้น แต่จะไม่จัดเก็บ
ผมเลยไม่แน่ใจว่าจะได้ผลหรือไม่
Update [Name] Set [Name] = FORMAT(NAME, "####-###-###")
Where Len([Name]) = 10;
:)
PS. ไม่ควรตั้งชื่อ user-defined objects เช่น ชื่อตาราง ฟีลด์ ฯลฯ ให้ตรงกับคำสงวนของ Access เช่น Name, Year, Month, Date, etc. ครับ