dim i as variant我假设i可能是个空值(null)可能是个字符串。现在我有一个问题是,可以不通过判断把i传给一个函数,在里面去执行存储过程。见代码,
Public Function GetTaskInfo(ByVal condition_1 As Variant, _
ByVal condition_2 As Variant, _
ByVal condition_3 As Variant, _
ByVal condition_4 As Variant) As Recordset
Dim ado As AdoAccess
Dim Result As Boolean
Dim SQL As String
Dim Rec As ADODB.Recordset
Dim source As String
Set ado = New AdoAccess
Set GetTaskInfo = Nothing
Result = ado.OpenConnection(GetSetting("CMQC", "DataBase", "ConnectString"))
If Result = True Then
SQL = "exec GetTaskInfoByMultiCondition" + Chr(34) + condition_1 + Chr(34) + condition_2 + condition_3 + condition_4
Result = ado.GetRecordset(SQL, Rec)
If Result = True Then
Set GetTaskInfo = Rec
End If
Set Rec = Nothing
ado.CloseConnection
End If
Set ado = Nothing
End Function我的condition_1,2,3,4可能是null,可能是字符串。望高手指点。谢谢了
Public Function GetTaskInfo(ByVal condition_1 As Variant, _
ByVal condition_2 As Variant, _
ByVal condition_3 As Variant, _
ByVal condition_4 As Variant) As Recordset
Dim ado As AdoAccess
Dim Result As Boolean
Dim SQL As String
Dim Rec As ADODB.Recordset
Dim source As String
Set ado = New AdoAccess
Set GetTaskInfo = Nothing
Result = ado.OpenConnection(GetSetting("CMQC", "DataBase", "ConnectString"))
If Result = True Then
SQL = "exec GetTaskInfoByMultiCondition" + Chr(34) + condition_1 + Chr(34) + condition_2 + condition_3 + condition_4
Result = ado.GetRecordset(SQL, Rec)
If Result = True Then
Set GetTaskInfo = Rec
End If
Set Rec = Nothing
ado.CloseConnection
End If
Set ado = Nothing
End Function我的condition_1,2,3,4可能是null,可能是字符串。望高手指点。谢谢了
ByVal condition_2 As Variant="", _
ByVal condition_3 As Variant="", _
ByVal condition_4 As Variant="") As Recordset
但是有可能传NULL进去,这样你就要检验
你可以不检验用户给你传如的值,但是你最好在
GetTaskInfo中进行判断Public Function GetTaskInfo(ByVal condition_1 As Variant, _
ByVal condition_2 As Variant, _
ByVal condition_3 As Variant, _
ByVal condition_4 As Variant) As Recordset
Dim ado As AdoAccess
Dim Result As Boolean
Dim SQL As String
Dim Rec As ADODB.Recordset
Dim source As StringIf IsNull(condition_1) Then condition_1 = ""
If IsNull(condition_2) Then condition_2 = ""
If IsNull(condition_3) Then condition_3 = ""
If IsNull(condition_4) Then condition_4 = ""
ByVal condition_2 As String, _
ByVal condition_3 As String, _
ByVal condition_4 As String) As Recordset
Dim ado As AdoAccess
Dim Result As Boolean
Dim SQL As String
Dim Rec As ADODB.Recordset
Dim source As String
Set ado = New AdoAccess
Set GetTaskInfo = Nothing
Result = ado.OpenConnection(GetSetting("CMQC", "DataBase", "ConnectString"))
If Result = True Then
SQL = "exec GetTaskInfoByMultiCondition" + Chr(34) + condition_1 & "" + Chr(34) + condition_2 & "" + condition_3 & "" + condition_4 & ""
Result = ado.GetRecordset(SQL, Rec)
If Result = True Then
Set GetTaskInfo = Rec
End If
Set Rec = Nothing
ado.CloseConnection
End If
Set ado = Nothing
End Function