有关查询的问题!!很急!!

phoenixsoft 2002-12-04 04:52:13
1.我建了一个表单,上面加了一个文本框text1,一个按钮,和一个表格控件grid1。该按钮的click 事件代码如下(Fzrzl.yhdw 是表Fzrzl中的字段):
SELECT *;
FROM 产品售后管理系统!fzrzl;
WHERE Fzrzl.yhdw = thisform.text1.value;
INTO cursor temp

我将grid1的recordsource设为temp行吗?如果不行,那如何将临时表temp的内容输出到这个表单上的表格控件grid1中去呢?

2.我的问题的实质是如何将查询的结果输出到表单中的表格控件中,说得最好详细些,多提示一下代码怎么写,因为我是新手。
...全文
32 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
newfang 2002-12-09
  • 打赏
  • 举报
回复
怎么这么长时间了还没结…………???
JadyZhu 2002-12-09
  • 打赏
  • 举报
回复
你将Text1的输入格式设定为"数值"(点击文本框右键,生成器,选择数值型)然后:
filterExp='tzdh=thisform.text1.value'
sele kj
set filter to &filterExp

或者

filterExp='tzdh=val(thisform.text1.value)'
sele kj
set filter to &filterExp

试一下
phoenixsoft 2002-12-09
  • 打赏
  • 举报
回复
to JadyZhu(Jady Zhu)

分我可以另外给你加,不过你的办法不行啊!
JadyZhu 2002-12-09
  • 打赏
  • 举报
回复
通过以下方式设定:
filterExp='tzdh=allt(thisform.text1.value)'
sele kj
set filter to &filterExp

要不就会出现你说的问题.别忘记给分啦 : )
775bb 2002-12-09
  • 打赏
  • 举报
回复
自己考虑清楚,把问题写详细一点,我等你。
phoenixsoft 2002-12-09
  • 打赏
  • 举报
回复
各位高手帮帮忙,我在线等待。
phoenixsoft 2002-12-09
  • 打赏
  • 举报
回复
我有个新问题:
我在建表时将表kj的tzdh字段设为整型(好像改为数值型也不行),我在一个表单中建了一个文本框,想通过文本框输入值来查询,即:
select kj
set filter to tzdh=allt(thisform.text1.value)

运行时出现“操作符/操作数类型不匹配”的错误,这是什么意思?该怎么解决啊?
mudong 2002-12-06
  • 打赏
  • 举报
回复
应该可以
总共三个环节
1.更换条件(text1输入新的值)
2.筛选数据(那条select语句)
3.显示数据(指定recordsource)
请检查一下
如果不行、按钮的最后加一句:
thisform.refersh
JadyZhu 2002-12-06
  • 打赏
  • 举报
回复
1.你先对应你的临时表设计好表格控件,比如中文标题,列宽,行距等;
2.设定表格数据源为临时表;
3.你查询和重新设定表格数据源时,将表格的ControlSource=null;
4.重设条件再次查询结果;
5.重新设定表格数据源为临时表,刷新表;

这样,你的表格就不会出现空白和走样,重设条件进行再次查询并显示结果.

phoenixsoft 2002-12-06
  • 打赏
  • 举报
回复
to mudong(木东)
可以查了,但为什么只查了一次以后temp1中的数据就固定了呢,我想要多次查询啊!
mudong 2002-12-05
  • 打赏
  • 举报
回复
比如grid, 你可以在设计的时候修改它的属性recordsource, 也可以在运行的时候指定 thisform.grid1.recordsource=tblname
说适当的时候是说 the table or a cursor 生成以后、指定才有意义。当然这是多余的话。
hfysw 2002-12-05
  • 打赏
  • 举报
回复
要随时生成新的表格数据,需要先锁屏然后生成新的表格数据再解锁。否则程序是正确的也有数据但是表格就是一片空白。
phoenixsoft 2002-12-05
  • 打赏
  • 举报
回复
to mudong(木东)

你说的适当的地方、适当的时候指什么,能说得具体点吗?



lliang0488 2002-12-05
  • 打赏
  • 举报
回复
先在 Form 的 Init 事件中創建一個cursor
例如:
create cursor temp(pono c(10),matcode c(10),matname c(20),price n)
把 Grid1 的 recordsource 設為 temp ,recordsourcetype 為 1(alias)
再在按鈕事件上添上你的代碼就行了
關閉光標(cursor) 用 use in temp 或 zap in temp 即可把 temp里的數据清空
phoenixsoft 2002-12-05
  • 打赏
  • 举报
回复
to newfang(方方):

不好意思,我把“refresh”打成“refersh”了。
JadyZhu 2002-12-05
  • 打赏
  • 举报
回复
newfang(方方)说的方法应该可以!
不过你之前得设置表单的数据环境,
添加表产品售后管理系统!
mudong 2002-12-05
  • 打赏
  • 举报
回复
如果你希望 text,grid 显示某张表的数据、应该在适当的地方、适当的时候说明这一点。
phoenixsoft 2002-12-05
  • 打赏
  • 举报
回复
大概就是这个意思,但也不一定是刷新表格,我想有两种情况吧:
1.用查询结果将这个表单的表格刷新
2.将查询结果输出到另一个表单中的表格中

我的问题就是不知该怎么编查询按钮的代码。

我照你说的那样写怎么不对啊,弹出程序错误的对话框,显示“找不到属性
refresh。”
mudong 2002-12-05
  • 打赏
  • 举报
回复
步骤1可以先不考虑。
2.查询按键代码改为
select *;
from fzrzl;
where fzrzl.yhdw == thisform.text1.value;
into cursor Temp1
thisform.recordsource='temp1'

如果不行、检查以下 temp1 的内容
phoenixsoft 2002-12-05
  • 打赏
  • 举报
回复
不行啊!我是这样做的:
1.在grid1的init event事件中加入代码:
create cursor temp1(yhdw c(40),dwdz c(50),fzrxm c(10),fzrzw
c(20),szbm c(20),fzrdh c(20)) ---(和表fzrzl的字段设置一样);
将grid1的recordsource属性设为temp1;
recordsourcetype设为1;
2.查询按键代码为:
select *;
from fzrzl;
where fzrzl.yhdw == thisform.text1.value;
into cursor Temp1

结果:
运行时状态栏提示找到数据,但grid1的显示是一片空白。
加载更多回复(4)

2,699

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧