Dim msql As String
msql = "select 过帐状态表.开船时间 as 开船时间 from 过帐状态表 where 状态 = '0' and 开船时间 between '" & starDT & "' and '" & endDT & "' group by 开船时间"
Set rst = cn.OpenResultset(msql, rdOpenStatic, rdConcurReadOnly)
While Not rst.EOF
MsgBox rst!开船时间
rst.MoveNext
Wend
rst.Closedim strmsg as string 
while not rst.eof 
strmsg=strmsg+rst!开船时间 
rst.movenext wend msgbox strmsg 
可是这样运行的结果是当有一个时间满足时,有个消息框把时间显示出来,按消息框上的确定,又弹一个消息框,把满足条件的第二个时间显示出了就是消息框上显示2009年4月1日,我点确定,又一个消息框,显示2009年4月2日。。,我想要的结果是::比如我查询出有2009年4月1日,4月2日是满足的,把满足条件的时间一起提示出来,就提示一个消息框!
比如消息框上显示2009年4月1日,2009年4月2日,按我的结果,如何更改啊?

解决方案 »

  1.   


    Dim msql As String 
    msql = "select 过帐状态表.开船时间 as 开船时间 from 过帐状态表 where 状态 = '0' and 开船时间 between '" & starDT & "' and '" & endDT & "' group by 开船时间" 
    Set rst = cn.OpenResultset(msql, rdOpenStatic, rdConcurReadOnly) 
    While Not rst.EOF 
    MsgBox rst!开船时间 
    rst.MoveNext 
    Wend 
    dim strmsg as string 
    while not rst.eof 
    strmsg=strmsg+rst!开船时间 
    rst.movenext 
    wend 
    rst.Close  '''把rst.Close放在这里试试
    msgbox strmsg 这样你试试看行不行
      

  2.   


    楼主的代码有逻辑问题吧!
    ........
    While Not rst.EOF 
    ..........
    Wend 
    rst.Close     '这里 rst 已经执行关闭操作了,后面还能用吗?dim strmsg as string 
    while not rst.eof 
    .......你试一下这样行不行:
    Dim msql As String
    dim strMsg as string
    msql = "select 过帐状态表.开船时间 as 开船时间 from 过帐状态表 where 状态 = '0' and 开船时间 between '" & starDT & "' and '" & endDT & "' group by 开船时间"
    Set rst = cn.OpenResultset(msql, rdOpenStatic, rdConcurReadOnly)
    While Not rst.EOF
        strMsg = strMsg & rst!开船时间
        rst.MoveNext
    Wend
    rst.Close
    MsgBox strMsg, 64, "开船时间"
      

  3.   


    不好意思,dim strmsg as string 
    while not rst.eof 
    strmsg=strmsg+rst!开船时间 
    r… 
    是我想改多添加进去的,在这里忘记注西掉了,我的代码只是前面,我按你说法看看
      

  4.   

    运行时候,出错了,跳到strmsg=strmsg+rst!开船时间处,说错误13,类型不搭配!
    ???
      

  5.   

    字符串操作会类型不匹配?晕!你干吗用 + ???
    我给你的代码可是用的 & 呀。
    也可以这样写:
    strMsg = strMsg & Format$(rst!开船时间, "yyyy年mm月dd日")
      

  6.   

    恩,按你说的可以实现了
    我按下面可以实现把满足条件的时间一起在消息框上显示了,可是显示的时间是连一起的,很 容易看错,如何在各个时间后用逗号或什么符号把各个时间分开啊,比如2009-04-01,2009-04-02,下面的显示是2009-04-012009-04-02Dim msql As String Dim strmsg As String msql = "select 过帐状态表.开船时间 as 开船时间 from 过帐状态表 where 状态 = '0' and 开船时间 between '" & starDT & "' and '" & endDT & "' group by 开船时间" Set rst = cn.OpenResultset(msql, rdOpenStatic, rdConcurReadOnly) While Not rst.EOF strmsg = strmsg & rst!开船时间 rst.MoveNext Wend rst.Close MsgBox strmsg, 64, "开船时间" 
      

  7.   


    Dim msql As String
    dim strMsg as string
    msql = "select 过帐状态表.开船时间 as 开船时间 from 过帐状态表 where 状态 = '0' and 开船时间 between '" & starDT & "' and '" & endDT & "' group by 开船时间"
    Set rst = cn.OpenResultset(msql, rdOpenStatic, rdConcurReadOnly)
    While Not rst.EOF
        strMsg = strMsg & Format$(rst!开船时间, "yyyy年mm月dd日;")'(rst!开船时间, "自定义格式")
        rst.MoveNext
    Wend
    rst.Close
    set rst=nothing
      

  8.   

    strMsg = strMsg & Format$(rst!开船时间, "yyyy年mm月dd日")  & " ; "
      

  9.   

    结果不是很多的话,强制换行:
    strmsg = strmsg & rst!开船时间 & vbCrLf如果结果很多的话,加分隔符,让它自动换行:
    strmsg = strmsg & rst!开船时间 & ","