组合框使用技巧
时 间:2011-03-31 00:00:00
作 者:jia ID:9474 城市:盘锦
摘 要:Access是一个既可以只用来存放数据的数据库,也可以作为一个客户端开发工具来进行数据库应用系统开发;即可以开发方便易用的小型软件,也可以用来开发大型的应用系统。
(1)存储方式简单,易于维护管理 ,界面友好、易操作
(2)面向对象 Access是一个面向对象的开发工具
(3)集成环境、处理多种数据信息
(4)Access支持ODBC(开发数据库互连)
(5)支持广泛,易于扩展,弹性较大
正 文:
组合框使用技巧
一、只能选择而不能修改数据 Private Sub 组合框名称_KeyDown(KeyCode As Integer, Shift As Integer) DoCmd.CancelEvent End Sub 注:在“键按下”事件中写入代码即可二、消除不在列表中告警 Private Sub组合框名称_NotInList(NewData As String, Response As Integer) Response = 0 End Sub 注:在“不在列表中”事件中写入代码即可
三、不在列表中,清空其数据并不移动光标 Private Sub组合框名称_NotInList(NewData As String, Response As Integer) Response = acDataErrContinue Me. 组合框名称= Null Me. 组合框名称.Requery End Sub
四、调整,“箭头”满框正常的组合框,在其右边有一个小箭头,点击这个小箭头,会出现组合框的内容列表。但如果设计不好,可能会出现“箭头”不能填满只占组合框的一部分的现象,很难看的。解决办法很简单--在窗体设计视图下,选中组合框,先设置你需要的字号,默认是9号字,改成你需要的大小字号(在14号字内)。然后,按住“shift”键,再用小键盘区的上下箭头键进行微量调整,“箭头”就会根据字号大小而自动调整,立马会出现你需要的效果。
五、默认值为该组合框行来源的最后一行 1)、在窗体的加载事件中写: Dim n As Long n = Me. 组合框名称.ListCount Me. 组合框名称.value = Me. 组合框名称.Column(0, n - 1) 2)Me. 组合框名称= Me. 组合框名称.ItemData(Me. 组合框名称.ListCount-1) 六、默认值为该组合框行来源的第一条记录 1)在窗体加载事件中写上以下代码 Me.组合框名称 = Me.组合框名称.ItemData(0) 注:ItemData(n) 其中 n 是要作为默认值的所在行号。ItemData 属性是从零开始的,所以如果要使用列表中第一行为默认值,请键入:ItemData(0)。 2)在窗体加载事件中写上以下代码 Me.组合框名称 = Me.组合框名称.Column(0, 0) 3)在组合框的默认值属性中直接放下列表达式: =[组合框名称].[Column](0,0) 或=[组合框名称].[ ItemData](0)
七、获得焦点时组合框自动打开 Private Sub组合框名称_GotFocus() Me![ 组合框名称].Dropdown End Sub
八、去掉组合框中的空白行只要在这个组合框行来源的查询设计视图中,那个字段条件中放置Not Is Null就行了。
九、组合框内数据依次显示 Private Sub组合框名称_DblClick(Cancel As Integer) If组合框名称.ListCount < 1 Then Exit Sub Dim I As Long I =组合框名称.ListCount If组合框名称.ListIndex < I - 1 Then 组合框名称.ListIndex =组合框名称.ListIndex + 1 Else 组合框名称.ListIndex = 0 End If End Sub 注:双击组合框,组合框内数据会依次显示
十、自动加入到可选项中的办法 Private Sub 组合框名称_LostFocus() Dim rs As DAO.Recordset Dim rs1 As DAO.Recordset If Not IsNull(组合框名称) or Trim(组合框名称) <> "" Then '这时防止添加空格 Set rs = CurrentDb.OpenRecordset("select * from表1", , dbpressimistic) Set rs1 = CurrentDb.OpenRecordset("select * from表1 where表1.[字段名]='" & 组合框名称 & "';", , dbpressmimstic) If rs1.RecordCount = 0 Then '防止重复添加 With rs .AddNew ![字段名] = Me.组合框名称 .Update End With End If rs.Close Set rs = Nothing rs1.Close Set rs1 = Nothing Me.Requery End If End Sub 注:1)组合框中的值来源于表“表1”; 2)组合框中输入新值后,可实现自动加入到可选项中.
十一、在组合框中用键盘上的↓键选取在组合框中不用鼠标点击,也不用xxx.Dropdown命令,就可以用键盘上的↓键选取内容在组合框的键按下事件中加入: Private Sub Combo1_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 40 Then Screen.ActiveControl.ListIndex = (Screen.ActiveControl.ListIndex + 1) Mod Screen.ActiveControl.ListCount KeyCode = 0 End If End Sub 也可以在鼠标双击事件中加入下面一句以便录入: Screen.ActiveControl.ListIndex = (Screen.ActiveControl.ListIndex + 1) Mod Screen.ActiveControl.ListCount 试试看,,,这种效果是不是觉得用起来更爽一点
十二、文本框为空时,组合框内容不能改 Private Sub 文本框名_AfterUpdate() Me. 组合框名称.Enabled(=Nz(Me. 文本框名)<>"") End Sub
Access软件网官方交流QQ群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
- Access累乘示例,Acce...(10.09)
- 数值8.88,把整数8去掉,转...(10.08)
- 【Access自定义函数】一个...(09.30)
- 【Access选项卡示例】Ac...(09.09)
学习心得
最新文章
- Access判断多条明细的配方或订...(11.30)
- 如何让后台数据库在局域网共享时,且...(11.29)
- 【Access月初月末日期设置方法...(11.29)
- 【Access IIF函数嵌套示例...(11.26)
- Access快速开发平台--使用组...(11.25)
- Access快速开发平台--对上传...(11.22)
- Access快速开发平台企业版--...(11.18)
- 不会用多表联合查询,多表查询没结果...(11.16)
- 【案例分享】主键字段值含有不间断空...(11.16)
- Access快速开发平台--后台D...(11.14)