| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 788 人关注过本帖
标题:选择打开文件出错的问题,请老师们帮忙。
只看楼主 加入收藏
ynqhzgj
Rank: 2
等 级:论坛游民
帖 子:12
专家分:10
注 册:2008-12-11
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
选择打开文件出错的问题,请老师们帮忙。
我在一个表单中,用了一个文本框输入文件名,然后用一个按扭调用WORD或EXCEL根据输入的文件名后缀来打开文件,按扭的Click原码如下。
wjm=RIGHT(ALLTRIM(thisform.text1.Value),3)     &&取表单中TEXT1控件的的内容从右边起的3个字符,来判断是什么文件。
 IF wjm="doc"                                  &&如果取到的这3个字符是"doc"说明是WORD文档
EFILENAME=ALLTRIM(thisform.text1.Value)        &&那么就将文件名赋给变量efilename
EOLE=CREATEOBJECT("Word.application")          &&调用word
EOLE.Documents.OPEN("&EFILENAME")              &&打开指定变量中的文件名的WORD文档
EOLE.VISIBLE=.T.
  ELSE                                         &&否则的话就为excel文档,就运行EXCEL来打开
EFILENAME=thisform.text1.value
EOLE=CREATEOBJECT("Excel.application")
EOLE.Workbooks.OPEN("&EFILENAME")
EOLE.VISIBLE=.T.
  ENDIF
问题是,当我按下这个按扭后,它总是不判断WORD文档,而是直接就去运行EXCEL来打开,这样的话,如果打开的是EXCEL文档倒是没问题,而如果是WORD文档,它就报错,然后退出程序了,很是郁闷,到底是哪里错了啊,我是个才学的小菜鸟,有哪位老师指点我一下吗?谢谢了。
搜索更多相关主题的帖子: 老师 文件 选择 
2009-09-08 11:29
sywzs
Rank: 10Rank: 10Rank: 10
来 自:辽宁
等 级:贵宾
威 望:15
帖 子:508
专家分:1725
注 册:2009-5-13
收藏
得分:10 
把 wjm=RIGHT(ALLTRIM(thisform.text1.Value),3)
改成 wjm=LOWER(RIGHT(ALLTRIM(thisform.text1.Value),3)) 试试。
2009-09-08 11:59
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:10 
应该是扩展名的大写小写字母的问题了。
EFILENAME=ALLTRIM(thisform.text1.Value)
do case
case upper(justext(efilename))="DOC"
  EOLE=CREATEOBJECT("Word.application")
  EOLE.Documents.OPEN("&EFILENAME")
  EOLE.VISIBLE=.T.
case upper(justext(efilename))="XLS"
  EOLE=CREATEOBJECT("Excel.application")
  EOLE.Workbooks.OPEN("&EFILENAME")
  EOLE.VISIBLE=.T.
otherwise
  messagebox('不是word文档,也不是excel文档')
endcase


[ 本帖最后由 Tiger5392 于 2009-9-8 12:19 编辑 ]

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2009-09-08 12:14
茵梦湖
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:31
帖 子:545
专家分:2180
注 册:2009-4-25
收藏
得分:0 
2楼和3楼均为正解~~~  但楼主用文本框取得文件名的方法并不好, 这容易输入错误或产生无效路径, 建议楼主直接用getfile()取得文件名~~~
 
按扭的Click代码如下:
程序代码:
lsfile =getfile("doc,xls","","",1," >> 请选定Word或Excel文档~")
if file(lsfile)
   declare INTEGER ShellExecute in shell32.DLL;
           INTEGER HWND, STRING,STRING lpszFile,STRING,STRING, INTEGER
   ShellExecute(0,"open",lsfile,0,0,1)
else
   messagebox('没有打开任何Word或Excel文档~')
endif


[ 本帖最后由 茵梦湖 于 2009-9-8 14:22 编辑 ]
2009-09-08 14:14
ynqhzgj
Rank: 2
等 级:论坛游民
帖 子:12
专家分:10
注 册:2008-12-11
收藏
得分:0 
谢谢各位老师帮忙,问题解决了,楼上三位老师的方法我都试了一遍,都可以通过。真的非常感谢!
2009-09-08 14:46
快速回复:选择打开文件出错的问题,请老师们帮忙。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022616 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved