设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: letmec
打印 上一主题 下一主题

[Access本身] 如何将不同表的相同字段相加

[复制链接]
11#
发表于 2012-1-17 22:29:54 | 只看该作者
letmec 发表于 2012-1-17 18:25
这里只是个简单例子,实际操作中,表更大更复杂.
非常感谢版主的解惑,另外我请教下:

Nz 函数
请参阅 特性
当一个 Variant 为 Null 时,使用 Nz 函数可以返回 0、零长度字符串 (" ") 或其他指定值。例如,可以使用该函数将 Null 值转换为其他值并防止它通过表达式扩散。

Nz(variant, [valueifnull])

Nz 函数具有以下参数:

参数 说明
variant 数据类型为 Variant 的变量。
Valueifnull 可选参数(除非在查询中使用)。一个 Variant,提供当 variant 参数为 Null 时的返回值。该参数使您能够返回一个除 0 或零长度字符串以外的其他值。
注意   如果在查询的表达式中使用不带 ValueIfNull 参数的 Nz 函数,则对包含空值的字段,其返回结果为零长度字符串。



如果 variant 参数的值为 Null,Nz 函数将返回零或零长度字符串(当用在查询表达式中时,总是返回零长度字符串),这取决于上下文表明该值是数值还是字符串。如果包含了可选 valueifnull 参数,则当 variant 参数为 Null 时,Nz 函数将返回由该参数指定的值。当在查询表达式中使用时,NZ 函数总是包含 valueifnull 参数。

如果 variant 的值不为 Null,则 Nz 函数返回 variant 的值。

说明
Nz 函数对可能包含 Null 值的表达式是很有用的。要使表达式即使在包含 Null 值时也能计算得到一个非 Null 值,可使用 Nz 函数来返回 0、零长度字符串或一个自定义的返回值。

例如,表达式 2 + varX 在 Variant varX 为 Null 时总是返回 Null 值。而 2 + Nz(varX) 却返回 2。

可以经常使用 Nz 函数作为 IIf 函数的替代函数。例如,在下面的代码中,需要用两个包含 IIf 函数的表达式来返回所需的结果。第一个包含 IIf 函数的表达式用于检查变量的值,并且如果该值为 Null,则将其转换为零。

varTemp = IIf(IsNull(varFreight), 0, varFreight)
varResult = IIf(varTemp > 50, "High", "Low")
在下一个示例中,Nz 函数提供与第一个表达式相同的功能,并且一步即可获得所需的值而不需要分两步进行。

varResult = IIf(Nz(varFreight) > 50, "High", "Low")
如果为可选参数 valueifnul 提供了一个值,则当 variant 为 Null 时,将返回该值。通过包含该可选参数,可以避免使用含有 IIf 函数的表达式。例如,下面的表达式使用 IIf 函数,在 varFreight 的值为 Null 时返回一个字符串。

varResult = IIf(IsNull(varFreight), "No Freight Charge", varFreight)
在下一个示例中,为 Nz 函数提供的可选参数提供在 varFreight 为 Null 时返回的字符串。

varResult = Nz(varFreight, "No Freight Charge")
示例
下面的示例对窗体上的一个控件进行计算,并根据控件值返回两个字符串之一。如果控件值为 Null,过程就会使用 Nz 函数将 Null 值转换为零长度字符串。

Public Sub CheckValue()

    Dim frm As Form
    Dim ctl As Control
    Dim varResult As Variant

    ' Return Form object variable pointing to Orders form.
    Set frm = Forms!Orders

    ' Return Control object variable pointing to ShipRegion.
    Set ctl = frm!ShipRegion

    ' Choose result based on value of control.
    varResult = IIf(Nz(ctl.Value) = vbNullString, _
        "No value.", "Value is " & ctl.Value & ".")

    ' Display result.
    MsgBox varResult, vbExclamation

End Sub
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-9-21 15:45 , Processed in 0.079299 second(s), 23 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表