Public Sub AddParameter(Name As String, DataType As ADODB.DataTypeEnum, Direction As ADODB.ParameterDirectionEnum, Optional Size As Long, Optional Value As Variant)
  Set Para = cmd.CreateParameter(Name, DataType, Direction, Size, Value)
  cmd.Parameters.Append (Para)
End Sub想重新封装Command类的CreateParamter.可是现在最少要求后两个参数,是可选的(ADO中,所有的参都可以选,我只限定了后两个可选),那么Size到是简单了,可以判断是否为0,可是Variant就不行了.如果初始化时没有写这个Value的话,那么这个值将丢失,也就是说我在Cmd.CreateParameter中没有办法来处理它.如果告诉我把所有参数改掉,然后传Parameter对象的就不用说了!

解决方案 »

  1.   

    这样:
    Public Sub AddParameter(Name As String, DataType As ADODB.DataTypeEnum, Direction As ADODB.ParameterDirectionEnum, Optional Size As Long = 2, Optional Value As Variant = 3)End Sub
      

  2.   

    我的意思是在不传Variant的时候,我如何知道现在Variant有没有值.不知道有没有值,我就没有办法处理cmd.CreateParameter
      

  3.   

    可用 IsEmpty 函数测试:If IsEmpty (Value) Then Value = Null
      

  4.   

    IsMissing函数
    返回 Boolean 值,指出一个可选的 Variant 参数是否已经传递给过程。