我在做一个进销存管理系统。在做“销售订单查询”时,我要用“订货单编号”和“商品编号”进行查询。可是老是说没有
实时错误‘-2147217904(80040e10)‘
参数?-1没有默认值
我程序如下:
Option Explicit
Private Comm As New ADODB.Command
Private Conn As New ADODB.Connection
Private Rs As New ADODB.Recordset
Private Sub cmdQuery_Click()
'定义两个局部记录集对象
Dim objRs As Recordset, objSource As Recordset
Dim i As Integer
Comm("dhbh") = "%" & Text1 & "%" (这边该怎么写呢?)
Comm("spbh") = "%" & Text2 & "%"
Set objRs = Comm.Execute
Set objSource = New Recordset
For i = 0 To objRs.Fields.Count - 1
objSource.Fields.Append objRs.Fields(i).Name, adVarChar, objRs.Fields(i).DefinedSize
Next
objSource.Open
While Not objRs.EOF
objSource.AddNew
objSource!dhdata = objRs!dhdata
objSource!dhbh = objRs!dhbh
objSource!khbh = objRs!khbh
objSource!spbh = objRs!spbh
objSource!spcolor = objRs!spcolor
objSource!sl = objRs!sl
objSource!dj = objRs!dj
objSource!zje = objRs!zje
objRs.MoveNext
Wend
If objSource.RecordCount > 0 Then objSource.MoveFirst
Set DataGrid1.DataSource = objSource
Label4 = "共获得" & objSource.RecordCount & "条查询结果"
End SubPrivate Sub Command1_Click()
Unload Me
xtcd.Show 0
End SubPrivate Sub Form_Load()
Conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\VB练习\数据库\jxc2.mdb;Persist Security Info=False"
Conn.Open
' 如果RecordSet的状态不是关闭状态,则关闭Recordset
If Rs.State <> adStateClosed Then Rs.Close
Rs.Open "select * from xsd ", Conn, adOpenKeyset, adLockOptimistic
MsgBox Rs.RecordCount
'创建执参数查询的Command对象Comm
Set Comm.ActiveConnection = Conn
Comm.CommandText = "SELECT * FROM xsd WHERE dhbh LIKE ?" & " and spbh LIKE ?" (是不是这边有问题啊?怎么写这语句?)
Comm.CommandType = adCmdText
'为Command对象objcmd创建参数
Dim Parm As Parameter
Set Parm = Comm.CreateParameter("dhdata", adVarChar, adParamInput, 10)
Comm.Parameters.Append Parm
Set Parm = Comm.CreateParameter("dhbh", adVarChar, adParamInput, 10)
Comm.Parameters.Append Parm
Set Parm = Comm.CreateParameter("khbh", adVarChar, adParamInput, 10)
Comm.Parameters.Append Parm
Set Parm = Comm.CreateParameter("spbh", adVarChar, adParamInput, 10)
Comm.Parameters.Append Parm
Set Parm = Comm.CreateParameter("spcolor", adVarChar, adParamInput, 10)
Comm.Parameters.Append Parm
Set Parm = Comm.CreateParameter("sl", adVarChar, adParamInput, 10)
Comm.Parameters.Append Parm
Set Parm = Comm.CreateParameter("dj", adVarChar, adParamInput, 10)
Comm.Parameters.Append Parm
Set Parm = Comm.CreateParameter("zje", adVarChar, adParamInput, 10)
Comm.Parameters.Append Parm
Label4 = "" '清除标签
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set Comm = Nothing
Set Conn = Nothing
End Sub
实时错误‘-2147217904(80040e10)‘
参数?-1没有默认值
我程序如下:
Option Explicit
Private Comm As New ADODB.Command
Private Conn As New ADODB.Connection
Private Rs As New ADODB.Recordset
Private Sub cmdQuery_Click()
'定义两个局部记录集对象
Dim objRs As Recordset, objSource As Recordset
Dim i As Integer
Comm("dhbh") = "%" & Text1 & "%" (这边该怎么写呢?)
Comm("spbh") = "%" & Text2 & "%"
Set objRs = Comm.Execute
Set objSource = New Recordset
For i = 0 To objRs.Fields.Count - 1
objSource.Fields.Append objRs.Fields(i).Name, adVarChar, objRs.Fields(i).DefinedSize
Next
objSource.Open
While Not objRs.EOF
objSource.AddNew
objSource!dhdata = objRs!dhdata
objSource!dhbh = objRs!dhbh
objSource!khbh = objRs!khbh
objSource!spbh = objRs!spbh
objSource!spcolor = objRs!spcolor
objSource!sl = objRs!sl
objSource!dj = objRs!dj
objSource!zje = objRs!zje
objRs.MoveNext
Wend
If objSource.RecordCount > 0 Then objSource.MoveFirst
Set DataGrid1.DataSource = objSource
Label4 = "共获得" & objSource.RecordCount & "条查询结果"
End SubPrivate Sub Command1_Click()
Unload Me
xtcd.Show 0
End SubPrivate Sub Form_Load()
Conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\VB练习\数据库\jxc2.mdb;Persist Security Info=False"
Conn.Open
' 如果RecordSet的状态不是关闭状态,则关闭Recordset
If Rs.State <> adStateClosed Then Rs.Close
Rs.Open "select * from xsd ", Conn, adOpenKeyset, adLockOptimistic
MsgBox Rs.RecordCount
'创建执参数查询的Command对象Comm
Set Comm.ActiveConnection = Conn
Comm.CommandText = "SELECT * FROM xsd WHERE dhbh LIKE ?" & " and spbh LIKE ?" (是不是这边有问题啊?怎么写这语句?)
Comm.CommandType = adCmdText
'为Command对象objcmd创建参数
Dim Parm As Parameter
Set Parm = Comm.CreateParameter("dhdata", adVarChar, adParamInput, 10)
Comm.Parameters.Append Parm
Set Parm = Comm.CreateParameter("dhbh", adVarChar, adParamInput, 10)
Comm.Parameters.Append Parm
Set Parm = Comm.CreateParameter("khbh", adVarChar, adParamInput, 10)
Comm.Parameters.Append Parm
Set Parm = Comm.CreateParameter("spbh", adVarChar, adParamInput, 10)
Comm.Parameters.Append Parm
Set Parm = Comm.CreateParameter("spcolor", adVarChar, adParamInput, 10)
Comm.Parameters.Append Parm
Set Parm = Comm.CreateParameter("sl", adVarChar, adParamInput, 10)
Comm.Parameters.Append Parm
Set Parm = Comm.CreateParameter("dj", adVarChar, adParamInput, 10)
Comm.Parameters.Append Parm
Set Parm = Comm.CreateParameter("zje", adVarChar, adParamInput, 10)
Comm.Parameters.Append Parm
Label4 = "" '清除标签
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set Comm = Nothing
Set Conn = Nothing
End Sub
Comm("spbh") = "%" & Text2 & "%"没细看,不过这里 最好不要写成 Text1 ---〉Text1.text 看看。