VFP如何查找两个表中相同的数据--等VFP高手

表1
A B C D
姓名 编号 年龄 薪水
赵 A101 20
李 A102 21
孙 A105 22
王 A108 23
表2
A B C D
姓名 编号 年龄 薪水
赵 A101 20 2000
钱 A102 22 2002
孙 A105 21 2001
王 A108 23 2003
比如说我在表2中找到一条与表1中ABC列都相同的数据,然后把这样所有的数据都显示出来,并且把表2中D列符合条件的数据 返回到表1 D列
这样该如何操作!!
两个表都是EXCEL的表
最好把所有操作步骤和程序都告诉下 谢谢

1、新建表1、表2,结构与EXCEL表结构一致,并执行以下代码将EXCEL表的内容导入表1.DBF和表2.dbf。
objExcel = CreateObject("Excel.Application") &&创建一个EXCEL应用程序实例
wjm=getfile("xls","文件名","确定",0,"选择EXCEL表1")
IF EMPTY(wjm)
RETURN
ENDIF
WAIT wind '正在导入商品信息,请稍候……'nowait at 16,53
objExcel.Workbooks.Open(wjm) &&调用workbooks(Microsoft Excel 应用程序中当前打开的所有 Workbook 对象的集合。)对象的open方法程序来打开指定的文件,并为打开的文件创建一个新的工作簿
LOCAL nrow as Number ,i as Number
i=0
IF objexcel.cells(1,1).value="姓名"
aa=2
ELSE
aa=1
ENDIF
DO WHILE .t.
i=i+1
IF !VARTYPE(objexcel.cells(i,1).value)="C"
nrow=i-1
EXIT
ENDIF
ENDDO
LOCAL arecord(4)
sele 表2
FOR s=aa TO nrow
arecord(1)=objexcel.cells(s,1).value&&A
arecord(2)=objexcel.cells(s,2).value&&B
arecord(3)=objexcel.cells(s,3).value&&C
arecord(4)=objexcel.cells(s,4).value&&D
ENDFOR
INKEY(3)
objexcel.quit
RELEASE objexcel
messagebox("记录添加完毕",48,"系统提示")
WAIT CLEAR

同样方法将第二个EXCEL表导入到表2.dbf

2、在两个DBF表中进行查询
use 表1.dbf
use 表2.dbf
select 表2
go top
do while not eof()
if allt(姓名)==allt(表1.姓名) and allt(编号)==allt(表1.编号) and 年龄=表1.年龄
xinshui=薪水
select 表1
locat for allt(姓名)==allt(表2.姓名) and allt(编号)==allt(表2.编号) and 年龄=表2.年龄
replace 薪水 with xinshui
endif
select 表2
skip
enddo

3、如果要显示出所有符合条件的数据,可运行下列命令:
select * from 表1 where not empty(薪水) into cursor tmp
select tmp
browse
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-03-19
第2个回答  2010-03-19
use aa in 1
use bb in 2
sele aa
go top
do while !eof()
sele bb
LOCATE ALL FOR A+B+C==aa.A+aa.B+aa.C &&注意字段数据类型,自己转换
IF FOUND()
REPLACE aa.D WITH D
ENDIF
sele aa
SKIP
ENDDO
SET FILTER TO !EMPTY(D)
BROWSE