| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2183 人关注过本帖
标题:请教combo控件的一个问题
只看楼主 加入收藏
lwscjyb
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-8-9
收藏
 问题点数:0 回复次数:7 
请教combo控件的一个问题

最近我在试做一个小程序,在form1上,有两个控件,combo1,combo2,数据环境为两个表,部门信息,员工信息,

我的目的是combo1显示部门信息表中的部门字段,combo2显示当员工信息表中的部门字段与combo1值相等时的员工信息表中的所有员工姓名

我尝试做了一下,combo2刚开始时显示正确,随后报错,显示不能选定temp1表,我想可能是临时表已经存在的原故,再次操作时就有可能报错,我尝试将临时表关闭,则一开始就会报错,请各位大侠帮忙,不胜感激!

附相关代码

combo1的属性 rowsource="部门信息.部门",rowsourcetype=6

combo2的gotfocus 代码为:

IF !EMPTY(thisform.combo1.Value)
SELECT 300
SELECT 员工姓名 FROM 员工信息 WHERE ALLTRIM(员工信息.部门)=ALLTRIM(thisform.combo1.Value) INTO CURSOR tmp1
thisform.combo2.RowSource="tmp1"
thisform.combo2.RowSourceType= 6

ELSE
MESSAGEBOX("请选择部门",48,"提醒")
ENDIF

搜索更多相关主题的帖子: combo 控件 员工 字段 请教 
2006-08-09 22:10
linwm
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-7-18
收藏
得分:0 
在sele 300之前加上:

thisform.combo2.RowSource=""

2006-08-09 22:16
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 

我觉得你的问题很多。
(1)部门信息中的部门是一个多值字段,因此,你上面COMBO1的设置将会使部门的值在COMBO1中重复出现;
(2)在COMBO2中,临时表多次生成并打开,可能会遇到问题;
(3)假如你的目的仅仅是查询用途,则建议你在表单的INIT中打开表并设置好COMBO1的内容,而在COMBO1的INTERACTIVECHANGE中改变COMBO2的内容。

建议修改如下
(1)在FORM1.INIT()中的代码
CLOSE ALL
USE 部门信息
INDEX ON 部门 TO BM.IDX UNIQUE
GO TOP
PUBLIC BM
BM=部门
THISFORM.COMBO1.ROWSOURCETYPE=1
SCAN
THISFORM.COMBO1.ADDITEM(部门)
ENDSCAN
THISFORM.COMBO1.LISTINDEX=1
SET INDEX TO
ERASE BM.IDX
SET FILTER TO 部门=BM
GO TOP
THISFORM.COMBO2.ROWSOURCETYPE=1
SCAN
THISFORM.COMBO2.ADDITEM(员工姓名)
ENDSCAN
THISFORM.COMBO2.LISTINDEX=1
SET FILTER TO

(2)在COMBO1.INTERACTIVECHANGE()里的代码
BM=THISFORM.COMBO1.VALUE
SET FILTER TO 部门=BM
GO TOP
SCAN
THISFORM.COMBO2.ADDITEM(员工姓名)
ENDSCAN
SET FILTER TO
THISFORM.COMBO2.LISTINDEX=1


感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2006-08-09 22:37
lwscjyb
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-8-9
收藏
得分:0 
非常感谢Tiger5392的帮助,这一是我在网上获得的第一个帮助,我感到非常的荣幸
我做了一个小小的修改,请批评指正
combo2.lostfocus
thisform.combo2.clear

这样可以避免重复给combo2增加数据
2006-08-10 09:31
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
你可能没有很好地看我在3楼的程序的意思。尽量不要在COMBO2中有什么动作,因为COMBO2的内容与COMBO1有关,因此,COMBO1的任何改变直接影响COMBO2,而对COMBO2的任何操作都不影响COMBO2的内容,所以建议程序写在COMBO1中。

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2006-08-10 10:57
lwscjyb
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-8-9
收藏
得分:0 
我按照您的设计去做了,但现在又出现了一个新的问题,我在把combo2值添加入另一表时,第一个值会添加正确,但在选取第二个值以后的项时,添加入另一个表时,却显示空值,这是为什么呢?
2006-08-10 12:07
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
传上来看看

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2006-08-10 21:22
lwscjyb
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-8-9
收藏
得分:0 

后来我又检查了一遍,是我的错,combo2有一处代码未删除,您的程序没问题,谢了

2006-08-10 22:19
快速回复:请教combo控件的一个问题
数据加载中...
 
   



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

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