| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 444 人关注过本帖
标题:请教删除指定值记录
只看楼主 加入收藏
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:305
专家分:0
注 册:2014-4-10
结帖率:73.44%
收藏
已结贴  问题点数:20 回复次数:7 
请教删除指定值记录
想删除字段中有指定数值的记录,但不成功,请教先生指点,谢谢(代码及表在附件中
删除指定值.rar (1.62 KB)
搜索更多相关主题的帖子: 记录 
2015-03-24 19:27
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
把表中各字段的数据类型全部改为数值型(数据类型为整型,数据清除后,仍然显示0,与原有数据中的0不好区分)
程序代码:
VFP9代码
Select * From 表3 Into Cursor Test ReadWrite
Scan
   For lnI=1 To Fcount()
       Blank Fields (Field(lnI)) For InList(Evaluate(Field(lnI)),2,-1,-3,-5,-9)
   EndFor 
EndScan
Browse 

坚守VFP最后的阵地
2015-03-24 19:55
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:305
专家分:0
注 册:2014-4-10
收藏
得分:0 
回复 2楼 sdta
先生您好,这样运行下来想删除的(对有指定数值的记录)记录(整一行)还是没有删除啊(原100条记录,拷贝后的还是100条记录),请先生指教,谢谢
2015-03-24 20:41
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:305
专家分:0
注 册:2014-4-10
收藏
得分:0 
回复 2楼 sdta
先生代码我修改了下,运行没通过是否是我修改的缘故,代码如下

Select * From 表3 Into Cursor Test ReadWrite
Scan
   For lnI=1 To Fcount()
       Blank Fields (Field(lnI)) For InList(Evaluate(Field(lnI)),2,-1,-3,-5,-9)
   EndFor
ENDSCAN
SELECT TEST
COPY TO TEST
USE TEST
Browse
2015-03-24 20:53
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:305
专家分:0
注 册:2014-4-10
收藏
得分:0 
回复 2楼 sdta
哦,先生我核对了下表3和表TEST,运行您的代码后是将含有2、-1、-3、-5、-9的字段中的值成为“0”了,而我的要求是想要:若某一条记录中含有2、-1、-3、-5、-9中的一个或几个时,将整条记录(或叫做一行)删除掉,这样运行下来表TEST的记录数肯定小于表3的记录数(因表3的字段值中有许多的士、-1、等啊),谢谢先生
2015-03-24 21:02
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:10 
以下是引用fdxxhjc在2015-3-24 21:02:10的发言:

哦,先生我核对了下表3和表TEST,运行您的代码后是将含有2、-1、-3、-5、-9的字段中的值成为“0”了,而我的要求是想要:若某一条记录中含有2、-1、-3、-5、-9中的一个或几个时,将整条记录(或叫做一行)删除掉,这样运行下来表TEST的记录数肯定小于表3的记录数(因表3的字段值中有许多的士、-1、等啊),谢谢先生

可将清零改为打删除标记。
或写个检测删除条件函数,执行DELETE ALL:
程序代码:
CLEAR
SET TALK OFF
SET SAFETY OFF
USE 表3.dbf
COPY TO 表4.dbf
USE 表4.dbf
DELETE ALL FOR _Delete(FCOUNT())
PACK
GO TOP 
BROWSE
USE
RETURN

FUNCTION _Delete(nFCount)
    LOCAL i
    FOR i = 1 TO nFCount
        IF INLIST(EVALUATE(FIELD(i)), -1,-3,-5,-9,2) 
            RETURN .T.
        ENDIF
    ENDFOR
    RETURN .F.
ENDFUNC


[ 本帖最后由 吹水佬 于 2015-3-24 21:22 编辑 ]
2015-03-24 21:17
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:10 
Select * From 表3 Into Cursor Test ReadWrite
Delete For InList(Evaluate(Field(lnI)),2,-1,-3,-5,-9)
Browse For Deleted()=.T.

坚守VFP最后的阵地
2015-03-24 21:44
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
要学会举一凡三,多看看帮助文件相关的内容

坚守VFP最后的阵地
2015-03-24 21:49
快速回复:请教删除指定值记录
数据加载中...
 
   



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

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