ช่วยเรื่อง IF ด้วยครับ
กระทู้เก่าบอร์ด อ.Yeadram

 959   5
URL.หัวข้อ / URL
ช่วยเรื่อง IF ด้วยครับ

เรียนอาจารย์และทุกๆท่านครับ

ผมต้องการ Run หมายเลขแต่ติดเงื่อนไขดังนี้ครับ

1.ต้องเช็คก่อนว่าเป็นค่าเริ่มต้นในระบบใช่หรื่อไม่ถ้าใช่

     จะได้ "IPI" & "0001" & "/" & "ปี"        ปี คือ Format(Date,"YY")

2.เช็คว่า B_NoIPI เป็นค่าว่างใช่หรือไม่(เพื่อป้องกัน Userคลิกซ้ำ)ถ้าใช่
     ให้บวก1 ที่B_NoIPI ครับ

Code ที่ผมเขียนได้

Private Sub B_NoIPI_Click()
If Me.B_NoIPI = IsNull(Me.B_NoIPI) Then
               Me.B_NoIPI = "IPI" & "0001" & "/" & "ปี"
        If Me.B_NoIPI = "" Then
                 intMax = Nz(DMax("Val(Mid(B_NoIPI,4,4))", "Qr_TwoPD2Last", "B_NoIPI"), 0)
                  Me.B_NoIPI = AA & Format(intMax + 1, "0000") & BB & "ปี"
        Else
                 MsgBox "คุณกำลังพยายามเปลี่ยนหมายเลขที่มีอยู่"

Endif
Endif
EndSub

คำถามครับ ตอนนี้มันไม่ขึ้นอะไรเลยครับ พอจะมีวิธีเขียนใหม่ หรือช่วยผมแก้ไขด้วยครับ
ขอบคุณครับ

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

1 @R16396
ผมว่าคุณ มดเอ็ด กับ คุณ พิ้ง
คุยสรุปกันก่อนว่าที่จริงเงื่อนไขขั้นตอนเป็นอย่างไรบ้าง
ทำความเข้าใจกับ code ที่มีอยู่แล้ว ซึ่งตอนนี้ก็ใกล้ถูกแล้ว
2 คนช่วยกันคิดเดี๋ยวก็ได้แล้วครับ
แย่งกันถามแบบนี้คนตอบงงครับ
2 @R16402
ขอบคุณครับ พอดีเครื่องเดียวใช้หลายคนเลยครับ
ลองคุยกันแล้วเอาเงื่อนไขเป็นแบบนี้ครับ
เอาเป็นเงื่อนไขแบบด้านบนครับ แต่ลองแล้วก็ยังงงครับ
มันไม่ได้ซะทีครับ
               ตอนแรกที่ พิ้ง เขาสอบถามมา ได้แล้วครับ
แต่พอใช้งานทดสอบเพื่อจะส่ง มันติดตรงถ้า มีเลขอยู่แล้ว
แล้วดันไปกดซ้ำที่เดิม ประมาณตัวแรก IPI0001/56 แถว2 เป็น   IPI0002/56

แต่พอเพลอกลับไปคลิกที่ตัวแรก IPI0003/56 คือต้องการไม่ให้เปลี่ยนค่าแถวที่ได้รับหมายเลขไปแล้วครับ

ขอบคุณครับ
อาจจะเข้ามาถามคำถามคล้ายๆกันหลายคน ต้องขอโทษทุกท่านไว้ ณ ที่นี้ด้วยครับ

แต่โปรเจคอาจารย์เขาเร่งจริงๆครับ   คือเป็นมือใหม่ทั้งหมดครับ
ขอรบกวนช่วยเพิ่มเงื่อนไขตรวจสอบให้ผมด้วยครับ
ขอบคุณครับ
3 @R16413
เนื่องจากไม่เข้าใจว่า B_NoiPI เป็น control ประเภทไหน และเป็น bound data หรือไม่
ก็ได้แต่เดาเอา ประมาณนี้ครับ

Private Sub B_NoIPI_Click()
    If IsNull(Me.B_NoIPI) Then
        intMax = Nz(DMax("Val(Mid(B_NoIPI,4,4))", "Qr_TwoPD2Last", "B_NoIPI"), 0)
        Me.B_NoIPI = AA & Format(intMax + 1, "0000") & BB & "ปี"
    Else
        MsgBox "คุณกำลังพยายามเปลี่ยนหมายเลขที่มีอยู่"
    Endif
EndSub
4 @R16416
ขอบคุณมากครับคุณ PichaiTC ได้เปะเลยครับ

พอจะมีทิปการคิดแปบนี้หรือไม่ครับ
ผมพยายามคิด IF หลายครั้งแต่ชอบมาหลงตรงเงื่อนไขตลอดเลยครับ
ประมาณเงื่นไข Else จะชอบหลงมากเลยครับ คือพอทั้ง2เงื่อนไขมี Else ผมก็จะไปไม่ได้ละว่า จะให้มันหลดอย่างไรในเมื่อมีเงื่อนไข Else 2 ตัว ก็เลยกลับไปคิด If ใหม่พอจะมีแนวคิดแบบไหนให้เข้าใจได้ง่ายๆ หรือเปล่าครับ
อันนี้ผมขอเป็นแนวคิดติดสมองหน่อยครับ ขอบคุณครับ
คือเคยลองทบทวน ดูมันก็ไม่น่ายากแต่ทำไม ผมคิดยังไงก็ไม่ออกครับ

ขอบคุณ PichaiTC อีกครั้งครับ


5 @R16422
หลักคิดเงื่อนไข If คือ
1. เข้าใจโจทย์ก่อน
2. ตีความเงื่อนไขออกมาเป็นข้อๆ
3. หาความสัมพันธ์ของเงื่อนไขแต่ละข้อเพื่อเพิ่มประสิทธิภาพ
4. แปลเงื่อนไขให้เป็น code

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