51Testing软件测试论坛

标题: 求教QTP的一个问题! [打印本页]

作者: gev8561    时间: 2007-9-18 16:00
标题: 求教QTP的一个问题!
Dim conn,rst,filename
Dim var
filename="E:\test.xls"
Set conn=createobject ("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source="&filename&" Extended Properties='Excel 8.0;hdr=yes' "
Set  rst  = createobject("ADODB.Recordset")
rst.Open "select * from [sheet1$]" ,conn,1,1
result = rst.RecordCount
msgbox "RecordCount = " &result
   While Not rst.EOF
    var = rst.fields("a")
    msgbox "Data = " &var
           rst.MoveNext
   Wend
   rst.close
   Set rst = nothing

以上是QTP从EXCEL读入数据的脚本。但,我每次运行到“conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source="&filename&" Extended Properties='Excel ”,这一句时,就提示“找不到可安装的ISAM”。这是为什么呀?

请各位大侠多多指教!万分感激!
作者: gev8561    时间: 2007-9-18 16:03
另外,不知哪位大侠能够提供一些QTP代码学习的资料,我现在会一些基本的录制和回放,但对QTP的代码还是很菜的!
求求大家帮帮我,让我尽快渡过这段痛苦的QTP生涯!sdlkfj7 sdlkfj5
作者: ace19820509    时间: 2007-9-19 13:49
先顶再看
作者: huash    时间: 2007-9-19 14:30
你要读取的文件是excel文件,但是你创建的对象是数据库文件读取所用的对象,所以会发生错误,你应该创建的对象语句为 CreateObject(Excel.Application),其余的细节你可以参考QTP里面的帮助
作者: yuandjing    时间: 2007-9-19 15:36
楼上的兄弟,对于excel信息的读取有两种方式,一种是基于数据的,一种是基于对象的
你说的是对象方式的,楼市用的是数据方式的
我可以提供一下我的对于excel文件读写的vbs,供大家调用,是把excel当作对象处理的方式:

'读Excel文件元素
Public Function QTP_Read_Excel(pathway,sheetname,x,y)
        Dim srcData,srcDoc,ret
        set srcData = CreateObject("Excel.Application")
        srcData.Visible = True
        set srcDoc = srcData.Workbooks.Open(pathway)
        srcDoc.Worksheets(sheetname).Activate
        ret = srcDoc.Worksheets(sheetname).Cells(x,y).value
        srcData.Workbooks.Close
        Window("text:=Microsoft Excel").Close
        QTP_Read_Excel = ret
End Function

'写Excel文件元素并保存退出
Public Function QTP_Write_Excel(pathway,sheetname,x,y,content)
        Dim srcData,srcDoc,sp1,sp2,num,use,a1,a2,a3
        set srcData = CreateObject("Excel.Application")
        srcData.Visible = True
        set srcDoc = srcData.Workbooks.Open(pathway)
        srcDoc.Worksheets(sheetname).Activate
        srcDoc.Worksheets(sheetname).Cells(x,y).value = content
       
'        sp1 = Split(pathway,".")
'        sp2 = Split(sp1(0),"\")
'        num = UBound(sp2)
'        use = sp2(num)

'        Set a1 = Description.Create()
'        a1("text").value="Microsoft Excel - " + use + ".xls"
'        a1("window id").value="0"

'        Set a3 = Description.Create()
'        a3("Class Name").value="WinObject"
'        a3("text").value= use + ".xls"

'        Window(a1).WinObject(a3).Type micCtrlDwn + "s" + micCtrlUp

        Dim WshShell
        Set WshShell=CreateObject("Wscript.Shell")
        WshShell.SendKeys "^s"
        wait(1)
       
        srcData.Workbooks.Close
        Set srcDoc = nothing
       
        Window("text:=Microsoft Excel").Close
End Function
作者: gev8561    时间: 2007-9-20 09:31
多谢各位啦!各位还有什么好的方法请继续提!偶在此先谢啦!
作者: yuandjing    时间: 2007-9-21 14:15
呵呵,谢谢你的花花




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2