很简单,我需要弄清楚如何为VB6重写以下代码,以便我的应用程序不允许将任何内容传递给textbox.text值
Function GetDbValue(ByVal tb)
If tb.Text = "" Then
Return Nothing
Else
Return tb.Text
End If
End Function
我收到“什么都不返回”的语法错误
编辑:
存储过程
Set prm = cmdDlrID.CreateParameter("@ContractNumberField", adVarChar, adParamInput, 50, GetDbValue(txtContNum))
cmdDlrID.Parameters.Append prm
答案 0 :(得分:2)
尝试这样(未经测试):
Function GetDbValue(ByVal tb)
If tb.Text = "" Then
Set GetDbValue = Nothing
Else
GetDbValue = tb.Text
End If
End Function
IIRC,你不使用Return
关键字在VB6 / VBA中返回一个函数值,你将返回值赋给函数的名称。
答案 1 :(得分:2)
在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
答案 2 :(得分:0)
如果我没记错,在VB6中返回一个值,则将该函数设置为等于该值
所以你的代码看起来像这样。
Function GetDbValue(ByVal tb as TextBox) as String
If tb.Text = "" Then
GetDbValue = Nothing
Else
GetDbValue = tb.Text
End If
End Function
可以找到关于子例程和函数的简短教程here