Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-窗体/数据页

组合框使用技巧

时 间: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) 2Me. 组合框名称= 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 * from1", , dbpressimistic) Set rs1 = CurrentDb.OpenRecordset("select * from1 where1.[字段名]='" & 组合框名称 & "';", , 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源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助