如题,下面是小第的程序,vb调用数据库sql.
         Adodc1.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=tedesign" 
             sql_flc = "select * from m_user"
               Set myrs_flc = myconn.Execute(sql_flc) '打开并调用  数据库
                        
                  Do While Not myrs_flc.EOF
                      If myrs_flc.Fields("型号") = Combxh_zpt.Text Then
                          For i = 0 To myrs_flc.Fields.Count - 1
                            If myrs_flc.Fields(i).Value = Null Then  '为什么符合该条件还是跳过了呢? 
不执行下一条语句?
                                               myrs_flc.Fields(i).Value = "空值"
                                                End If
                                                Next i
                                  End If
                             myrs_flc.MoveNext
                            
                         Loop
                         
                        myrs_flc.Close   在程序运行时,为什么符号该条件还是跳过了呢?也就是null的值不能被赋予“空值”。   

解决方案 »

  1.   

    myrs_flc.Fields(i).Value = Null 你可以这么写
    1,isnull(myrs_flc.Fields(i).Value)
    2,0=Len(myrs_flc.Fields(i).Value & "" )
    ……
      

  2.   

    还有很多方法
    我记得在一个地方看到过有人用typename函数TypeName 所返回的字符串可以是下面列举的任何一个字符串:返回字符串 变量 
    对象类型 类型为 objecttype 的对象 
    Byte 位值 
    Integer 整数 
    Long 长整数 
    Single 单精度浮点数 
    Double 双精度浮点数 
    Currency 货币 
    Decimal 十进制值 
    Date 日期 
    String 字符串 
    布尔 布尔值 
    Error 错误值 
    Empty 未初始化 
    Null 无效数据 
    Object 对象 
    Unknown 类型未知的对象 
    Nothing 不再引用对象的对象变量 
      

  3.   

    谢谢你的回答,用isnull函数。非常感谢。
    同时我程序里上面的那句Set myrs_flc = myconn.Execute(sql_flc)应该改为:myrs_flc.Open "select * from m_user", myconn, adOpenKeyset, adLockOptimistic
    这样才不会出错。呵呵,谢谢你啦