标题:vfp中怎么将一个表中的记录插入到另一个表中满足条件的指定记录前面?
只看楼主
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:0 
以下是引用浔度1在2017-6-7 10:30:52的发言:

也是可以的。但是因为需要插入的记录数是不确定的。觉得这样处理的话会麻烦些。也有可能是我还没找到方法…

没有不确定的,只要你在插入的瞬间,就确定了。
2017-06-07 11:17
浔度1
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2015-10-9
得分:0 
回复 8楼 mywisdom88
谢谢版主。今天又试了一下,插入是可以了,但是还是不知道怎么循环插入数据。试过很多种方法,都没成功,也还没找到原因…
2017-06-07 18:49
浔度1
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2015-10-9
得分:0 
新建文件夹.rar (1.01 KB)
请各位大神再帮忙看看:如附件示例,我想使用循环,把temp2表中的记录,按顺序依次替换temp1表中的空白行(这里temp2表中的记录只有2条,但记录数其实是不确定的)。怎样才能实现呢?新手一枚,现在比较纠结这个循环的写法....
2017-06-07 20:48
wangzhiyi
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:366
专家分:684
注 册:2014-4-9
得分:0 
以下是引用浔度1在2017-6-7 20:48:03的发言:

请各位大神再帮忙看看:如附件示例,我想使用循环,把temp2表中的记录,按顺序依次替换temp1表中的空白行(这里temp2表中的记录只有2条,但记录数其实是不确定的)。怎样才能实现呢?新手一枚,现在比较纠结这个循环的写法....

你的想法很混乱,你到底是想把TEMP2的记录全部插入到TEMP1表中符合条件的记录前面,还是把表2的记录依次在表1中查找条件记录,一条条的插入。
2017-06-08 08:46
浔度1
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2015-10-9
得分:0 
回复 14楼 wangzhiyi
不好意思,现在就是想把temp2的记录依次替换到掉temp1中的空白行
2017-06-08 09:28
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
换个思路可以很好的解决问题,为什么非要插入到符合条件的记录前,就不能重新建一个表吗

坚守VFP最后的阵地
2017-06-08 10:04
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
以下是引用浔度1在2017-6-6 13:59:49的发言:

各位大神:如题,比如在表temp1中,我需要在所有图号值为1的记录前按顺序地依次插入表temp2的各条记录,怎样能实现呢?(注:temp1和temp2表结构一致,图号为表的一个字段,前期已做处理,要求temp2表的记录数和temp1表中图号值为1的记录数相等)

图号字段的值有1吗,不要信口开河啊

坚守VFP最后的阵地
2017-06-08 10:08
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
插入法效率低,尤其是数据大时,能不用就不用。
2017-06-08 10:10
浔度1
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2015-10-9
得分:0 
回复 17楼 sdta
不好意思,是序号为1
2017-06-08 10:42
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
程序代码:
CLEAR
SET SAFETY OFF
SELECT * FROM TEMP1 WHERE .F. INTO TABLE TEMP3
SELECT RECNO() N FROM TEMP1 WHERE VAL(序号)=1 INTO TABLE TT
INSERT INTO TT VALUES (RECCOUNT("temp1")+1)
SELECT TT
GO TOP
N1=N
SCAN FOR RECNO()>1
    INSERT INTO TEMP3 SELECT * FROM TEMP2
    INSERT INTO TEMP3 SELECT * FROM TEMP1 WHERE VAL(编号)>=N1 AND VAL(编号)<TT.N
    N1=TT.N
ENDSCAN
SELECT TEMP3
BROWSE
CLOSE DATABASES
ERASE TEMP3.DBF
ERASE TT.DBF

是不是这种效果

坚守VFP最后的阵地
2017-06-08 10:53



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-477683-1-1.html




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

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