具有2个参数和嵌套的函数

时间:2016-06-26 18:06:20

标签: vba ms-access access

包含3000条记录和21个列字段的表

我需要使用2列字段(Field2和Field3)循环记录,其中有一个空值来生成一个新列字段(Field4) 我开始使用下面的这个函数但是因为case select不能接受null而被卡住了 - 或者我可能需要使用我不擅长的嵌套iifs。

SampleTable

Name(Field1)  Parts(Field2)   Categories(Field3)  New Field(Field4)
1              A1              R1                 Inventory
2              A1              Null               Inventory
3              B1              R1                 Processing
4              B1              R4                 Processing
5              B1              Null               Unknown 
6              Null            Null               Unknown

我的功能:

Function MachineCheck(Field2, Field3) As String

Dim newValue As String

Select Case (Field2)
     Case "A1":
        Select Case (Field3)
            Case "R1"
                newValue = "Inventory"
            Case Is null
                newValue = "Inventory"
            Case "R1"
                newValue = "Inventory"
            Case “ “
                newValue = "Inventory"

       Select Case (Field2)
         Case “B1”
End Select

MachineCheck = newValue
End Function

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我建议用这种方式写查询:

SELECT Field1 AS [Name], Field2 AS Parts, Field3 AS Categories, 
      SWITCH( Trim(Field3) & Trim(Field4) = "A1", "Inventory",
              Trim(Field3) & Trim(Field4) = "A1R1", "Inventory", 
              Trim(Field3) & Trim(Field4) = "B1", "Unknown",
              Trim(Field3) & Trim(Field4) = "B1R1", "Processing",
              Trim(Field3) & Trim(Field4) = "", "Unknown") As [Status]
FROM YourTable;

有关详细信息,请参阅:What is the equivalent of Select Case in Access SQL?