出现无效使用NULL以后如何解决??

cnqdcc 2004-08-22 11:58:39
我编写了一个简单的打印程序,可以把在excel中输入好的数据导入进来,但是现在的问题是,如果在excel填写数据的时候有一些内容没有填写的话,导入的过程中就会报错“无效使用NULL”请问我该如何解决这种问题,我想实现遇到NULl则该数据自导入后自动转换为零,并且程序能指出哪一条数据的哪一个字段为NULL。请问各位大虾们能不能实现啊
...全文
1028 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
南山明月 2004-09-07
  • 打赏
  • 举报
回复
iif(IsNull(rs2.Fields(6)),"",rs2.Fields(6).value)
iif 函数三个参数IIf(表达式,满足表达式时的值,不满足表达式时的值)
例:iif(3>2,"对","错了3小于2")
南山明月 2004-09-07
  • 打赏
  • 举报
回复
最好的就是用 ISNull来判断了
空值的会 出错
isNull 返回的是一个是否为空的 布尔值 你 可以 用 NOT ISNULL 去执行想执行语句
如:

iif(isnull(rs.fileds("时间")),"为空",rs.fileds("时间") )
pancult 2004-08-26
  • 打赏
  • 举报
回复
最简单就是用 ISNull来判断了
因为控件是不允许赋空值的,所以 会 出错
isNull 返回的是一个是否为空的 布尔值 你 可以 用 NOT ISNULL 去执行想执行语句
如:
if not isnull(rs.fileds("时间")) then
'写要执行的语句
end if

wumylove1234 2004-08-26
  • 打赏
  • 举报
回复
像使用其它的标准函数一样啊.
传个参数进去就可以了.
啊呀 2004-08-26
  • 打赏
  • 举报
回复
IsNull 函数


返回 Boolean 值,指出表达式是否不包含任何有效数据 (Null)。

语法

IsNull(expression)

必要的 expression 参数是一个 Variant,其中包含数值表达式或字符串表达式。

说明

如果 expression 为 Null,则 IsNull 返回 True;否则 IsNull 返回 False。如果 expression 由多个变量组成,则表达式的任何作为变量组成成分的 Null 都会使整个表达式返回 True。

Null 值指出 Variant 不包含有效数据。Null 与 Empty 不同,后者指出变量尚未初始化。Null 与长度为零的字符串 (““) 也不同,长度为零的字符串指的是空串。

重要 使用 IsNull 函数是为了确定表达式是否包含 Null 值的。在某些情况下,希望表达式取值为 True,比如希望 If Var = Null 和 If Var <> Null 取值为 True,而它们总取值为 False。这是因为任何包含 Null 的表达式本身就是 Null,所以为 False。
myhwlj 2004-08-26
  • 打赏
  • 举报
回复
你给的这个函数怎么用啊。
wumylove1234 2004-08-25
  • 打赏
  • 举报
回复
给你一个简单的函数.
Public Function checkNull(S As Variant) As String
checkNull = IIf(IsNull(S), "", S)
End Function

用我这个函数.我全用的这个.
wumylove1234 2004-08-25
  • 打赏
  • 举报
回复
rsa.Open sqla, cn, 1, 1
这里面的sqla,cn,1,1分别是什么意思呀

Sqla:查询语句
Cn:可用的连接
1:游标类型
1:锁类型
cqm2099 2004-08-25
  • 打赏
  • 举报
回复
上面都不错,,加个判断。。
libingao 2004-08-24
  • 打赏
  • 举报
回复
rsa.Open sqla, cn, 1, 1
这里面的sqla,cn,1,1分别是:相应的 SQL 查询语句、连接数据库的字符串或者连接对象、游标和锁类型。

连接数据库的字符串例如:
.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=True; Initial Catalog=[数据库名];Data Source=[服务器名]; User ID=sa;Password=;" '基于 用户名和密码的访问
'.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;Initial Catalog=[数据库名];Data Source=[服务器名]; Integrated Security=SSPI;" '基于 windows 集成的安全访问
'.ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0;Data source =" + [Access97、Access2000 数据库路径及名称] + " ;Persist Security Info=False;Jet OLEDB:Database Password=" + [数据库密码] '访问 Access 数据库


游标类型:CursorType
0=>adOpenForwardOnly 用於打開僅支持前向流動的Recordset
1=>adOpenKeyset 支持向前向後流動,其它用戶所做的改動不可見
2=>adOpenDynamic 支持向前向後流動,其它用戶的修改和刪除可見
3=>adOpenStatic 支持向前向後流動,其它用戶的修改、刪除和插入改動可見

对于以上 3=>adOpenStatic 是客户机方游标,即是客户机方记录集支持的唯一游标类型;
1=>adOpenKeyset 和 2=>adOpenDynamic 只适用于服务器方的游标 ;
0=>adOpenForwardOnly 是不显式指定时缺胜的有标类型。

锁 类型:LockType
1=>adLockReadOnly 不允许进行编辑
2=>adLockPessimistic 编辑进行时锁定纪录
3=>adLockOptimistic 只在調用 Update 方法时锁定纪录
4=>adLockBatchOptimistic 用于批处理更新,先对记录集进行改变,然后在調用UpDateBatch方法将其实现到数据库中

cnqdcc 2004-08-24
  • 打赏
  • 举报
回复
rsa.Open sqla, cn, 1, 1
这里面的sqla,cn,1,1分别是什么意思呀
饮水需思源 2004-08-23
  • 打赏
  • 举报
回复
rsa.Open sqla, cn, 1, 1
if rsa.recordcount>0 then
a = rsa![tnb] & ""
b = rsa![qca] & ""
End If
chenyu5188 2004-08-23
  • 打赏
  • 举报
回复
同上
libiyang 2004-08-23
  • 打赏
  • 举报
回复
加上 & "" 就行了
cwm545 2004-08-23
  • 打赏
  • 举报
回复
在每次打开数据库时,加个判断:
rsa.Open sqla, cn, 1, 1
If IsNull(rsa![tnb]) Then
a = 0
b = 0
Else
a = rsa![tnb]
b = rsa![qca]
End If
wumylove1234 2004-08-23
  • 打赏
  • 举报
回复
给你一个简单的函数.
Public Function checkNull(S As Variant) As String
checkNull = IIf(IsNull(S), "", S)
End Function
RUKYO 2004-08-23
  • 打赏
  • 举报
回复
哪里不懂?
cnqdcc 2004-08-23
  • 打赏
  • 举报
回复
唔唔唔,能解释一下吗???我看不懂

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧