如何查找记录集值是数字还是字符串?

时间:2009-06-16 05:04:28

标签: vb6

原始

使用VB6

如果rsCardEvent(4).Value = Str Then     TimOut = rsCardEvent(4)     其他     TimeOut = Left(TimOut,2)& “:”& Mid(TimOut,3,2)& “:”&对(TimOut,2)     结束如果

获取类型错误匹配错误。 如何查找记录集值是字符串或数字

我确实需要

如果编号表示打印编号,如时间格式(HH:MM:SS) 其他 打印字符串值

上述条件的编码帮助


已修改版本

我正在使用ADO.Recordset对象,并尝试在运行时确定列的数据类型。我需要在代码中以不同的方式处理列值,具体取决于其基础数据类型。如果列值是一个字符串,我想使用原样值。如果是数字,我想将该数字视为打包时间并将其转换为HH:MM:SS格式(即数字120537将转换为字符串"12:05:37")。

下面是一些示例代码,演示了我想要实现的目标。但是,当我运行此代码时,出现“类型不匹配”错误:

If rsCardEvent(4).Value = Str Then
   TimOut = rsCardEvent(4)
Else
   TimeOut = Left(TimOut, 2) & ":" & Mid(TimOut, 3, 2) & ":" & Right(TimOut, 2)
End If

4 个答案:

答案 0 :(得分:1)

查看Visual Basic 6 function library。有些函数可以帮助您确定值的基础类型。

有很多,但你可能会发现这些有用:

答案 1 :(得分:1)

根据this article,如果rsCardEvent是ADO记录集,则可以检查Type属性。像这样:

    Select Case rsCardEvent(4).Type
        Case adBSTR, adChar, adVarChar, adWChar, _
           adVarWChar, adLongVarChar, adLongVarWChar
            ' It is a string '
        Case Else
            ' It is not a string '
    End Select

答案 2 :(得分:0)

您可以使用VB6中提供的IsNumeric功能。

答案 3 :(得分:0)

怎么样:

If TypeName(rsCardEvent(4).Value) = "String" then

http://msdn.microsoft.com/en-us/library/5422sfdf.aspx