VFP select的宏替换问题

来源:百度知道 编辑:UC知道 时间:2024/05/24 06:33:17
查询按钮的click代码是:
local x
x=alltrim(thisform.text1.value)
select * from 学生信息表;
where alltrim(学号)=&x;
into cursor lxx
thisform.grid1.recordsource="lxx"
thisform.refresh

执行之后出了问题(问题如下图)
谢谢
去掉&之后可以执行,但是我想试一下宏替换

注意,宏在VFP中的定义与你想的不一样.
在你的程序中,X=学号,是字符型没错,但是学号本身是数字
&X在引用时的意思将成为数字,所以出错,成为操作数不匹配.
一般在进行宏引用时,都是进行表达式的引用,如
X="ALLTRIN(学号)='"+TRIM(THISFORM.TEXT1.VALUE)+"'"
这时X的值可能就是ALLTRIN(学号)='2008102020103'
select * from 学生信息表;
where &x.;
into cursor lxx
就是指
select * from 学生信息表;
where ALLTRIN(学号)='2008102020103';
into cursor lxx
不知你明白了吗,再重申一次,宏引用最好是命令或表达式,不能直接对值进行引用.

就直接用:
〔where alltrim(学号)=x;〕试试