Code สำหรับแจ้งเตือนข้อมูล



0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

12 พ.ค. 63 , 13:09:56
อ่าน 298 ครั้ง

Mercury

Code สำหรับแจ้งเตือนข้อมูล
« เมื่อ: 12 พ.ค. 63 , 13:09:56 »
อยากได้โค้ดสำหรับแจ้งเตือนการคีย์สถานที่ค่ะ ถ้าพื้นที่ไหนเต็มแล้วให้เด้งแจ้งเตือนว่า "พื้นที่เต็ม"

ที่ฟิลด์ PalletIn
ถ้าพิมพ์รหัสพื้นที่ที่ขึ้นต้นด้วย AM,AN,AO,AP
เช่น AM001 ถึง AM799
และ AN001 ถึง AN799
จะเก็บสินค้าจำนวนเท่าไหร่ก็ได้ (ไม่จำกัด)

แต่ถ้าเป็นพื้นที่อื่นๆ นอกเหนือจาก AM AN AO AP จะเก็บได้จำนวน 1 พาเลท
เช่น AA001 ถึง AL799

รบกวนอาจารย์ช่วยแนะนำโค้ดสำหรับข้อมูลแบบนี้ให้หน่อยค่ะ
:dizzy:
 

12 พ.ค. 63 , 17:59:35
ตอบกลับ #1

สันติสุข

: Code สำหรับแจ้งเตือนข้อมูล
« ตอบกลับ #1 เมื่อ: 12 พ.ค. 63 , 17:59:35 »
ถ้า Aและ P คือชื่อคอนโทรลบนฟอร์มที่ป้อนรหัสพื้นที่และจำนวนพาเลทตามลำดับ  ให้ใส่โค้ดนี้ไว้ที่ BeforeUpdate event procedure ของ P

If Nz(Me![A], "") <> "" Then
    If Not (Left(Me![A], 2) Like "A[MNOP]*") Then
        If Me![P] > 1 Then
            MsgBox "พื้นที่เต็ม"
            Cancel = True
        End If
    End If
End If
ช่วยพกถุงผ้า/ถุงพลาสติกใช้แล้วไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 
โพสต์นี้ได้รับคำขอบคุณจาก: Mercury

13 พ.ค. 63 , 10:40:18
ตอบกลับ #2

Mercury

: Code สำหรับแจ้งเตือนข้อมูล
« ตอบกลับ #2 เมื่อ: 13 พ.ค. 63 , 10:40:18 »
ต้องคีย์รหัสในช่องสถานที่ค่ะ แล้วช่องจำนวนพาเลทจะคีย์จำนวนลงไปค่ะ
เช่น ช่องสถานที่คีย์ AA001 , ช่องจำนวนพาเลทคีย์ 1 พาเลท
ถ้าไม่มีของอยู่คีย์ได้ปกติ ถ้ามีของอยู่ในรหัสพื้นที่นั้น 1 พาเลทแล้วพอคีย์ไปแล้วจะแจ้งเตือนว่าเต็มค่ะ



ที่อ.หมายถึงคือวางโค้ดในช่องนี้หรือไม่คะ

ทดลองวางที่ช่องนี้แล้วแต่ขึ้น Error ค่ะ
:dizzy:
 

13 พ.ค. 63 , 15:57:22
ตอบกลับ #3

สันติสุข

: Code สำหรับแจ้งเตือนข้อมูล
« ตอบกลับ #3 เมื่อ: 13 พ.ค. 63 , 15:57:22 »
โค้ดที่ให้ไป ตรวจสอบเฉพาะจำนวนพาเลทที่กำลังป้อนในเรคอร์ดนั้นๆ แต่เท่าที่อ่านใหม่ เหมือนว่าจำนวน 1 พาเลทนั้น ต้องไปค้นเรคอร์ดอื่นๆที่ป้อนไปก่อนหน้าด้วยใช่ไหมว่าได้ป้อนจำนวนพาเลทเท่าไหร่ไปแล้ว

ถ้าใช่
1. ต้องไปค้นจากเทเบิลไหน
2. ใช้เงื่อนไขอะไร ฟิลด์อะไร เพื่อค้นจากเรคอร์ดอื่นๆบ้าง เช่น ต้องเป็นสถานที่เดียวกัน วันเดียวกัน หรือมีอะไรอย่างอื่นอีกบ้าง   หรือสถานที่เดียวกัน ไม่ว่าจะวันไหนก็ได้   หรือสถานที่เดียวกัน ไม่ว่าวันไหนก็ได้ แต่ยกเว้นวันที่กำลังป้อนอยู่นี้
3. ในสถานที่เดียวกัน วันเดียวกัน ป้อนได้เพียงเรคอร์ดเดียวหรือไม่
« แก้ไขครั้งสุดท้าย: 13 พ.ค. 63 , 16:54:13 โดย สันติสุข »
ช่วยพกถุงผ้า/ถุงพลาสติกใช้แล้วไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 
โพสต์นี้ได้รับคำขอบคุณจาก: Mercury

14 พ.ค. 63 , 12:23:05
ตอบกลับ #4

Mercury

: Code สำหรับแจ้งเตือนข้อมูล
« ตอบกลับ #4 เมื่อ: 14 พ.ค. 63 , 12:23:05 »
ใช่ค่ะ

1. จาก Query "ผลรวมแต่ละLot" ค่ะ คือในคิวรี่นี้จะคำนวณแล้วว่าตอนนี้แต่ละสถานที่มีสินค้าคงเหลือกี่พาเลท
2. แค่เป็นสถานที่เดียวกันค่ะ ไม่มีเงื่อนไขอื่น เช่นถ้าค้นเจอว่าตัวที่กำลังป้อนนั้นมีถูกเก็บในสถานที่นั้น 1 พาเลทแล้ว ก็ให้แจ้งเตือนค่ะ
3. มีกรณีที่วันเดียวกันสามารถป้อนได้มากกว่า 1 Record คือในวันนั้นรับสินค้า X เข้ามา => จ่ายออก => แล้วมีการรับเข้ามาอีกครั้งภายในวันเดียวกันค่ะ
:dizzy:
 

14 พ.ค. 63 , 13:45:29
ตอบกลับ #5

สันติสุข

: Code สำหรับแจ้งเตือนข้อมูล
« ตอบกลับ #5 เมื่อ: 14 พ.ค. 63 , 13:45:29 »
เท่าที่ดูคิวรี่นั้นจากคำถามก่อนๆที่มีใส่ไฟล์ฐานข้อมูลเอาไว้ พอไล่ไป สุดท้ายแล้วก็คือผลรวมของพาเลทเข้า-พาเลทออกจากเทเบิล In และ Out ผมเลยเขียนโค้ดโดยหาจากเทเบิลโดยตรงแทนนะครับ

If Nz(Me![A], "") <> "" Then
    If Not (Left(Me![A], 2) Like "A[MNOP]*") Then
        If Nz(DSum("InPallet", "In", "Place = '" & Me![A] & "'"), 0) _
        - Nz(DSum("OutPallet", "Out", "Place = '" & Me![A] & "'"), 0) >= 1 Then
            MsgBox "พื้นที่เต็ม"
            Cancel = True
        End If
    End If
End If
ช่วยพกถุงผ้า/ถุงพลาสติกใช้แล้วไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 
โพสต์นี้ได้รับคำขอบคุณจาก: Mercury

14 พ.ค. 63 , 17:07:10
ตอบกลับ #6

Mercury

: Code สำหรับแจ้งเตือนข้อมูล
« ตอบกลับ #6 เมื่อ: 14 พ.ค. 63 , 17:07:10 »
วางโค้ดในช่องนี้ถูกมั้ยคะ



มันขึ้นแจ้งเตือนแบบนี้ต้องแก้ยังไงคะ


:dizzy:
 

14 พ.ค. 63 , 17:24:35
ตอบกลับ #7

สันติสุข

: Code สำหรับแจ้งเตือนข้อมูล
« ตอบกลับ #7 เมื่อ: 14 พ.ค. 63 , 17:24:35 »
ตามภาพในคำตอบ#2 ในช่อง Before Update ให้เลือก [Event Procedure] แล้วคลิกปุ่ม ... ที่ท้ายช่อง มันจะเปิดหน้าต่างสำหรับให้เขียนโค้ดภายใต้กรอบ BeforeUpdate Event Procedure

และขอเพิ่มเติมให้เขียนโค้ดใน After Update event procedure ของคอนโทรลที่เลือกพื้นที่ ให้ใส่โค้ด Me![A] = NULL หรือถ้าเกิด error ก็ให้เปลี่ยนจาก NULL เป็น "" (Double Quote 2 ตัวติดกัน) ด้วยครับ
ช่วยพกถุงผ้า/ถุงพลาสติกใช้แล้วไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 


บอร์ดเรียนรู้ Access สำหรับคนไทย