ขอความช่วยเหลือด้วยค่ะ
กระทู้เก่าบอร์ด อ.Yeadram

 647   2
URL.หัวข้อ / URL
ขอความช่วยเหลือด้วยค่ะ

จะให้มัน process คือ
ถ้า seller_type เป็น 1 ก็ให้แสดงค่าเป็น 0
ถ้า seller_type เป็น 2 และ price น้อยกว่าหรือเท่ากับ 500 ก็ให้เป็น 0 ถ้าไม่ใช่ก็ให้ price*.01
และถ้า seller_type เป็น 3 และ price น้อยกว่าหรือเท่ากับ 10000 ก็ให้เป็น 0 ถ้าไม่ใช่ก็ให้ price*.01

โดยกำหนดสูตรแบบนี้ด้านล่างนี้ค่ะ
vat 1%: IIf([seller_type] Is Null," ",IIf([seller_type]=1,0,IIf([seller_type]=2 & [price]<=500,0,IIf([seller_type]=3 & [price]<=10000,0,[price]*.01))))

ผลที่ได้คือ มันเป็น 0 หมดเลย ทำไงดีคะ

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

1 @R24154
การใช้ IIF ซ้อนกันหลายชั้นมันทำให้วุ่นวายและผิดพลาดง่ายมากครับ

ผมแนะนำว่าเป็น VBA สะดวกกว่าครับ

วิธีการคือ
1. สร้าง Function ขึ้นมา 1 ฟังก์ชั่น เอาไว้ที่ Module ตามนี้ครับ
Function myVAT(Seller As Integer, Price As Double)

    Select Case Seller
        Case 1
            myVAT = 0
        Case 2
            If Price <= 500 Then
               myVAT = 0
            Else
               myVAT = Price * 0.01
            End If
        Case 3
            If Price <= 10000 Then
               myVAT = 0
            Else
               myVAT = Price * 0.01
            End If
        Case Else
            myVAT = ""
    End Select
End Function

2. ที่ Query ก็แก้ไขเป็น vat 1%: myVAT([Seller_Type],[Price])

เพียงเท่านี้ก็ได้สิ่งที่ต้องการครับ
2 @R24156
การใช้ และ ใน Access หรือ VBA ใช้เครื่องหมาย & ไม่ได้ครับ เครื่องหมาย & ใน Access หมายถึงการเชื่อมตัวแปรเข้าด้วยกันแบบ Text ครับ เช่น 1 & 2 จะได้ 12 เป็นต้น

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