在VB6中什么都没有返回



我需要弄清楚如何重写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

可以在此处找到有关子例程和功能的简短教程

最新更新