回 帖 发 新 帖 刷新版面

主题:合并dbf的问题

各个单位导出同样类型的数据库,我想通过一个摁钮来选择合并到当前自己用的数据库,command1的click事件代码如下:(当前程序数据库名为zfmx)

fname=getfile('dbf')
if file(fname)
 if not used('zfmx')
  use zfmx in 0
 endif  
 IF NOT USED('&fname')
  USE &fname IN 0
 endif
  select zfmx
  insert into zfmx sele * from &fname
  CLOSE DATABASES
  Messagebox('数据合并成功',64,'系统提示')
  Select zfmx
  set order to 编号
  GO top
else
  Messagebox('用户已取消',64,'系统提示')
  return
ENDIF

在我自己的电脑上运行正常,在别人的电脑上却提示"命令中含有不可识别的命令或关键字",对方电脑上哪怕装了vfp9也是这样出错提示
请教各位,如何解决?

回复列表 (共8个回复)

沙发

路径问题,加上引号:
IF NOT USED('&fname')
  USE [color=FF0000]"[/color]&fname[color=FF0000]"[/color] IN 0
 endif

板凳

我试了不下7台电脑,我们单位的统统可用,别的单位却提示出错。好奇怪。另外把
use &fname in 0   这句删除掉也不行,最后发现问题出现在&号上,只要有这个出现,就说不能识别的命令

3 楼

加上引号也不行吗?
USE "&fname" IN 0

4 楼

问题出在:宏代换没有结束符

IF NOT USED('&fname')改为:
IF NOT USED('&fname.')

有点奇怪,是不是多此一举了?这个表不需要打开

另一个原因:打开的文件路径中含有空格,将&fname改为(fname)试试

5 楼

用 USE (fname) IN 0 试试。

6 楼

加上引号解决问题,只是奇怪为什么有些电脑不加引号也可以,有些不行,但是加上引号,全都可以^_^

7 楼

正如4楼所言,路径中包含空格时,不加引号就会出错。
你查看一下出错的电脑,一定是软件安装的文件夹名称中有了空格。

8 楼

[quote]加上引号解决问题,只是奇怪为什么有些电脑不加引号也可以,有些不行,但是加上引号,全都可以^_^[/quote]
就是4楼和7楼说的,文件路径中包含空格造成的(这实际上是长文件名如何描述的问题),最大的可能是它们把文件放在桌面上了!你可以试一下XP的开始运行,可以看到系统自动生成的全部是加了引号的。另外此问题并不仅仅出现在VFP中

我来回复

您尚未登录,请登录后再回复。点此登录或注册