在服务器上有一个带有宏的Word模板,用VB编写了一个Com,去执行它的宏,然后用ASP调用Com,结果打开文档时出错了,为什么呢?谢谢!
下面Com的代码:
 public sub OptWord()
     Dim oWord As Object
     Dim oDoc As Object
    
     Set oWord = CreateObject("Word.Application")    '这句已经执行,对象
                                                     已经创建了,在内存中了
     Set oDoc = oWord.Documents.Open("E:\Test.doc")  '这句出错了
     oWord.Visible = True
     oWord.run "aa"
end sub
下面是ASP代码:
    dim Obj
    set obj = createobj("OptWord.OpenWord")
    obj.OptWord
    set obj=nothing

解决方案 »

  1.   

    去掉 set obj=nothing 这句试试看
      

  2.   

    Dim oWord as Object
    Dim oDoc As Object
    Set oWord = CreateObject("Word.Application")把上面的换成试试Dim oWord as new Word.Application
    Dim oDoc As Word.Document
      

  3.   

    别忘了在后面加     
         set oDoc =nothing
         set oWord =nothing还有啊,在服务器端你干嘛
    oWord.Visible = True   ??? 需要显示给谁看吗?不过调试时你自己可以看看
      

  4.   

    To:cdknet1、程序是在Com中出错的,即下面一句
    Set oDoc = oWord.Documents.Open("E:\Test.doc") 
    所以oWord.Visible = True去掉过,没有用,2、定义成:
     Dim oWord as new Word.Application
     Dim oDoc As Word.Document
    也没有用,我引用了Word类库。   
      

  5.   

    To:cdknet不好意思,无操作了,没有表达清楚
    1、去掉 set obj=nothing ,试过了,并且程序是在Com中出错的,即
       Set oDoc = oWord.Documents.Open("E:\Test.doc") 
    2、定义成先面这样,没有效果,我引用了Word库
       Dim oWord as new Word.Application
       Dim oDoc As Word.Document  
      

  6.   

    我现在怀疑能不能在服务端运行的Com中打开word文档?有人知道吗?理论上是可以的。
      

  7.   

    好象不对吧? 你这样做没有实际意义. 打开也是在服务器端打开. 要让WORD文档在客户端显示不用这样复杂.  打不开是因为服务器没有装word. 拜托
      

  8.   

    To:tangjinn
    你没有弄清楚我的目的,我的服务器Word文档带有宏,宏里访问数据库,我是想执行宏让它访问数据库,如果到了客户端打开文档,客户端的宏就没有访问数据库的权限了。明白我的意思了吗?谢谢
      

  9.   

    服务端当然装了Word,理论上可以这么实现,但实际不行,但有找不到不行的原因。
      

  10.   

    在一般程序中能打开WORD文档吗?你在服务器上用VB调用这个COM能正常工作吗? 一步一步试, 总能找出原因, 我也不知道为什么
      

  11.   

    可以的,客户端用VB调用com,没有问题。应该不是代码的问题,主要是不知道能不能这样做。
      

  12.   

    可能性一:E:\Test.doc不存在
    可能性二:在IE浏览器上不能访问除临时文件夹以外的其它资源
    可能性三:我也不知道了