51Testing软件测试论坛
标题:
写一段程序从数据库取数据存到excel中,却没存上,请指教
[打印本页]
作者:
lovetest
时间:
2007-1-18 15:36
标题:
写一段程序从数据库取数据存到excel中,却没存上,请指教
套用风过无息的代码,写了个小程序,可是程序执行完成之后打开excel文件,却发现什么数据也没有。
'创建excel对象
Set ExcelObject = createobject("excel.application")
'指定excel格式
aatype = "f:\templet.xls"
'打开excel
ExcelObject.WorkBooks.open(aatype)
'设置操作得工作表
Set NewSheet = ExcelObject.Sheets.item(2)
'以下是数据库操作
Dim rs,conn,sql
Set conn = createobject("adodb.connection")
Set rs = createobject("adodb.recordset")
conn.open="Provider=OraOLEDB.Oracle.1;Password=hdjb;Persist Security Info=True;User ID=hdjb;SERVER=172.16.1.45;Data Source=1.45;DBQ=;"
sql = "select aac001,aac003 from ac01"
rs.open sql,conn
i = 1
Do while rs.eof
values1 = rs("aac001")
values2 = rs("aac003")
NewSheet.Cells(i+1,1).value = values1
NewSheet.Cells(i+1,2).value = values2
i = i +1
rs.movenext
Loop
'保存excel数据
ExcelObject.ActiveWorkBook.Saveas "f:\data.xls"
ExcelObject.Quit
Set ExcelObject = Nothing
rs.close
Set rs=nothing
Set conn = nothing
作者:
lovetest
时间:
2007-1-18 15:48
我想问题应该出在这个地方:rs.open sql,conn。我调试时发现程序根本不往do while里面走。这个语句我想应该是执行sql语句将结果放到rs中的意思吧?是不是没有取到值啊?也不知道这个语句写对了没有。
我想请教到哪里去查找recordset对象的所以方法呢?
作者:
风过无息
时间:
2007-1-18 15:54
Set NewSheet = ExcelObject.Sheets.item(2)
这里是把数据放到第2个工作表里面,楼主察看一下,不好意思,没有把脚本说清楚。
作者:
lovetest
时间:
2007-1-18 16:00
呵呵,非常感谢你提供了这么好的例子,也非常感谢你的回复。
我看了,第2个工作表也没有数据
我看程序没有走到do while里面,应该是前面的代码出了问题吧
作者:
kevin_swpi
时间:
2007-1-18 16:01
Do while rs.eof
values1 = rs("aac001")
values2 = rs("aac003")
NewSheet.Cells(i+1,1).value = values1
NewSheet.Cells(i+1,2).value = values2
i = i +1
rs.movenext
Loop
应该是
do while not rs.eof (rs.eof 记录的结束位置就是到达最后一条记录的时候)
...
loop
吧....
还有"这个语句我想应该是执行sql语句将结果放到rs中的意思吧 "
你这个说法是错的 rs.open...这个只是打开数据库 把需要的数据放到数据集里面去
作者:
lovetest
时间:
2007-1-18 16:08
非常不好意思,我给钞错了,应该是do while not rs.eof。我没有写not。
另外我特别想知道怎么能查到recordset对象的所有方法以及他们的用法呢
作者:
kevin_swpi
时间:
2007-1-18 16:10
recordset
数据集这个东西你可以找ASP的相关信息就可以看到
你搜索一下吧 很好找的东西
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2