以下是引用伶伶320在2006-7-26 17:14:21的发言:
各位.我想请教你们一下,我用VFP做查询,比如给同一张表用check空间分别按时间,名称,属性,这三个查询,也就是说当check1.value=1时,我可以按时间查询,当check2.value=1时,我可以按名称查询,当check3.value=1时,我可以按属性查询,,当当check1.value=1 and check2.value=1 时,我可以按时间和名称一起查询,可是,我单个的都没有问题,关联查询的时候,也就是当check1.value=1 and check2.value=1 时按时间和名称一起查询时,我就怎么做都不对了,请问这个正确的代码应该是什么样子的,应该用什么词来连接同时满足2个或2个以上条件,最好可以举例告诉我啊,呵呵,谢谢啊!
假设表的字段至少有(时间 D,名称 C,属性 C),表单里有TEXT1输入要查询的时间,TEXT2为输入的名称,TEXT3为输入的属性,CHECK1为确定是否利用时间这个条件,余类推。还假设即使点击了CHECK2或CHECK3但对应的TEXT2或TEXT3的内容为空的时候也不用对应条件(也就是说只有TEXT2的内容不为空时,点击CHECK2才有用;TEXT3也一样).代码为:
SELECT 表
cExprL=".T."
IF THISFORM.CHECK1.VALUE=1
cExprL=cExprL+".AND.时间=CTOD(["+DTOC(THISFORM.TEXT1.VALUE)+"])"
ENDIF
IF THISFORM.CHECK2.VALUE=1 AND !EMPTY(THISFORM.TEXT2.VALUE)
cExprL=cExprL+".AND.名称=["+ALLTRIM(THISFORM.TEXT2.VALUE)+"]"
ENDIF
IF THISFORM.CHECK3.VALUE=1 AND !EMPTY(THISFORM.TEXT3.VALUE)
cExprL=cExprL+".AND.属性=["+ALLTRIM(THISFORM.TEXT3.VALUE)+"]"
ENDIF
BROWSE ALL FOR &cExprL