在VB6中什么都不返回

时间:2014-01-30 16:30:53

标签: function textbox vb6 nothing

很简单,我需要弄清楚如何为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

3 个答案:

答案 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