小弟的存储过程如下:
CREATE PROCEDURE colors  @color_id char
 AS
 select * from color where colorid=@color_id
GOVB代码如下:
Option Explicit
Private cn As New ADODB.Connection
Private com As New ADODB.Command
Private rs As New ADODB.Recordset
Private pcom As New ADODB.ParameterPrivate Sub Command1_Click()
 'Debug.Print com.Parameters.Count
 com.Parameters("@color_id") = Trim(Me.Text1.Text) '出错:应用程序在当前操作中使用了错误类型的值. Set rs = com.Execute()
 
End SubPrivate Sub Form_Load()
cn.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=dzh;Data Source=DENGZHENGHUAN"
 
 With com
 .CommandType = adCmdStoredProc
 .ActiveConnection = cn
 .CommandText = "colors"
 End WithEnd Sub

解决方案 »

  1.   

    你的参数:@color_id 为char,
    而你这个color表中的colorid是字符型的么????
    如果不是,那当然也就有 ==>出错:应用程序在当前操作中使用了错误类型的值.参数的类型和该字段的类型要一致啊!
      

  2.   

    1、定义存储过程中char的长度。
    2、com.Parameters("@color_id") = Trim(Me.Text1.Text)
       按规范写。
       com.Parameters("@color_id",....)都写上吧!