标题:请教,select .... where 字段 in () 宏替换的问题
只看楼主
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
不太清楚你的具体情况
写代码是根据不同情况来写的

坚守VFP最后的阵地
2018-10-14 14:46
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
where inlist(ALLTRIM(信息名称),jj1,jj2,jj3,jj4,jj5,jj6)

坚守VFP最后的阵地
2018-10-14 15:05
fhxy123
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2018-9-5
得分:0 
   选择相应的复选框,来筛选数据
2018-10-14 15:27
fhxy123
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2018-9-5
得分:0 
回复 22楼 sdta
where inlist(ALLTRIM(信息名称),jj1,jj2,jj3,jj4,jj5,jj6)


这样显示的是所有数据
2018-10-14 15:33
wcx_cc
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:52
帖 子:352
专家分:1152
注 册:2015-10-2
得分:5 
给你一个例子参考,是不是这样的

tt.rar (2.36 KB)


[此贴子已经被作者于2018-10-14 17:03编辑过]

2018-10-14 16:50
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:5 
回复 24楼 fhxy123
local jj,jj1,jj2,jj3,jj4,jj5,jj6
jj1=thisform.check1.value
jj2=thisform.check2.value
jj3=thisform.check3.value
jj4=thisform.check4.value
jj5=thisform.check5.value
jj6=thisform.check6.value
jj = ""
jj = IIF(jj1=0,jj,IIF(EMPTY(jj),[allt(信息名称),"春"],jj + [,"春"]))
jj = IIF(jj2=0,jj,IIF(EMPTY(jj),[allt(信息名称),"夏"],jj + [,"夏"]))
jj = IIF(jj3=0,jj,IIF(EMPTY(jj),[allt(信息名称),"秋"],jj + [,"秋"]))
jj = IIF(jj4=0,jj,IIF(EMPTY(jj),[allt(信息名称),"冬"],jj + [,"冬"]))
jj = IIF(jj5=0,jj,IIF(EMPTY(jj),[allt(信息名称),"春夏"],jj + [,"春夏"]))
jj = IIF(jj6=0,jj,IIF(EMPTY(jj),[allt(信息名称),"秋冬"],jj + [,"秋冬"]))
if empty(jj)
   select * FROM 基础信息 INTO CURSOR ls
else
   select * FROM 基础信息 where INLIST(&jj) INTO CURSOR ls
endif

2018-10-14 22:06
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
查询按钮下代码
Local jj[6]
lcTj = ""
For i = 1 To 6
    lcCheck = "Check"+Str(i, 1)
    If ThisForm.&lcCheck..Value = 1
        jj[i] = ThisForm.&lcCheck..Caption
    Else
        jj[i] = ""
    EndIf
    lcTj = lcTj + Iif(Empty(jj[i]), "", ' OR Alltrim(信息名称)==' + "'"+jj[i] + "'")
EndFor
lcTj = Substr(lcTj, 5)
If Empty(lcTj)
    MessageBox("请选择查询内容")
    Return
EndIf
MessageBox(lcTj, 0, "查询条件")
Select * From ss Where &lcTj

结果


[此贴子已经被作者于2018-10-14 22:56编辑过]


坚守VFP最后的阵地
2018-10-14 22:11
liuxingang28
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山东济南
等 级:贵宾
威 望:47
帖 子:649
专家分:2156
注 册:2014-2-7
得分:5 
只要保证字符串中的每个项目都加上字符串定界符即可。
示例1:
cjj =  "[秋],[冬]"
sele * from 其他信息 where all(信息名称) in (&cjj)
示例2:
c1 = thisform.check1.caption
c2 = thisform.check2.caption
cjj = ""
if !empty(thisform.check1.value)
    cjj = cjj + ",[" + thisform.check1.caption + "]"
endif
if !empty(thisform.check2.value)
    cjj = cjj + ",[" + thisform.check2.caption + "]"
endif
cjj = subs(cjj,2)
sele * from 其他信息 where all(信息名称) in (&cjj)

特别提示:使用 select 语句的 in 子名时,要注意 set ansi on/off的设置,精确比较时,应采用 set ansi on,相当于 set exact on;不精确比较时,应采用 set ansi off(默认),相当于 set exact off

[此贴子已经被作者于2018-10-15 08:57编辑过]


泉城飞狐
2018-10-15 08:54
fhxy123
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2018-9-5
得分:0 
谢谢各位老大
2018-10-15 17:16
schtg
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:https://t.me/pump_upp
等 级:贵宾
威 望:67
帖 子:1355
专家分:2534
注 册:2012-2-29
得分:0 
向各位大佬学习,谢谢!
2018-10-15 18:18



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-490367-1-1.html




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

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