以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  vbs复制数据库整列数据到窗体显示  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=151922)

--  作者:zero
--  发布时间:2017/4/20 9:43:44
--  vbs复制数据库整列数据到窗体显示
Sub TestDatabase()
    Set adoconnection=CreateObject("adodb.connection")
    adoconnection.Open("provider=MicroSoft.ace.OLEDB.12.0;data source="&Application.AppPath&"\\test.mdb")  
    Set rs = adoconnection.Execute("select 字段1 from  表格 ")
        msgbox rs("字段1").Value
    adoconnection.close
End Sub


通过以上代码默认输出的是字段1的第一行的数值,没办法输出整列的数值。
我想在窗体打开时读取数据库的整列数据并且在窗体中显示出来,问题是不知道怎么去取整列数据

--  作者:王锋
--  发布时间:2017/4/20 9:54:07
--  
应该是循环调取的吧
--  作者:zero
--  发布时间:2017/4/20 9:58:03
--  
Sub TestDatabase()
    Set adoconnection=CreateObject("adodb.connection")
    adoconnection.Open("provider=MicroSoft.ace.OLEDB.12.0;data source="&Application.AppPath&"\\test.mdb")
    \'adoconnection.Execute("insert into 表格(id) values(125316)") 
    for i =2 to 4   
    Set rs = adoconnection.Execute("select 字段1 from  表格 where id=i ")
        msgbox rs("字段1").Value
    next
    adoconnection.close
End Sub



这样子用for循环调取没法通过,显示参数没有被赋值,而且我并不知道这一列有多少数据i值要取到多少
--  作者:王锋
--  发布时间:2017/4/20 9:59:15
--  

建议你百度搜一下使用VBS读取数据库的一些教程吧


--  作者:zero
--  发布时间:2017/4/20 11:11:46
--  

Sub TestDatabase()
    Set adoconnection=CreateObject("adodb.connection")
    Set Rst = CreateObject( "ADODB.Recordset" )
    adoconnection.Open("provider=MicroSoft.ace.OLEDB.12.0;data source="&Application.AppPath&"\\test.mdb")
    Rst.Open "Select 字段1 from 表格", adoconnection
    Rst.MoveFirst
    Do While Not Rst.EOF
    t1_listbox1.additem  Rst!("字段1")    
    Rst.MoveNext
    loop
    adoconnection.close
End Sub


这是用while循环查找列数据,用msgbox输出是没问题的。但是 t1_listbox1.additem  Rst!("字段1")    没有执行,想问下用数据集这样写是错的吗?

--  作者:zero
--  发布时间:2017/4/20 11:22:58
--  
Sub TestDatabase()
    Set adoconnection=CreateObject("adodb.connection")
    Set Rst = CreateObject( "ADODB.Recordset" )
    adoconnection.Open("provider=MicroSoft.ace.OLEDB.12.0;data source="&Application.AppPath&"\\test.mdb")
    Rst.Open "Select 字段1 from 表格", adoconnection
    Rst.MoveFirst
    Do While Not Rst.EOF
    \'t1_listbox1.additem 1\' Rst("字段1").value  
    \'msgbox  Rst("字段1").value
    t1_listbox1.additem Rst("字段1").value
    Rst.MoveNext
    loop
    adoconnection.close
End Sub

可以了。。。