access组合框示例及相关使用详解

上传人:第*** 文档编号:38795681 上传时间:2018-05-07 格式:PDF 页数:7 大小:148.19KB
返回 下载 相关 举报
access组合框示例及相关使用详解_第1页
第1页 / 共7页
access组合框示例及相关使用详解_第2页
第2页 / 共7页
access组合框示例及相关使用详解_第3页
第3页 / 共7页
access组合框示例及相关使用详解_第4页
第4页 / 共7页
access组合框示例及相关使用详解_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《access组合框示例及相关使用详解》由会员分享,可在线阅读,更多相关《access组合框示例及相关使用详解(7页珍藏版)》请在金锄头文库上搜索。

1、ACCESS 中组合框使用详解 ACCESS 中组合框使用详解 在 ACCESS 中,组合框最主要的应用在于减少用户输入数据的操作,直接用鼠标选取数据而不需要手工输入,如右图所示。 一组合框的行来源类型分为三种:表查询;值列表;字段列表。 表查询顾名思义,组合框的列表来源于表或者查询中的记录,用于显示比较多的列。有时候也可以是一句合法的SQL 语句(实际就是查询) ,这在动态修改组合框显示的值时很有用。 值列表应用于可选项比较少,且内容固定的场合。比如输入“男女” 、 “是否” 、 “党员团员民主党派群众”等。这时需要在行来源中直接输入内容,如下图。各个字符串要用“;” (英文分号)隔开。 字

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

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

4、把数字列的列宽设为 0,可以使数字列不显示出来,对比效果如下页图: 2 注:数据表中实际存放的还是职称 ID(长整型数) 。 列表行数列表行数在鼠标按下箭头时显示几行列表。默认是 8,为了多显示几行可以改大一些。 列表宽度列表宽度默认是“自动” ,就是列表部分和上边的文本框一样宽。当列比较多时可以改大一些。如下图(组合框 2 窗体中员工姓名) : 限于列表限于列表是或者否。若选“是”指文本框部分的内容只能在下面的列表中选择,不能出现列表内容之外的东东。如果手工输入了列表内容之外的东东,就会触发“不在列表框”事件并出现提示。若选“否”则可以手工在文本框部分输入任意内容。注意:当选择多列数据作为组

5、合框来源时,限于列表自动设置为“是” ,且不可更改。 3 三组合框编程 1.为其他文本框赋值 如例子程序中组合框窗体 3 中的船名英文组合框。在组合框中选择了船名英文之后,自动把船名中文和国际中英文字段填写。 这是在组合框“船名英文”的“更新后事件”中编写如下代码实现的: Private Sub 船名英文_AfterUpdate() Me.船名中文 = Me.船名英文.Column(1) Me.国籍中英文 = Me.船名英文.Column(2) End Sub 其中 Me.船名英文.Column(1)是指组合框被选中的那行数据中第 2 列的值。 注意:在使用 Column(i)时,第 1 列

6、i0。这与绑定列中第 1 列绑定列1不同。 2.自动伸展 在“组合框 1”窗体中输入新记录时,当用 TAB 键将光标移动到“职称”输入字段时,下拉列表自动伸展,不需要用鼠标按下拉箭头,方便输入。 这是在组合框“职称 ID”的“获得焦点事件”中编写如下代码实现的: Private Sub 职称 ID_GotFocus() If Me.NewRecord Then Me.职称 ID.Dropdown End Sub Me.NewRecord 是当窗体输入新记录时为真。Dropdown 就是组合框自动伸4 展的方法。 3.自动更新组合框列表内容 在“组合框 4”窗体的“州省”字段的组合框,会根据所选

7、择的国家不同而出现不同的列表内容。这是在“州省”字段组合框的“获得焦点”事件编写如下代码实现的: 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 (国家 I

8、D= Me.国家 ID)“ 这样的形式?” 其实在这样的 SQL 语句中, “Me.国家 ID”并不会被程序认为是一个代表值的变量,而是作为字符串处理。这时的 SQL 语句实际上是错误的。 你可以在 End Sub 之前加一句 MsgBox Me.州省 ID.RowSource 来显示实际的 SQL语句。 如果碰到需要的变量是字符串类型, 需要在字符串两端用 “”(英文单引号)来说明,例如(在 VBA 中“ & Me.Text1 & “ = “ + Me.Text1 + “) : strSQL = “DELETE * FROM 员工 WHERE (员工 ID= “ & Me.Text1 & “

9、)“ 如果是日期型的变量,需要在在字符串两端用“#” (英文井号)来说明,例如: strSQL = “DELETE * FROM 员工 WHERE (出生日期= #“ & Me.Text1 & “#)“ 小技巧:怎样编写 SQL 语句?其实都是在数据库中新建查询设计视图,选择需要的表和字段, 写好条件之后转到 SQL 视图 (如下图) , 把其中的 SQL语句经过处理变成我们需要的形式。 5 在“组合框 4”窗体的“城市”字段的组合框里也有代码,请大家自己查看。另外假如你新加入一个广西桂林的人,你会发现当你翻回到广东的联系人时,他们的城市都不显示了。这是由于你修改了组合框的数据源后,广东的城市

10、名已经不在列表中,而“限于列表”是“真”所以无法显示。你需要在“组合框 4”窗体的“成为当前”事件中加入如下代码来修正: Private Sub Form_Current() 还原州省 ID 和城市 ID 组合框的行来源 Me.州省 ID.RowSource = “tab 州省“ Me.州省 ID.Requery Me.城市 ID.RowSource = “Tab 城市“ Me.城市 ID.Requery End Sub 4.处理不在列表框事件 以“组合框 4”窗体为例,如果你想输入“陕西”省(我的出生地) ,会出现提示如下: 如果你确实需要让用户选择是否把新输入的值写入数据表中, 你可以在

11、“州省 ID”组合框的“不在列表中”事件里加入以下代码: Private Sub 州省 ID_NotInList(NewData As String, Response As Integer) Dim intSelect As Integer, strSQL As String 用户选择是否把新值加入列表 intSelect = MsgBox(“你是否希望把“ + NewData + “”加入列表中?“, vbYesNo + vbQuestion, “提示“) If intSelect = vbYes Then DoCmd.SetWarnings False strSQL = “INSERT

12、INTO Tab 州省(州省,国家 ID) VALUES(“ + NewData + “,“ + Str(Me.6 7 国家 ID) + “)“ DoCmd.RunSQL strSQL Response = acDataErrAdded DoCmd.SetWarnings True Else Response = acDataErrContinue Me.州省 ID.Undo End If End Sub 其中: MsgBox 在单独作为语句使用时,不需要括号。当作为函数使用时必须要加括号,函数返回你在MsgBox 窗体上按下的键(vbOK/vbCancel/vbYes/vbNo 等) 。vb

13、YesNo + vbQuestion 意思是在MsgBox 窗体上有“是” “否”两个按键,并有一个问号标志,详细说明请看 VBA 帮助。 DoCmd.SetWarnings False 是为了关闭系统在运行操作查询前的确认提示。 DoCmd.SetWarnings True 则是打开运行操作查询前的确认提示。 INSERT INTO 是追加查询 SQL 语句,详细说明请看 VBA 帮助。 NotInList(NewData As String, Response As Integer)的详细说明可以在 VBA 帮助中搜索 NotInList后找到。 这段程序在询问用户是否要把不在列表内的数据加到数据表里,如果用户选“是” ,就根据当前窗体上的输入字符串和当前国家 ID 的值用追加查询在表“Tab 州省”中加入一条记录。 因为表“Tab 州省”中的“州省 ID”字段是自动编号字段,不许手工或用程序修改的,所以追加查询时只加入两个字段, “州省 ID”会自动生成。 其他“国家 ID”和“城市 ID”组合框的“不在列表中”事件,初学者可自己练习编写。完整的代码可以参考“组合框 5”窗体中的代码部分。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 工程造价

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号