0

簡単に言えば、アプリケーションが textbox.text 値に何も渡されないように、VB6 用に次のコードを書き直す方法を理解する必要があります。

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
4

3 に答える 3

2

VB6 には、少なくとも 4 つの異なるタイプの何もありません。

  • Nothing、オブジェクトとしての null ポインター
  • vbNullString、文字列としての null ポインター
  • Empty、初期化されていないバリアント
  • Null、データベースとの間で渡される null 値

関数を ADO パラメータに渡す場合はNull、 ではなくが必要Nothingです。

Function GetDbValue(ByVal tb)
    If tb.Text = "" Then
        GetDbValue = Null
    Else
        GetDbValue = tb.Text
    End If
End Function
于 2014-01-30T17:06:44.460 に答える
2

このように試してください(テストされていません):

Function GetDbValue(ByVal tb)
 If tb.Text = "" Then
  Set GetDbValue = Nothing
 Else
  GetDbValue = tb.Text
 End If
End Function

ReturnIIRC、 VB6/VBAで関数値を返すためにキーワードを使用しないで、戻り値を関数の名前に割り当てます。

于 2014-01-30T16:43:21.027 に答える