以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  高级功能研发区  (http://www.weistock.com/bbs/list.asp?boardid=5)
----  movefirst定位错误  (http://www.weistock.com/bbs/dispbbs.asp?boardid=5&id=152491)

--  作者:zero
--  发布时间:2017/5/5 9:11:17
--  movefirst定位错误
sub infosurvey2_OptionButton11_click()
    t1.show
    t1_textbox1.value=vtSymbolDict.Item("NI00")(0)  
    t1_textbox2.value=vtSymbolDict.Item("AL00")(0) 
    \'t1_textbox3.value="zn09"    
    t1_listbox1.clear 
    \'调用数据库
    call bbi_TestDatabase()     
    \'建立数据集Rst保留选中数据
    Set Rst11 = CreateObject( "ADODB.Recordset" )
    Rst11.Open "Select 成交记录 from NI_AL", adoconnection
    Rst11.MoveFirst
    Do While not Rst11.EOF
       if Rst11("成交记录").value <> " " then 
          t1_listbox1.additem Rst11("成交记录").value
       end if 
    Rst11.MoveNext
    loop
    
    Set adoconnection=nothing
    Set Rst11 =nothing         
end sub

1.建立rst数据集保存列数据,然后通过movefirst从头开始遍历,可是发现有时候movefirst有时候会出错。就像两张图上,“成交记录”应该是第一个被写入的数据却成了最后一个,这是什么原因?
图片点击可在新窗口打开查看此主题相关图片如下:{acfn8d(rh{u{xtab2je.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:vnl3d$$ltzi4(%13usy7r~a.png
图片点击可在新窗口打开查看
2.还有没有其他的方法可以快速读取数据库某列最后一个数据的方式?



--  作者:zero
--  发布时间:2017/5/5 9:54:09
--  
补充下第二个问题,现在要在窗体输出一列数据库的数据和获取一列数据库最后一个数据都是通过movefirst逐渐获取过来的,有没有其他方法可以快速定位最后一个数据?如果movefirst定位错误会导致我获得的数据是错误的,所以想找下问题原因或者可替代方法
--  作者:王锋
--  发布时间:2017/5/5 10:02:08
--  
MoveLast
--  作者:zero
--  发布时间:2017/5/5 10:21:52
--  
数据集的访问不能通过movelast会报错
--  作者:zero
--  发布时间:2017/5/5 10:23:00
--  
call bbi_TestDatabase()     
    \'建立数据集Rst保留选中数据
    Set Rst11 = CreateObject( "ADODB.Recordset" )
    Rst11.Open "Select 成交记录 from NI_AL", adoconnection
    Rst11.Movelast
这么做不行

--  作者:王锋
--  发布时间:2017/5/5 10:33:37
--  

金字塔的vbs语法是通用语法,你可以参考网上的一些教程及范例

http://www.yesky.com/imagesnew/software/ado/html/mdmthmovefirstx.htm


--  作者:zero
--  发布时间:2017/5/8 9:25:43
--  
 Rst11.Open "Select 成交记录 from NI_AL", adoconnection,1,1
改成游标可移动即可