vb用ado连接的数据库,取的记录放在变量data_value里,值为0-3的数字,因为范围小,我就将data_value定义为byte类型的,
但是在运行中碰到错误。
因为数据库中有时候记录是不存在的,所以取到的值就为空值,放到data_value就类型不匹配,只有把data_value定义为变体的才能赋值。
只有将data_value定义为变体吗? 没有别的方法了? 谢谢
但是在运行中碰到错误。
因为数据库中有时候记录是不存在的,所以取到的值就为空值,放到data_value就类型不匹配,只有把data_value定义为变体的才能赋值。
只有将data_value定义为变体吗? 没有别的方法了? 谢谢
data_value=CByte(rs("data_value") & "")
------------------------------------------------------------
你是怎么取值的呢?上面的rs 是记录集对象,它存放的是查询得到的记录集,rs("data_value") 是取当前记录的data_value字段的值
data_value=iif(IsNull("记录")?0,CByte(Val("记录")))
Dim cn As New ADODB.Connection, rs As New ADODB.Recordset, strSql As String
cn.CursorLocation = adUseClient
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Test.mdb;User Id=admin;Password=;"
cn.Open
strSql = "select iif(IsNull(字段名),0,CByte(字段名) As 字段别名 from 表 "
Set rs = cn.Execute(strSql)
Dim data_value As Byte
If Not rs.EOF Then data_value = rs("字段名")
rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing
End Sub
---------------------------
这句改为:
If Not rs.EOF Then data_value = rs("字段别名")
我是这样赋值的