| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1461 人关注过本帖
标题:怎么用VFP命令提取数据?
取消只看楼主 加入收藏
afdwxf
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2011-9-29
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:7 
怎么用VFP命令提取数据?
如下表A.dbf

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


如下表B.xls

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


求教各位高手,在VFP中如何用命令把B.xls表的2-8行数据添加到A.DBF表中(不要把B表的第一行也添加到A表中)
并指定"收货数量""结算金额""税额"为数值型取两位小数,"过账日期"为日期型,其他为字符型.
搜索更多相关主题的帖子: 如何 
2013-01-25 19:35
afdwxf
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2011-9-29
收藏
得分:0 
以下是引用tlliqi在2013-1-25 19:56:39的发言:

导入
import from B.lxs type xl8

import from B.lxs type xl5

USE 表.DBF
APPEND FROM B.lxs TYPE XL5 &&或XL8

这样会把B表第一行的内容也一起添加进去了,并且日期型的数据无法转换,显为空.
2013-01-25 20:21
afdwxf
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2011-9-29
收藏
得分:0 
回复 3楼 sdta
数值型和字符型的数据可以在原A表中设定,但日期型的数据就没法添加上去.而且第天都有好多结构相同的数据导进同一个DBF表中.
2013-01-25 20:32
afdwxf
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2011-9-29
收藏
得分:0 
以下是引用sdta在2013-1-25 20:20:30的发言:

先在EXCEL中设置数据的类型及小数位数,然后保存EXCEL中的修改,关闭EXCEL。
USE A表
APPEND FROM XXX.XLS FIELDS 字段名列表 TYPE XL5 &&字段名列表顺序要与EXCEL表中的顺序相同,如果只添加2-8行,可以将第一行暂时删除。
因为导入数据前必须判定B表中的数据是否已经存在A表中,如果已经存在就不可以重复添加,所以只能一行行来做判断,一行行添加.
2013-01-25 21:12
afdwxf
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2011-9-29
收藏
得分:0 
SELE C
USE C.DBF     &&临时表
ZAP   
APPEND FROM B.xls' TYPE XL8
GO 2
SELE A
USE A.DBF
    do while!EOF()
    SCATTER TO AFDWXF MEMO
    SELECT A
    LOCATE ALL FOR 物料凭证=C.物料凭证
        IF ! FOUND()
        GATHER FROM AFDWXF
        ENDIF
    SELECT C
    SKIP 1
    ENDD  
请各位大侠帮忙看一下,帮改进改进,非常感谢!!!     
2013-01-27 23:02
afdwxf
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2011-9-29
收藏
得分:0 

付上   B表
B.rar (9.67 KB)
2013-01-28 18:26
afdwxf
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2011-9-29
收藏
得分:0 
以下是引用cxzbzgz在2013-1-28 11:45:00的发言:

楼主所写的这段代码是用数组代换数据,然后再把数组追加在数据表的尾部,你的这段代码的问题是C表的数据库结构必须与A表完成相同,否则就会造成数据混乱。可以作如下修改:
SELECT 1
 USE A.DBF
  INDEX on 物料凭证 TO tlpz   &&以物料凭证做索引
  SELECT 2
   USE C     &&临时表
  ZAP   
   APPEND FROM B.xls TYPE XLS  &&追加电子表数据
    GO TOP   && 到数据表头
    DO while!EOF()
      m物料凭证=物料凭证     &&将每个字段赋值给变量
      m采购单位=采购单位
      m收货数量=收货数量
      m结算金额=结算金额
      m税额=税额
      m业务类型=业务类型
      m过帐日期=过帐日期      
    SELECT 1
      SEEK m物料凭证      
        IF EOF()      && 如果在A表中没有找到,就追加一条空记录,然后将变量的值替换字段
         APPEND BLANK
         REPLACE 物料凭证 WITH m物料凭证,采购单位 WITH m采购单位,收货数量 WITH m收货数量,;
         结算金额 WITH m结算金额,税额 WITH m税额,业务类型 WITH m业务类型,过帐日期 WITH m过帐日期
        ENDIF
    SELECT 2
    SKIP
    ENDD  
这段代码如果DBF表的字段"日期"为字符型的这时候是可以的,如果DBF表的字段"日期"为日期型就不可以了. 还有如果是N多字段,那代码是不是太多了点?
2013-01-28 18:57
afdwxf
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2011-9-29
收藏
得分:0 
回复 15楼 ycvf
A表B表C表的结构都一样的
2013-01-29 22:58
快速回复:怎么用VFP命令提取数据?
数据加载中...
 
   



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

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