I need to call a stored procedure from Excel, passing several values entered by a user as parameters. I have almost achieved this with a Macro using the following Parameters collection. 

```
Set ADOCmd = New ADODB.Command

With ADOCmd
        .Parameters.Append .CreateParameter("@Department", adChar, adParamInput, Len(cDept), cDept)
        .Parameters.Append .CreateParameter("@title", adChar, adParamInput, Len(cTitle), cTitle)
        .Parameters.Append .CreateParameter("@name", adChar, adParamInput, Len(cName), cName)
        .Parameters.Append .CreateParameter("@email", adChar, adParamInput, Len(cEmail), cEmail)
        .Parameters.Append .CreateParameter("@tel_no", adChar, adParamInput, Len(cTel), cTel)
        .Parameters.Append .CreateParameter("@mob_no", adChar, adParamInput, Len(cMob), cMob)
End With

```

This will work just fine if all of the values have been filled out by the user. However if anything is left blank the following error occurs.

```
Run-time error:'3708':
Parameter object is improperly defined. Inconsistent or incomplete information was provided.

```

I'm led to believe this is because the Size parameter passed in the CreateParameter function is zero. Is there any way I can get around this? Shouldn't it accept zero as a valid Size if the string entered is zero characters long?

Thanks in advance.