0

我正在尝试编写一个 QTP 脚本,其工作方式如下 * 从表中获取一列检查它是否为空,如果是,则在变量中添加该列名。

稍后,该列名将用于向用户显示所有此类字段均留空。像这样的东西:

Set rsRecordset1 = dbConnection.Execute("select formcd,sndrpstlcd,recppstlcd,sndrcntrycd, from test_data where trk in ('"&tin&"')")

If rsRecordset1.EOF = false Then
Blank_field="blank_fields->"

formcd = rsRecordset1("formcd").value
typcd="formcd"
Call validatenull (typcd,Blank_field)
packaging = rsRecordset1("packaging").value
typcd="packaging"
Call validatenull (typcd,Blank_field)
......

Public function validatenull (typcd,Blank_field)
   If (isnull(typcd) )Then
    Blank_field = Blank_field & " " & typcd &", "
   End If
End Function

blank_Field 的值应将值捕获为“blank_fields->Form_id,packaging(考虑到 Form_id,Packaging 传递 Null 值){它不应该将非 Null 的值添加到 blank_fields}

用更简单的话

ss = Null
call nnn(ss)
Public function nnn(ss)
    If isnull(ss) Then
        msgbox("yes")
    End If
End Function

有 msgbox 未填充的错误但是,

ss= Null 
nnn(ss) 
If isnull(ss) Then 
    msgbox("yes") 
End If 

将 Msgbox 填充为 Yes 但我希望案例 1 能够正常工作,并且我不想在函数名称中添加更多变量。

如果通过制作数组我们可以做到,请建议。

4

1 回答 1

1

看来您的函数工作正常,但您传递了错误的值。从您的代码段:

formcd = rsRecordset1("formcd").value
typcd="formcd"
Call validatenull (typcd,Blank_field)

当您调用“validatenull”时,您正在传递变量“typecd”。在上一行中,您使用字符串填充此变量,因此它永远不会为空。看来您打算传递的是变量“formcd”。您对“validatenull”的第二次调用执行相同的操作。这是您修改为使用其他变量的第一个调用。

formcd = rsRecordset1("formcd").value
typcd="formcd"
Call validatenull (formcd,Blank_field)
于 2014-06-14T11:54:10.930 回答