以文本方式查看主题

-  易表在线答疑  (http://egrid2000.com/dvbbs/index.asp)
--  用户社区  (http://egrid2000.com/dvbbs/list.asp?boardid=2)
----  求助:记录匹配  (http://egrid2000.com/dvbbs/dispbbs.asp?boardid=2&id=5904)

--  作者:lexound
--  发布时间:2007/1/10 16:57:00
--  求助:记录匹配
在下是个菜鸟,有以下问题请教各位高手:
A表和B表为父子关系,往B表输入数据时,根据第一列的内容在A表中查找相关记录,如果记录存在,则将A表内容自动添加到B表,如果没有记录,则将B表记录自己添加到A表,请问如何实现.
拜托了
--  作者:yangming
--  发布时间:2007/1/10 17:01:00
--  
一、FindRow
在指定的表、指定的列中查找指定内容,并返回符合条件的行的行号,如果没有找到符合条件的行,则返回0。

语法:
FindrRow(Grid,CompareCol,CompareMode,CompareValue,CompareCol,CompareMode,CompareValue,......,Position)

Grid         在表中进行查找,可以用表名表示,也可以用位置表示。
CompareCol   进行比较的列,可以用列名称表示,也可以用位置表示。
CompareMode  比较方式,包括=、>、<、>=、<=、<>、Like、Instr共8种比较方式。
CompareValue 比较值
Position     这个参数决定返回第几个符合条件的行的数据,如果省略,则返回第一个符合条件的行中,如果设为-1,则返回最后一个符合条件的行

可以设置多个比较条件,从第三个参数开始,每三个参数组成一个比较条件。如果比较方式选择的是Instr,则进行包含查询;如果比较方式选择"Like",则可以在比较值中使用通配符进行类似查询。

例子:
FindRow("订单","客户","=","CS01")
返回订单表中CS01客户的第一个订单的行号。

FindRow("订单","数量","客户","=","CS01","产品","=","PD01",2)
查找订单表中CS01客户第二次订购产品PD01的订单,并返回该订单的行号。

二、AddRow
在指定的表中增加一行,而且可以设置新增行的内容。

语法:
AddRow(Grid, ColList, Value,Value... )
Grid      指定表,可以用表名,也可以用表位置表示
ColList   指定列,如果有多列,可以逗号隔开,例如“编号,单价”
Value     一系列的值,用于给Collist中指定的列赋值。

例如:AddRow("订单明细","编号,单价",1000,0.85)
表示在订单明细表增加一行,新增行的编号和单价的值分别为设为1000和0.8