VFP查询表单制作 将一张表的内容通过一个表格控件查询出来,输入姓名就可以查询到表单上的其他内容 50
localcNamecName=alltrim(thisform.txtXM.value)select表1locatefor姓名=cNameiffound()sele表1...
local cName
cName=alltrim(thisform.txtXM.value)
select 表1
locate for 姓名=cName
if found()
sele 表1.学号,表1.会计缺勤次数,表1.高数缺勤次数,表1.英语缺勤次数,表1.计算机缺勤次数,表1.微观经济缺勤次数 from 表1 where 表1.姓名=cName order by 表1.学号 into cursor "ling" &&用sele语句将查询结果放入临时表
thisform.grid1.recordsource="ling" &&表格控件的数据源为temp这个临时表
else
messagebox("查无此记录")
endif
这是我遍的查询的代码
不知道哪里错了 点查询没反应 调试器里显示是姓名文本框对象是.F.
请知道怎么做的高手全程教我 实在是不会啊。。。 展开
cName=alltrim(thisform.txtXM.value)
select 表1
locate for 姓名=cName
if found()
sele 表1.学号,表1.会计缺勤次数,表1.高数缺勤次数,表1.英语缺勤次数,表1.计算机缺勤次数,表1.微观经济缺勤次数 from 表1 where 表1.姓名=cName order by 表1.学号 into cursor "ling" &&用sele语句将查询结果放入临时表
thisform.grid1.recordsource="ling" &&表格控件的数据源为temp这个临时表
else
messagebox("查无此记录")
endif
这是我遍的查询的代码
不知道哪里错了 点查询没反应 调试器里显示是姓名文本框对象是.F.
请知道怎么做的高手全程教我 实在是不会啊。。。 展开
2个回答
展开全部
cName=alltrim(thisform.txtXM.value)
看你的图,文本框的name应该是text1,所以上面换成
cName=alltrim(thisform.text1.value)
试试
看你的图,文本框的name应该是text1,所以上面换成
cName=alltrim(thisform.text1.value)
试试
更多追问追答
追问
换了还是没用
追答
表加入数据环境了吗,还有,表是不是和表单在同一目录,设置默认目录没有?
你sele语句写得好复杂,只有一个表,就不需要加表1.了
sele * from 表1 where 姓名=cName order by 学号 into cursor "ling"
展开全部
你的代码太复杂鸟。 使用 locate for 就不要使用 SELE 了
如果你的表的记录不多, 就不要使用 loca for 和sele sql 直接使用 set filter 命令 简单又直接
1 使用sql 命令是 查询按钮的CLICK 代码
if empty(thisform.txtXM.value)
retu && 如果没有输入姓名, 就直接返回
endif
local cName
cName=alltrim(thisform.txtXM.value)
sele 表1.学号,表1.会计缺勤次数,表1.高数缺勤次数,表1.英语缺勤次数,表1.计算机缺勤次数,表1.微观经济缺勤次数;
from 表1;
where 表1.姓名=cName ;
order by 表1.学号;
into cursor ling &&用sele语句将查询结果放入临时表 (临时表名称不需要引 号)
sele ling
if empty(ling.学号)
messagebox("查无此记录")
retu
endif
thisform.grid1.recordsourcetype=1
thisform.grid1.recordsource="" && 首先要置为空值
thisform.grid1.recordsource="ling" &&表格控件的数据源为temp这个临时表
thisform.grid1.refresh && 刷新一下
2 使用 set filter to
在表单的 INIT 事件中 设置 GRID 和表1的关联
thisform.grid1.recordsourcetype=1
thisform.grid1.recordsource=""
thisform.grid1.recordsource="表1"
查询按钮的CLICK 中的代码
if empty(thisform.txtXM.value)
retu && 如果没有输入姓名, 就直接返回
endif
local cName
cName=alltrim(thisform.txtXM.value)
sele 表1
set filter to allt(表1.姓名)==cName
thisform.grid1.refresh && 刷新一下
如果你的表的记录不多, 就不要使用 loca for 和sele sql 直接使用 set filter 命令 简单又直接
1 使用sql 命令是 查询按钮的CLICK 代码
if empty(thisform.txtXM.value)
retu && 如果没有输入姓名, 就直接返回
endif
local cName
cName=alltrim(thisform.txtXM.value)
sele 表1.学号,表1.会计缺勤次数,表1.高数缺勤次数,表1.英语缺勤次数,表1.计算机缺勤次数,表1.微观经济缺勤次数;
from 表1;
where 表1.姓名=cName ;
order by 表1.学号;
into cursor ling &&用sele语句将查询结果放入临时表 (临时表名称不需要引 号)
sele ling
if empty(ling.学号)
messagebox("查无此记录")
retu
endif
thisform.grid1.recordsourcetype=1
thisform.grid1.recordsource="" && 首先要置为空值
thisform.grid1.recordsource="ling" &&表格控件的数据源为temp这个临时表
thisform.grid1.refresh && 刷新一下
2 使用 set filter to
在表单的 INIT 事件中 设置 GRID 和表1的关联
thisform.grid1.recordsourcetype=1
thisform.grid1.recordsource=""
thisform.grid1.recordsource="表1"
查询按钮的CLICK 中的代码
if empty(thisform.txtXM.value)
retu && 如果没有输入姓名, 就直接返回
endif
local cName
cName=alltrim(thisform.txtXM.value)
sele 表1
set filter to allt(表1.姓名)==cName
thisform.grid1.refresh && 刷新一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询