| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3153 人关注过本帖
标题:是不是VFP 9 在win7存在未知问题啊?这么简单的代码我都找不到问题原因。
只看楼主 加入收藏
aaaaaa
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:796
专家分:937
注 册:2012-9-4
收藏
得分:0 
6 楼的是有错误的。再试试看。

民工子弟学校22班团小组长阳光模特队长冲锋篮球队前锋小苹果合唱队领唱蓝天舞蹈队编舞
2016-04-20 16:53
琅拿度
Rank: 1
等 级:新手上路
帖 子:166
专家分:5
注 册:2016-4-7
收藏
得分:0 
以下是引用aaaaaa在2016-4-20 16:52:42的发言:

I 是保留字,A-J 都是保留字,比如:
Select 9 等同于 Select I
Use XXX.Dbf In I
这时候的 I 是既是保留字,又是变量,保留字有优先权。
你都在 9 工作区了打开 DBF 文件,后一个文件的打开,关闭了前一个已打开的文件。
是不是这个道理?

或者你要强调 I 是变量,这么改:
Use (a) In m.I

或者循环变量不要用 I,改用 II,或其他没有冲突的字符。

试试看


唉,这个问题搞了我两天,谢谢大家,头脑被搞晕了
2016-04-20 16:56
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
以下是引用琅拿度在2016-4-20 16:38:07的发言:

 
 
你的返回还是空白,不知道怎么回事,“in i”就会出问题,如果改成“i 0”就ok了,难道这个in 后面不能用变量吗?
vfp9可以
2016-04-20 17:01
琅拿度
Rank: 1
等 级:新手上路
帖 子:166
专家分:5
注 册:2016-4-7
收藏
得分:0 
以下是引用aaaaaa在2016-4-20 16:52:42的发言:

I 是保留字,A-J 都是保留字,比如:
Select 9 等同于 Select I
Use XXX.Dbf In I
这时候的 I 是既是保留字,又是变量,保留字有优先权。
你都在 9 工作区了打开 DBF 文件,后一个文件的打开,关闭了前一个已打开的文件。
是不是这个道理?

或者你要强调 I 是变量,这么改:
Use (a) In m.I

或者循环变量不要用 I,改用 II,或其他没有冲突的字符。

试试看


不行,Use (a&iic) In ii 这句还是发生错误,找不到别名 ii
2016-04-20 17:10
琅拿度
Rank: 1
等 级:新手上路
帖 子:166
专家分:5
注 册:2016-4-7
收藏
得分:0 
gzq=88
USE a1 IN gzq

估计是in后面不能跟变量了,因为 这个也是提示找不到别名 gzq
2016-04-20 17:13
aaaaaa
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:796
专家分:937
注 册:2012-9-4
收藏
得分:0 
Use xxx IN nWorkArea 命令在 FoxPro 2.x 就有该 In 子项的
我只加了 M. 前缀,试试看:

Clear
Close Databases
For i=1 To 5
    ic=Alltrim(Str(i))
    Select i
    a&ic='a'+ic+'.dbf'
    Use (a&ic) In m.i  && 加了 M. 前缀,其他的都没改动,没问题
Endfor
For i=1 To 5
    Select i
    Messagebox(Dbf(i))
Endfor

民工子弟学校22班团小组长阳光模特队长冲锋篮球队前锋小苹果合唱队领唱蓝天舞蹈队编舞
2016-04-20 17:34
aaaaaa
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:796
专家分:937
注 册:2012-9-4
收藏
得分:0 
看见没?
FoxPro 2.5B 都可以运行,FoxPro 没有 Messagebox(Dbf(i)) 函数,只改动了 ? Dbf(i)

图片附件: 游客没有浏览图片的权限,请 登录注册

民工子弟学校22班团小组长阳光模特队长冲锋篮球队前锋小苹果合唱队领唱蓝天舞蹈队编舞
2016-04-20 17:43
aaaaaa
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:796
专家分:937
注 册:2012-9-4
收藏
得分:3 
ii 版本,不加 M. 前缀:

Clear
Close Databases
For ii=1 To 5
    ic=Alltrim(Str(ii))
    * Select (ii)  && 这句多余了,有了也不影响
    a&ic='a'+ic+'.dbf'
    Use (a&ic) In (ii)
Endfor
For ii=1 To 5
    * Select (ii)  && 这句多余了,有了也不影响
    =Messagebox(Dbf(ii))
Endfor

结贴了吧,不讨论了。

民工子弟学校22班团小组长阳光模特队长冲锋篮球队前锋小苹果合唱队领唱蓝天舞蹈队编舞
2016-04-20 17:52
琅拿度
Rank: 1
等 级:新手上路
帖 子:166
专家分:5
注 册:2016-4-7
收藏
得分:0 
以下是引用aaaaaa在2016-4-20 17:34:54的发言:

Use xxx IN nWorkArea 命令在 FoxPro 2.x 就有该 In 子项的
我只加了 M. 前缀,试试看:

Clear
Close Databases
For i=1 To 5
    ic=Alltrim(Str(i))
    Select i
    a&ic='a'+ic+'.dbf'
    Use (a&ic) In m.i  && 加了 M. 前缀,其他的都没改动,没问题
Endfor
For i=1 To 5
    Select i
    Messagebox(Dbf(i))
Endfor


果然ok了,加个m.是什么意思啊?什么原因?
2016-04-20 18:02
aaaaaa
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:796
专家分:937
注 册:2012-9-4
收藏
得分:0 
9 楼不是说了吗,如果 I 既是变量名,又是某个保留字,此时有二义性,不加 M. 前缀的,I 就是保留字优先,加了 M. 前缀的,则变量优先。

比如:
Select I  -->选择 9 工作区

I = 1
Select I  -->也是选择 9 工作区

I = 1
Select (M.I)  -->此时选择 1 工作区

外婆的澎湖湾、

民工子弟学校22班团小组长阳光模特队长冲锋篮球队前锋小苹果合唱队领唱蓝天舞蹈队编舞
2016-04-20 18:40
快速回复:是不是VFP 9 在win7存在未知问题啊?这么简单的代码我都找不到问题原因 ...
数据加载中...
 
   



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

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