我需要弄清楚如何重写vb6的以下代码,以便我的应用程序允许任何内容都不会传递到textbox.text.text value
Function GetDbValue(ByVal tb)
If tb.Text = "" Then
Return Nothing
Else
Return tb.Text
End If
End Function
im收到"返回"的语法错误
编辑:
存储的proc
Set prm = cmdDlrID.CreateParameter("@ContractNumberField", adVarChar, adParamInput, 50, GetDbValue(txtContNum))
cmdDlrID.Parameters.Append prm
在VB6中,至少有四种不同类型的零类:
-
Nothing
,作为对象的空指针 -
vbNullString
,作为字符串的空指针 -
Empty
,一个非专业的变体 -
Null
,传递到数据库的零值
如果您将功能传递到ADO参数中,则需要Null
,而不是Nothing
:
Function GetDbValue(ByVal tb)
If tb.Text = "" Then
GetDbValue = Null
Else
GetDbValue = tb.Text
End If
End Function
尝试这样的尝试(未经测试):
Function GetDbValue(ByVal tb)
If tb.Text = "" Then
Set GetDbValue = Nothing
Else
GetDbValue = tb.Text
End If
End Function
iirc,您不使用 Return
关键字返回vb6/vba中的函数值,而是将返回值分配给函数的名称。
如果我记得正确返回VB6中的值,则将函数设置为等于该值
因此您的代码看起来像这样。
Function GetDbValue(ByVal tb as TextBox) as String
If tb.Text = "" Then
GetDbValue = Nothing
Else
GetDbValue = tb.Text
End If
End Function
可以在此处找到有关子例程和功能的简短教程