Office中国论坛/Access中国论坛

标题: 的自定义函数的问题,请高人指点下 谢谢 [打印本页]

作者: olderdream2007@    时间: 2013-1-26 12:08
标题: 的自定义函数的问题,请高人指点下 谢谢
access中想用下面的自定义函数把 错误值转换为0   却不成功。请高人看看 指点下。谢谢!)

[attach]51205[/attach]



Public Function delete_err(ma)
If IsNumeric(ma) = False Then
    delete_err = 0
   Else
    delete_err = ma
End If
End Function
作者: Henry D. Sy    时间: 2013-1-26 13:05
  1. Public Function delete_err(m As Long, a As Currency) As Currency
  2.     If a = 0 Then
  3.         delete_err = 0
  4.     Else
  5.         delete_err = Nz(m) / a
  6.     End If
  7. End Function
复制代码

作者: Henry D. Sy    时间: 2013-1-26 13:07
搞不懂你为什么要自定义函数,而且,金额=数量/单价(怎么回事)

如果要求金额,直接做个查询就行了。
  1. SELECT 表1.ID, 表1.数量, 表1.单价, [数量]*[单价] AS 金额
  2. FROM 表1;
复制代码

作者: olderdream2007@    时间: 2013-1-26 13:59
谢谢版主的指点,查询我是会的  只是想学习VBA  所以举了个例子  不过违法常规逻辑了  谢谢。

应为想模拟EXCEL的  ISERROR 函数对计算结果判断是否错误 之后用IF函数返回值


看来ACCESS不能搬用这个思路  谢谢
作者: roych    时间: 2013-1-27 11:49
olderdream2007@ 发表于 2013-1-26 13:59
谢谢版主的指点,查询我是会的  只是想学习VBA  所以举了个例子  不过违法常规逻辑了  谢谢。

应为想模拟 ...

用IIF来做查询就好了:
  1. 01.SELECT 表1.ID, 表1.数量,单价, IIF(ISNUll(表1.数量),0,表1.数量), * IIF(ISNUll(表1.单价),0,表1.单价),  AS 金额
  2. 02.FROM 表1;
复制代码
当然,Nz([表1.数量],0)=IIF(ISNUll(表1.数量),0,表1.数量)。不过楼主想用类似于If的公式嘛,所以这里就用IIF来实现。
作者: olderdream2007@    时间: 2013-1-27 12:37
roych 发表于 2013-1-27 11:49
用IIF来做查询就好了:当然,Nz([表1.数量],0)=IIF(ISNUll(表1.数量),0,表1.数量)。不过楼主想用类似于If ...

谢谢版主的指点  我消化消化 呵呵  不懂再来请教各位高人




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3