设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1094|回复: 1
打印 上一主题 下一主题

怎样自动填写?

[复制链接]
跳转到指定楼层
1#
发表于 2003-4-17 06:17:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
怎样自动填写?
比如填写完ID后自动填写另一个表相关记录的数据(对不起,纯粹是重发帖子。但是我搜遍了没有找到)。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2003-4-17 22:19:00 | 只看该作者
用组合框,完全解决了!
自己搜索组合框!还有有人写过份完整的使用办法,自己变通一下就出来了!
ACCESS中组合框使用详解
刘小军

本文详细讲述了ACCESS窗体中组合框的各种属性和使用方法,适用于ACCESS 97/2000/XP等各个版本。这是为初学者使用的教程,其中难免有疏漏之处,请大家谅解。另外,本教程配有附带的例子程序,由ACCESS 2000简体中文版编写。
在ACCESS中,组合框最主要的应用在于减少用户输入数据的操作,直接用鼠标选取数据而不需要手工输入,如右图所示。
一.组合框的行来源类型分为三种:表/查询;值列表;字段列表。
表/查询——顾名思义,组合框的列表来源于表或者查询中的记录,用于显示比较多的列。有时候也可以是一句合法的SQL语句(实际就是查询),这在动态修改组合框显示的值时很有用。
值列表——应用于可选项比较少,且内容固定的场合。比如输入“男/女”、“是/否”、“党员/团员/民主党派/群众”等。这时需要在行来源中直接输入内容,如下图。各个字符串要用“;”(英文分号)隔开。

字段列表——列出行来源中的表或查询中所有字段的名称。比较少用。
二.组合框控件的常用属性
限于列表——在组合框上的文本框部分能否输入不在列表中的其他值。如上图所示的文本框,由于限于列表属性为“是”,你只能选择“党员/团员/民主党派/群众”其中之一。如果是“否”,你可以手工在文本框中输入“外籍人员”等。
绑定列——当组合框的数据源不是只有一列数据时需要确定绑定列。绑定列在数据库中经常使用,比如常用的人事管理系统中有以下两个表:
职称ID        职称
1        助理工程师
2        工程师
3        高级工程师
4        助理经济师
5        经济师
……        ……

员工ID        姓名        性别        部门        职务        职称ID        ……
1101054        胡        男        生产调度室                4        ……
1101055        杨        男                副总工        2        ……
1201006        温        男        综合办公室        副主任        1        ……
……        ……        ……        ……        ……        ……        ……
当你要在窗体上输入职称字段时,你需要看见的是具体的职称名,而数据表中实际存放的是职称ID的数字,这时就需要使用绑定列为1(第一列)。如同例子程序中的“组合框1”窗体所示。
列数——要显示几列。通常行来源中有几列就写几列。
列标题——是否显示每个列的标题。见下图对比:
??
????有列标题?????????????无列标题
列宽——当有多列时指定每列的宽度。方便显示更多数据,且在有绑定数字的列时更容易让用户看明白。列宽输入时直接输入数字,不用输入单位(在ACCESS简体中文版中默认单位是厘米),各列宽数字间用“;”(英文分号)隔开。
把数字列的列宽设为0,可以使数字列不显示出来,对比效果如下页图:


注:数据表中实际存放的还是职称ID(长整型数)。
列表行数——在鼠标按下箭头时显示几行列表。默认是8,为了多显示几行可以改大一些。
列表宽度——默认是“自动”,就是列表部分和上边的文本框一样宽。当列比较多时可以改大一些。如下图(组合框2窗体中员工姓名):

限于列表——是或者否。若选“是”指文本框部分的内容只能在下面的列表中选择,不能出现列表内容之外的东东。如果手工输入了列表内容之外的东东,就会触发“不在列表框”事件并出现提示。若选“否”则可以手工在文本框部分输入任意内容。注意:当选择多列数据作为组合框来源时,限于列表自动设置为“是”,且不可更改。
三.组合框编程
1.为其他文本框赋值
如例子程序中组合框窗体3中的船名英文组合框。在组合框中选择了船名英文之后,自动把船名中文和国际中英文字段填写。

这是在组合框“船名英文”的“更新后事件”中编写如下代码实现的:
Private Sub 船名英文_AfterUpdate()
    Me.船名中文 = Me.船名英文.Column(1)
    Me.国籍中英文 = Me.船名英文.Column(2)
End Sub
其中Me.船名英文.Column(1)是指组合框被选中的那行数据中第2列的值。
注意:在使用Column(i)时,第1列i=0。这与绑定列中第1列绑定列=1不同。
2.自动伸展
在“组合框1”窗体中输入新记录时,当用TAB键将光标移动到“职称”输入字段时,下拉列表自动伸展,不需要用鼠标按下拉箭头,方便输入。
这是在组合框“职称ID”的“获得焦点事件”中编写如下代码实现的:
Private Sub 职称ID_GotFocus()
    If Me.NewRecord Then Me.职称ID.Dropdown
End Sub
Me.NewRecord是当窗体输入新记录时为真。Dropdown就是组合框自动伸展的方法。
3.自动更新组合框列表内容
在“组合框4”窗体的“州省”字段的组合框,会根据所选择的国家不同而出现不同的列表内容。这是在“州省”字段组合框的“获得焦点”事件编写如下代码实现的:
Private Sub 州省ID_GotFocus()
    '根据选择的国家显示州省
'RowSource就是行来源
'因为“Me.国家ID”的值是数字,所以要用STR函数转换为字符串才能运算
    Me.州省ID.RowSource = "SELECT 州省ID, 州省 FROM Tab州省 WHERE (国家ID=" + Str(Me.国家ID) + ")"
End Sub
初学者经常会问,“问什么不写成
"SELECT 州省ID, 州省 FROM Tab州省 WHERE (国家ID= Me.国家ID)"
这样
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-6-3 07:01 , Processed in 0.089072 second(s), 25 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表