รบกวนถามเกี่ยวกับ vbOkCancle ค่ะ
กระทู้เก่าบอร์ด อ.Yeadram

 1,904   9
URL.หัวข้อ / URL
รบกวนถามเกี่ยวกับ vbOkCancle ค่ะ

รบกวนนิดนึงค่ะ
คือว่าเมื่อใส่ค่าใน textbox แล้วให้มี MsgBox เตือนค่ะ พอดีเขียนโค้ดไว้แต่มันไม่ค่อยตรงตามต้องการไม่ทราบว่า error ตรงไหนค่ะ

If wg.Value < 10 Then
    tbw = MsgBox("Â×¹Âѹ¹éÓ˹ѡµÑÇ", vbOKCancel, "Alert")
    ElseIf tbw = vbcancle Then
    wg.SetFocus
    wg = ""
    ElseIf tbw = vbOK Then
    End If
    End
ต้องการให้เลือก cancle แล้วทำการลบข้อมูลที่กรอกไปแล้วให้ curror อยู่ที่ตรงตำแหน่งเดิมเพื่อกรอกข้อมูลใหม่ค่ะ
แต่ถ้าเลือก ok ให้ผ่านไปเลยค่ะ
รบกวนด้วยนะคะ
ขอบคุณค่ะ

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

1 @R01292
If wg.Value < 10 Then
If MsgBox("XXX", vbOKCancel, "Alert") = vbCancel Then
    wg.SetFocus
    wg = ""
End If
End If
2 @R01293
ขอบคุณค่ะคุณแดนน้อย
แต่ติดนิดนึงค่ะ
คือหลังจากเลือก cancel แล้ว ข้อมูลที่กรอก clear เรียนร้อยแล้วอยากให้ curror มาอยู่ที่ตำแหน่งเดิมเพื่อกรอกข้อมูลใหม่เลยค่ะ จะได้ไม่ต้องเอาเมาส์มาclick เพื่อเอา เคอร์เซอร์มาวางค่ะ
รบกวนต่ออีกนิดนึงนะคะ
ของคุณค่ะ
3 @R01294
ตำแหน่งเดิมใม่ใช่
wg.SetFocus   หรือครับ
ถ้าอยากให้มันไปที่ไหนก็ ชื่อ CONTROL นั้น SETFOCUS
น่าจะ OK น่ะ
4 @R01296
พิมพ์ wg.SetFocus
แต่เคอร์เซอร์ไม่ไปตรงตำแหน่งเดิมค่ะ ผลคือไม่มีอะไรในตำแหน่งเดิมเลยค่ะหลังจาก clear แล้ว
ลองใช้ DoCmd.go to control "wg"
เคอร์เซอร์ก็ไม่มาค่ะ
รบกวนจริงๆค่ะ ติดตรงนี้นิดเดียวเองค่ะ
5 @R01301
มันผิดตรงที่ใช้คำสั่ง vbCancel Then หรือเปล่าครับ ไม่แน่ใจเหมือนกัน
6 @R01302
อย่างนี้ครับ...
ผมเข้าใจว่าคุณของเขียน code ชุดนี้ลงไปใน event After Update ใช่ไหมครับ
ถ้าใช่ให้ลอง 2 วิธีนี้วิธีใดวิธีนึงครับ
1. เปลี่ยนไปเขียนอยู่ใน before update แทน
โดยใช้ตามนี้
If wg.Value < 10 Then
If MsgBox("XXX", vbOKCancel, "Alert") = vbCancel Then Cancel = True
End If

2.ถ้าไม่ถูกใจลองวิธีเดิมแต่เพิ่มการ Set Focus หลอกเอา
If wg.Value < 10 Then
If MsgBox("XXX", vbOKCancel, "Alert") = vbCancel Then
    Face.setfocus
    wg.SetFocus
    wg = ""
End If
End If

Face แทนชื่อ control ของคุณอะไรก็ได้ที่จะให้ fucus มันไปพักอยู่ก่อนที่จะกลับมา
7 @R01305
    wg.SetFocus
    wg = ""
สลับคำสั่งสองบรรทัดนี้ดูครับ กรณีอยู่ในเหตุการณ์ หลังอัพเดต

ให้เป็น
wg=""
wg.setfocus
8 @R01310
เรียน อ. yeadram
ได้ลองสลับคำสั่งตามคำแนะนำแล้วค่ะ
ผลเหมือนเดิมค่ะ คือเคอร์เซอร์ไม่ขึ้นตรง wg เช่นเดิมค่ะ
9 @R01312
งง เนาะ มันจังใด๋ล่ะ ความจริงมันไม่น่าจะยากนี่นา ก็แล้ว ไม่ไป wg.setfocus
แล้วมันจะไปที่ CONTROL ตัวไหนล่ะ ก็ไม่เห็นบอกมา ลองวิธีคุณแดนหรือยัง
ลองแล้วเป็นงัย

สุดท้าย เลยถ้าไม่ได้ ไป CHECK ที่ CONTROL ที่คุณจะไปด้วย
ว่ามันปกติหรือไม่ เช่น ตั้งค่า TAB STOP ให้มันเป็น NO หริอเปล่า

ถ้าไม่ได้อีก ลบ CONTROL ที่คุณจะไป สร้างใหม่เปลี่ยนชื่อใหม่
ลองดู
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3565s