我单击按钮,用command 的 Execute 方法执行查询,查询结果给MSFlexGrid显示。现在是,我第一次设置好查询条件,单击按钮,查询结果是正确的。但是我改变了查询条件,再按按钮,返回的还是第一次的查询结果!怎么回事?下面是代码,请帮忙分析!问题二:我希望每次查询,MSFlexGrid都能清空,新的查询结果可以从第一行重新往下填充。如何实现?====================
Dim i As Integer
Dim CX_objRs As New ADODB.RecordsetMSFlexGrid1.ClearstrSQL = "SELECT 日期,姓名,消费类型,金额 FROM 支出表 WHERE ? <= 日期 AND 日期 <= ? "
strSQL = strSQL & "AND 消费类型 LIKE ?"
strSQL = strSQL & "AND 姓名 LIKE ?"objCmd.CommandText = strSQL
objCmd.CommandType = adCmdTextDim Parm As ADODB.Parameter
Set Parm = objCmd.CreateParameter("开始时间", adVarChar, adParamInput, 10)
objCmd.Parameters.Append Parm
Set Parm = objCmd.CreateParameter("结束时间", adVarChar, adParamInput, 10)
objCmd.Parameters.Append Parm
Set Parm = objCmd.CreateParameter("消费类型", adVarChar, adParamInput, 10)
objCmd.Parameters.Append Parm
Set Parm = objCmd.CreateParameter("姓名", adVarChar, adParamInput, 10)
objCmd.Parameters.Append ParmobjCmd("开始时间") = DTPicker2.Value
objCmd("结束时间") = DTPicker3.Value
objCmd("消费类型") = Com_CXFL.Text
objCmd("姓名") = Com_CXXM.TextSet CX_objRs = objCmd.Execute()MSFlexGrid1.Cols = CX_objRs.Fields.CountFor i = 0 To CX_objRs.Fields.Count - 1
MSFlexGrid1.TextMatrix(0, i) = CX_objRs.Fields(i).Name
Next iWhile Not CX_objRs.EOF
MSFlexGrid1.AddItem (CX_objRs!日期 & vbTab & CX_objRs!姓名 & vbTab & CX_objRs!消费类型 & vbTab & CX_objRs!金额)
CX_objRs.MoveNext
Wend
Dim i As Integer
Dim CX_objRs As New ADODB.RecordsetMSFlexGrid1.ClearstrSQL = "SELECT 日期,姓名,消费类型,金额 FROM 支出表 WHERE ? <= 日期 AND 日期 <= ? "
strSQL = strSQL & "AND 消费类型 LIKE ?"
strSQL = strSQL & "AND 姓名 LIKE ?"objCmd.CommandText = strSQL
objCmd.CommandType = adCmdTextDim Parm As ADODB.Parameter
Set Parm = objCmd.CreateParameter("开始时间", adVarChar, adParamInput, 10)
objCmd.Parameters.Append Parm
Set Parm = objCmd.CreateParameter("结束时间", adVarChar, adParamInput, 10)
objCmd.Parameters.Append Parm
Set Parm = objCmd.CreateParameter("消费类型", adVarChar, adParamInput, 10)
objCmd.Parameters.Append Parm
Set Parm = objCmd.CreateParameter("姓名", adVarChar, adParamInput, 10)
objCmd.Parameters.Append ParmobjCmd("开始时间") = DTPicker2.Value
objCmd("结束时间") = DTPicker3.Value
objCmd("消费类型") = Com_CXFL.Text
objCmd("姓名") = Com_CXXM.TextSet CX_objRs = objCmd.Execute()MSFlexGrid1.Cols = CX_objRs.Fields.CountFor i = 0 To CX_objRs.Fields.Count - 1
MSFlexGrid1.TextMatrix(0, i) = CX_objRs.Fields(i).Name
Next iWhile Not CX_objRs.EOF
MSFlexGrid1.AddItem (CX_objRs!日期 & vbTab & CX_objRs!姓名 & vbTab & CX_objRs!消费类型 & vbTab & CX_objRs!金额)
CX_objRs.MoveNext
Wend
Dim i As Integer
Dim CX_objRs As New ADODB.Recordset
Dim objCmd As New ADODB.Command
strSQL = "SELECT 日期,姓名,消费类型,金额 FROM 支出表 where 开始时间='" & DTPicker2.Value & "' "
strSQL = strSQL & "AND 结束时间 = '" & DTPicker3.Value & "' "
strSQL = strSQL & "AND 消费类型 LIKE '" & Com_CXFL.Text & "' "
strSQL = strSQL & "AND 姓名 LIKE '" & Com_CXXM.Text & "'" objCmd.ActiveConnection = Cn '这里的cn是数据库连接,要替换成你自己的
objCmd.CommandText = strSQL
objCmd.CommandType = adCmdText
Dim Parm As ADODB.Parameter
Set Parm = objCmd.CreateParameter("开始时间", adVarChar, adParamInput, 10)
objCmd.Parameters.Append Parm
Set Parm = objCmd.CreateParameter("结束时间", adVarChar, adParamInput, 10)
objCmd.Parameters.Append Parm
Set Parm = objCmd.CreateParameter("消费类型", adVarChar, adParamInput, 10)
objCmd.Parameters.Append Parm
Set Parm = objCmd.CreateParameter("姓名", adVarChar, adParamInput, 10)
objCmd.Parameters.Append Parm
Set CX_objRs = objCmd.Execute()
MSFlexGrid1.Clear
MSFlexGrid1.Cols = CX_objRs.Fields.Count
MSFlexGrid1.Rows = 1
For i = 0 To CX_objRs.Fields.Count - 1
MSFlexGrid1.TextMatrix(0, i) = CX_objRs.Fields(i).Name
Next i
While Not CX_objRs.EOF
MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1
MSFlexGrid1.AddItem (CX_objRs!日期 & vbTab & CX_objRs!姓名 & vbTab & CX_objRs!消费类型 & vbTab & CX_objRs!金额)
CX_objRs.MoveNext
Wend
Dim i As Integer
Dim Cn As New ADODB.Connection
Cn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;" _
& "Persist Security Info=False;" _
& "Initial Catalog= test;Data Source= .;"
If Cn.State <> ADODB.ObjectStateEnum.adStateClosed Then Cn.Close
Cn.Open
Dim CX_objRs As ADODB.Recordset
Dim strSQL As String
strSQL = "SELECT 日期,姓名,消费类型,金额 FROM 支出表 where 开始时间='" & DTPicker2.Value & "' "
strSQL = strSQL & "AND 结束时间 = '" & DTPicker3.Value & "' "
strSQL = strSQL & "AND 消费类型 LIKE '" & Com_CXFL.Text & "' "
strSQL = strSQL & "AND 姓名 LIKE '" & Com_CXXM.Text & "'"
Set CX_objRs = Cn.Execute(strSQL)
MSFlexGrid1.Clear
MSFlexGrid1.Cols = CX_objRs.Fields.Count
MSFlexGrid1.Rows = 1
For i = 0 To CX_objRs.Fields.Count - 1
MSFlexGrid1.TextMatrix(0, i) = CX_objRs.Fields(i).Name
Next i
While Not CX_objRs.EOF
MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1
MSFlexGrid1.AddItem (CX_objRs!日期 & vbTab & CX_objRs!姓名 & vbTab & CX_objRs!消费类型 & vbTab & CX_objRs!金额)
CX_objRs.MoveNext
Wend
Set CX_objRs = Nothing