查询按钮的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 不知你明白了吗,再重申一次,宏引用最好是命令或表达式,不能直接对值进行引用.