文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院办公软件Access避免SQL Server和Access的空值冲突
精品推荐
特别推荐
·帮你防止Access数据库被下载的九种方法
·几种修复ACCESS数据库的实用方法
·两个未被公开Access数据库方法使用技巧
·整理:防止Access数据库被下载的9种方法
·Access中利用拆分后端数据库保存不同数据
·有关ACCESS的数据库安全问题解答
·保护Access 2000数据库的安全方法
·Excel和Access间复制、导入和导出数据
·保护Access 2000数据库的安全
·Microsoft Access技巧及陷阱讲解
·更改Excel数据导入源文件的快捷方法
·在 Access 中使用“存储过程”
热点TOP10
·网站选SQL Server还是Access当后台数据库好?
·在Access数据库中使用SQL Server语句
·ACCESS如何打印窗体中当前显示的记录
·帮你防止Access数据库被下载的九种方法
·安全的Microsoft的ACCESS数据库加密方法
·几种修复ACCESS数据库的实用方法
·把Access转成SQL数据库的方法介绍
·ACCESS中如何使用SQL
·保护Access 2000数据库的安全
·整理:防止Access数据库被下载的9种方法
·如何使用制表控制器简化Access对表操作
·让select查询结果随机排序
·教你如何保证Microsoft Access的安全性
·在 Access 中使用“存储过程”
·用ASP和SQL语句动态的创建Access表
·两个未被公开Access数据库方法使用技巧
·Excel和Access间复制、导入和导出数据
·远程连接access数据库的方法
·掌握部署 Access项目的方法
·保护Access 2000数据库的安全方法

避免SQL Server和Access的空值冲突

日期:2007年7月8日 作者: 查看:[大字体 中字体 小字体]


在链接到一个SQL Server数据库的Access项目(即.adp文件)中,你平时经常使用的Access函数通常是不支持的。但大多数时候,都可换用SQL Server支持的一个Transact-SQL(T-SQL)函数。一个特例是Access的空值(Null)函数Nz和IsNull;它们的功能相似,但并不是Access和T-SQL都能支持它们。本文要讨论在什么时候以及如何使用这两个函数来处理空值。

空值的重要性

空值是完全合法的数据库录入项,它们能提供的信息可能超过你的想象。空值指明一个值是未知的,但这并不是说该值不可接受或者不存在。空值表明一个值尚未确定,而且除非确定了合适的值,否则该值将保持未知状态,也就是为一个空值。

开发者的职责是判断空值可能在什么时候出现,并针对性地处理那些值。一个方案是在数据输入时拒绝空值,从而完全回避它们。但这样一来,你的数据将完全禁止空值,所以该方案的缺点在于,在你创建一条记录时,所有数据都必须是已知的。遗憾的是,对于大多数人来说,这个方案都不现实。以医院急诊室的数据库系统为例,是不是因为数据录入员不知道一个病人的中间名,就拒绝为其创建一条记录呢?所以,对空值进行妥善处理可提供更灵活的方案,因为即使数据录入员当时不知道所有数据,也能成功地创建记录。

认识到空值无法避免之后,你的职责就是正确处理它们,确保它们不会导致错误。正确处理空值有两方面的好处:

可与用户共享有意义的信息。

可提前捕捉空值,避免空值在后续的表达式中返回错误。

Access 中的空值

Access提供大量工具来操纵空值:

Is Null——在条件表达式和SQL WHERE子句中使用Is Null。

IsNull——将IsNull用于Visual Basic for Applications(VBA)。

Nz——遇到空值时,用Nz返回除Null之外的其他值。

以上函数在本质上存在细微差异。Is Null和IsNull捕捉空值;而Nz函数处理空值。换言之,如果想返回的不是实际存储的空值,就使用Nz。例如,你可显示一个简单字符串(例如"N/A"),让用户知道数据对于当前记录来说“不可用”。另外,当空值在表达式中使用之前,你可以捕捉空值,因为空值经常会返回错误。

通过链接表或者Access项目来使用Access和SQL Server时,会产生一个问题,因为Access和SQL Server不是用相同的函数来判断空值。因此,你必须知道要使用什么函数,以及在什么时候使用。

在.mdb文件中使用Nz

大多数Access用户和开发者都熟悉Nz函数,它在遇到空值时返回除空值之外的其他值。该函数的形式如下,其中variant代表Variant数据类型,而valueifnull是一个可选参数,它负责在variant为空值时提供真正的返回值。

Nz(variant[, valueifnull])

如省略valueifnull,Nz返回值0或一个零长度字符串(""),具体由variant的数据类型决定。

图A的查询展示了如何使用Nz及其结果。该查询基于Access示例数据库Northwind中的Employees表。

避免Access和SQL Server的空值冲突

图A

两个Nz函数都返回字符串数据类型,因为Region的数据类型为Text。如图B所示,两个Nz函数都返回字符串值,而不是空值,但具体的字符串是不同的。第一个表达式返回字符串"N/A"来取代空值:

WithOptional: Nz([Region],"N/A")

通过返回一个实际的字符串或者值,可为用户提供比空值更多的信息。字符串"N/A"明确指出:当前记录没有合适的值。相反,如返回空值,那么一个空白的字段可能使不熟悉的用户产生误解。

避免Access和SQL Server的空值冲突

图B

Nz返回一个实际的值,而不是容易使人产生误解的空值.第二个表达式返回零长度的字符串来取代空值:

WithoutOptional: Nz([Region])

虽然这样为用户提供的信息较少,但却有效防止了在后续的表达式中使用空值,从而避免数据库出错。图C显示的新表达式证明了这一点。

避免Access和SQL Server的空值冲突

图C

表达式可能不能像预期的那样处理空值,两个表达式都直接或间接依赖于Region字段中的值。第一个表达式直接引用Region字段:

RegionString: IIf([Region]="","N/A",[Region])

只看表达式,你可能认为结果记录集的每个字段中都应该出现一个字符串。图D展示了实际结果,它和你设想的不符,并不是每个字段都包含一个字符串。事实上,只有在字段包含零长度字符串("")的前提下,表达式才会返回字符串"N/A"。我们知道,这些看似空白的字段包含空值,而不是零长度的字符串。但是,错误是可以理解的,也是能避免的。
[1] [2] 下一页 




上一篇:通过Oracle平台依赖性进行系统优化

下一篇:用SQL服务器内置的查询分析器寻找错误

避免SQL Server和Access的空值冲突 相关文章:
·VB+Access设计图书管理系统
·SQL server 2005安装问题汇总
·Sql server优化50法
·C#源码读取excel数据到程序中-SQL SERVER-到dataset中
·SQL Server 2005 中的分区表和索引
·SQL Server 练习题
·把Windows Server 2003配置为NAT路由器
·使用液晶显示器如何避免眼睛疲劳?
·提高查询速度:SQL Server数据库优化方案
·关闭Windows Server 2003关机事件跟踪程序
避免SQL Server和Access的空值冲突 相关软件:
·SQL Server 2000 基础系列课程视频
·Windows 2003 Server 简体中文企业版(免激活)ISO
·ACCESS数据库教程 北京大学的ACCESS教程
·Microsoft SQL Server 2005 Enterprise Edition SP1简体中文企业版
·逐步精通数据库 sql server 视频教程
·简体中文 Windows 2000 Server 培训教程
·MS SQL Server 2000 四合一
·IMail Server v7.13 无限制破解版
·Microsoft.SQL.Server.2005.简体中文开发版
·Active Server Pages & Web 数据库(PDG)

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.com All Rights Reserved. 鄂ICP备05000083号Powered by:vipcn