欢迎来到天天文库
浏览记录
ID:40709552
大小:148.19 KB
页数:7页
时间:2019-08-06
《ACCESS组合框示例及相关使用详解》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、ACCESS中组合框使用详解在ACCESS中,组合框最主要的应用在于减少用户输入数据的操作,直接用鼠标选取数据而不需要手工输入,如右图所示。一.组合框的行来源类型分为三种:表/查询;值列表;字段列表。表/查询——顾名思义,组合框的列表来源于表或者查询中的记录,用于显示比较多的列。有时候也可以是一句合法的SQL语句(实际就是查询),这在动态修改组合框显示的值时很有用。值列表——应用于可选项比较少,且内容固定的场合。比如输入“男/女”、“是/否”、“党员/团员/民主党派/群众”等。这时需要在行来源中直接输入内容,如下图。各个字符串要用“;”(英文分号)隔开。字段列表——列
2、出行来源中的表或查询中所有字段的名称。比较少用。二.组合框控件的常用属性限于列表——在组合框上的文本框部分能否输入不在列表中的其他值。如上图所示的文本框,由于限于列表属性为“是”,你只能选择“党员/团员/民主党派/群众”其中之一。如果是“否”,你可以手工在文本框中输入“外籍人员”等。绑定列——当组合框的数据源不是只有一列数据时需要确定绑定列。1绑定列在数据库中经常使用,比如常用的人事管理系统中有以下两个表:职称ID职称1助理工程师2工程师3高级工程师4助理经济师5经济师…………员工ID姓名性别部门职务职称ID……1101054胡男生产调度室4……1101055杨男副总
3、工2……1201006温男综合办公室副主任1…………………………………………当你要在窗体上输入职称字段时,你需要看见的是具体的职称名,而数据表中实际存放的是职称ID的数字,这时就需要使用绑定列为1(第一列)。如同例子程序中的“组合框1”窗体所示。列数——要显示几列。通常行来源中有几列就写几列。列标题——是否显示每个列的标题。见下图对比: 有列标题 无列标题列宽——当有多列时指定每列的宽度。方便显示更多数据,且在有绑定数字的列时更容易让用户看明白。列宽输入时直接输入数字,不用输入单位(在ACCESS简体中文版中默认单位是厘米),各列宽数字间
4、用“;”(英文分号)隔开。把数字列的列宽设为0,可以使数字列不显示出来,对比效果如下页图:2注:数据表中实际存放的还是职称ID(长整型数)。列表行数——在鼠标按下箭头时显示几行列表。默认是8,为了多显示几行可以改大一些。列表宽度——默认是“自动”,就是列表部分和上边的文本框一样宽。当列比较多时可以改大一些。如下图(组合框2窗体中员工姓名):限于列表——是或者否。若选“是”指文本框部分的内容只能在下面的列表中选择,不能出现列表内容之外的东东。如果手工输入了列表内容之外的东东,就会触发“不在列表框”事件并出现提示。若选“否”则可以手工在文本框部分输入任意内容。注意:当选择
5、多列数据作为组合框来源时,限于列表自动设置为“是”,且不可更改。3三.组合框编程1.为其他文本框赋值如例子程序中组合框窗体3中的船名英文组合框。在组合框中选择了船名英文之后,自动把船名中文和国际中英文字段填写。这是在组合框“船名英文”的“更新后事件”中编写如下代码实现的:PrivateSub船名英文_AfterUpdate()Me.船名中文=Me.船名英文.Column(1)Me.国籍中英文=Me.船名英文.Column(2)EndSub其中Me.船名英文.Column(1)是指组合框被选中的那行数据中第2列的值。注意:在使用Column(i)时,第1列i=0。这与绑
6、定列中第1列绑定列=1不同。2.自动伸展在“组合框1”窗体中输入新记录时,当用TAB键将光标移动到“职称”输入字段时,下拉列表自动伸展,不需要用鼠标按下拉箭头,方便输入。这是在组合框“职称ID”的“获得焦点事件”中编写如下代码实现的:PrivateSub职称ID_GotFocus()IfMe.NewRecordThenMe.职称ID.DropdownEndSubMe.NewRecord是当窗体输入新记录时为真。Dropdown就是组合框自动伸4展的方法。3.自动更新组合框列表内容在“组合框4”窗体的“州省”字段的组合框,会根据所选择的国家不同而出现不同的列表内容。这是
7、在“州省”字段组合框的“获得焦点”事件编写如下代码实现的:PrivateSub州省ID_GotFocus()'根据选择的国家显示州省'RowSource就是行来源'因为“Me.国家ID”的值是数字,所以要用STR函数转换为字符串才能运算Me.州省ID.RowSource="SELECT州省ID,州省FROMTab州省WHERE(国家ID="+Str(Me.国家ID)+")"EndSub初学者经常会问,“为什么不写成"SELECT州省ID,州省FROMTab州省WHERE(国家ID=Me.国家ID)"这样的形式?”其实在这样的SQL语句中,“Me.国家
此文档下载收益归作者所有