| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3136 人关注过本帖
标题:VFP对EXCEL读操作,如何防止用户另外启动EXCEL而造成错误。
只看楼主 加入收藏
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11794
专家分:43421
注 册:2006-5-13
收藏
得分:0 
这个不是问题。问题是如果用户之前没有启动EXCEL,在VFP打开EXCEL文件后才启动EXCEL,此时可能是使用了VFP打开EXCEL文件的进程,从而造成VFP读入的数据与单元格的值不一致,造成数据错误,甚至会因为数据类型不一致而造成保存数据到表中发生错误。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2012-05-07 07:28
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
操作系统会保证同一份文档在同一时间只能有一个用户可以编辑它,不会影响数据的。你说的会影响数据,多数是在新建文件时未命名的时候会出现,后保存的那个覆盖早保存的那个。

授人以渔,不授人以鱼。
2012-05-07 07:29
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11794
专家分:43421
注 册:2006-5-13
收藏
得分:0 
楼上可能还不清楚我的问题。我的问题是:在VFP对EXCEL文件进行读操作时,用户打开了EXCEL文件(不一定是与VFP同一个文件)时,VFP读入的数据会与实际数据不一致,从而产生错误甚至会出错中断程序。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2012-05-07 07:35
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用hu9jj在2012-5-7 07:28:57的发言:

这个不是问题。问题是如果用户之前没有启动EXCEL,在VFP打开EXCEL文件后才启动EXCEL,此时可能是使用了VFP打开EXCEL文件的进程,从而造成VFP读入的数据与单元格的值不一致,造成数据错误,甚至会因为数据类型不一致而造成保存数据到表中发生错误。

如果VFP打开的文件处于编辑状态,那么后来用户无论以什么方式再打开同一个文件,都不可能修改得到里面的数据,不会影响VFP的读写操作。外面的用户根本不可能用得到VFP启动的Excel进程。我看你这是在VFP中打开了文件之后,切换到Excel中进行编辑操作了吧?解决的办法是:你在VFP中读Excel文档的数据,就不要令Excel进程的Visible=.T.,在后台暗中读数据,用户也不至于用任务管理器去刻意切换到那个进程去——非要这样显然是故意搞破坏。

读数据的时候,读就好了,呈现Excel的界面让人编辑干什么。

授人以渔,不授人以鱼。
2012-05-07 07:38
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用hu9jj在2012-5-7 07:35:43的发言:

楼上可能还不清楚我的问题。我的问题是:在VFP对EXCEL文件进行读操作时,用户打开了EXCEL文件(不一定是与VFP同一个文件)时,VFP读入的数据会与实际数据不一致,从而产生错误甚至会出错中断程序。

不是同一个文件,何来的VFP读入的数据与实际数据不一致?你两个文件有关联呀?VFP在读A,你打开B,A会受B的影响?我始终不明白你这个操作是用什么方式弄得出来的。

[ 本帖最后由 TonyDeng 于 2012-5-7 07:41 编辑 ]

授人以渔,不授人以鱼。
2012-05-07 07:39
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11794
专家分:43421
注 册:2006-5-13
收藏
得分:0 
以下是引用TonyDeng在2012-5-7 07:39:35的发言:


不是同一个文件,何来的VFP读入的数据与实际数据不一致?你两个文件有关联呀?VFP在读A,你打开B,A会受B的影响?我始终不明白你这个操作是用什么方式弄得出来的。
是这样的情况。只要是在VFP读EXCEL数据时用户打开任意一个EXCEL文件,就会影响到VFP读入的数据出错。而VFP读数据之前打开的EXCEL文件进行操作则不会影响到VFP读数据。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2012-05-07 07:54
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11794
专家分:43421
注 册:2006-5-13
收藏
得分:0 
这种情况是在VFP对EXCEL文件进行长时间操作时会出现。一般情况下程序在几秒钟内结束了对EXCEL文件的操作,用户还来不及另外打开EXCEL文件。只有程序对EXCEL文件的操作时间有十几秒甚至几十分钟时,用户才有时间去打开新的EXCEL文件,从而导致程序读数据出错。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2012-05-07 08:26
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2202
专家分:3862
注 册:2007-4-27
收藏
得分:0 
我的实践体会是:VFP打开了EXCEL进程,让其在读取E表的数据,此时我双击了另一个E表打开,关闭,导致意外。当启动EXCEL,用文件下的打开来操作是没影响的,即没意外发生的。

只求每天有一丁点儿的进步就可以了
2012-05-07 12:07
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9819
专家分:27071
注 册:2012-2-5
收藏
得分:15 
回复 16楼 hu9jj
既然提示用户在操作前关闭EXCEL,就不会再出现你所说的问题。如果用户置提示不顾,那用户是在自找麻烦。
还有个办法,就是隐藏鼠标的光标,等VFP操作完EXCEL后,再显示鼠标的光标

[ 本帖最后由 sdta 于 2012-5-7 12:26 编辑 ]

坚守VFP最后的阵地
2012-05-07 12:21
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
如果是16、17楼这样的情况,应该是Excel的bug了。通常,在本地单机,同一个用户明知有进程在操作Excel表,最好避免再启动Excel(但我交给别人用的程序从来没报告过这样的现象,而他们是大量使用Excel的场合);若在网络共享模式下,VFP操作Excel表时,最好先把网络上的Excel表复制到本地操作。

授人以渔,不授人以鱼。
2012-05-07 12:47
快速回复:VFP对EXCEL读操作,如何防止用户另外启动EXCEL而造成错误。
数据加载中...
 
   



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

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