代码之家  ›  专栏  ›  技术社区  ›  Chuck S

Microsoft关于IIf声明或更好解决方案的问题

  •  0
  • Chuck S  · 技术社区  · 9 月前

    我正在撰写一份报告,该报告需要符合该国标准的国际地址,以便邮件到达目的地。

    一些国家希望在城市之前输入邮政编码,另一些国家不需要,有些国家有地区/州,而另一些国家则没有。

    我有这样的表达: =IIf(Eval([国家]In(“意大利”、“捷克共和国”、“阿根廷”、“奥地利”、“比利时”、“中国”)),([zip]&“&[城市]),([city]&”、“&[region]&”&[zip])

    我可能还有5-10个国家需要输入。在表达式生成器中,有没有更好的方法来处理这个问题,比如查找或其他什么?我不知道表达式在Access中的长度是否有限制。

    感谢您的任何意见。

    它现在正在工作,但正在寻找更好的解决方案。

    1 回复  |  直到 9 月前
        1
  •  0
  •   Bart McEndree    9 月前

    考虑创建一个函数。此函数接受国家、城市、地区和邮政编码作为参数。在函数中,对Country使用SELECT CASE语句,并为每种情况返回相应的格式化字符串。

    在模块中添加

    Public Function CityZip(Optional strCountry As String="", 
                            Optional strCity As String="",
                            Optional strZip As String="",
                            Optional strRegion as String="") As String
    
      Select Case strCountry
      Case "Italy", "Czech Republic", "Argentina", "Austria", "Belgium", "China"
         CityZip = strZip & " " & strCity
      Case Else
         CityZip = strCity & " " & strRegion & " " & strZip
      End Select
    
    End Function
    

    然后,您可以将该函数用作表达式,而不是IFF

    =城市邮编([国家]、[城市]、[邮编]、[地区])

    推荐文章