本人写个程序,主要目的是对listbox中的项目多项选定,并根据选定的条件在数据库中进行查询,最后显示在datagrid 控件中。可是运行时,程序不反应,不知是什么问题,请大侠帮忙。可能是SQL语句中对日期的引用不对,但我不知如何去写,请大侠帮忙。源码如下:
Private Sub Command6_Click()
Dim i As Integer
List2.ListIndex = 0
If List2.SelCount < 1 Then
MsgBox ("请选择项目!")
Else
For i = 0 To List2.ListCount Step -1
If List2.Selected(i) Then
Adodc1.ConnectionString = cnn
Adodc1.RecordSource = "Select 日期,项目编号,银行编号,货币代码,金额  from HISTORY_PARA Where 日期 =" & "#" & (Trim(List2.List(List2.ListIndex))) & "#" & "  order by 银行编号,项目编号 "
Adodc1.Refresh
Set DataGrid1.DataSource = Adodc1
DataGrid1.Refresh
End If
Next i
End If
End Sub
Private Sub Form_Activate()
rs1.Open "select Distinct 日期 from HISTORY_PARA  order by 日期 desc", cnn, adOpenKeyset, adLockOptimistic
If rs1.BOF = False Then rs1.MoveFirst
For i = 0 To rs1.RecordCount - 1
List2.AddItem (Trim(rs1.Fields("日期")))
rs1.MoveNext
Next i
If List2.ListCount > 0 Then List2.ListIndex = 0
rs1.Close
End Sub

解决方案 »

  1.   

    For i = 0 To List2.ListCount Step -1
    这里Step怎么用的是-1,晕~对于ADO控件反而不会用了
      

  2.   

    Adodc1.RecordSource = "Select 日期,项目编号,银行编号,货币代码,金额  from HISTORY_PARA Where 日期 ='" & (Trim(List2.List(List2(i)))) & "'" & "  order by 银行编号,项目编号 "但你的这段循环所得到的结果只是最后的一个选中的结果,不是所有选中的结果集。
      

  3.   

    还有For i = 0 To List2.ListCount -1 Step 1才行,
    如果想用应该这样 For List2.ListCount-1 to 0 Step -1
      

  4.   

    这个语句“For i = 0 To List2.ListCount Step -1”是用错了,我已改过来了,多谢。””Adodc1.RecordSource = "Select 日期,项目编号,银行编号,货币代码,金额  from HISTORY_PARA Where 日期 ='" & (Trim(List2.List(List2(i)))) & "'" & "  order by 银行编号,项目编号 "但你的这段循环所得到的结果只是最后的一个选中的结果,不是所有选中的结果集。“
    请问大侠,那应该怎么写呢?