Access是一个既可以只用来存放数据的数据库,也可以作为一个客户端开发工具来进行数据库应用系统开发;即可以开发方便易用的小型软件,也可以用来开发大型的应用系统。(1)存储方式简单,易于维护管理,界面友好、易操作(2)面向对象Access是一个面向对象的开发工具(3)集成环境、处理多种数据信息(4)Access支持ODBC(开发数据库互连)(5)支持广泛,易于扩展,弹性较大正文:组合框使用技巧一、只能选择而不能修改数据PrivateSub组合框名称_KeyDown(KeyCodeAsInteger,ShiftAsInteger)DoCmd.CancelEventEndSub注:在“键按下”事件中写入代码即可二、消除不在列表中告警PrivateSub组合框名称_NotInList(NewDataAsString,ResponseAsInteger)Response=0EndSub注:在“不在列表中”事件中写入代码即可三、不在列表中,清空其数据并不移动光标PrivateSub组合框名称_NotInList(NewDataAsString,ResponseAsInteger)Response=acDataErrContinueMe.组合框名称=NullMe.组合框名称.RequeryEndSub四、调整,“箭头”满框正常的组合框,在其右边有一个小箭头,点击这个小箭头,会出现组合框的内容列表。但如果设计不好,可能会出现“箭头”不能填满只占组合框的一部分的现象,很难看的。解决办法很简单--在窗体设计视图下,选中组合框,先设置你需要的字号,默认是9号字,改成你需要的大小字号(在14号字内)。然后,按住“shift”键,再用小键盘区的上下箭头键进行微量调整,“箭头”就会根据字号大小而自动调整,立马会出现你需要的效果。五、默认值为该组合框行来源的最后一行1)、在窗体的加载事件中写:DimnAsLongn=Me.组合框名称.ListCountMe.组合框名称.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)七、获得焦点时组合框自动打开PrivateSub组合框名称_GotFocus()Me![组合框名称].DropdownEndSub八、去掉组合框中的空白行只要在这个组合框行来源的查询设计视图中,那个字段条件中放置NotIsNull就行了。九、组合框内数据依次显示PrivateSub组合框名称_DblClick(CancelAsInteger)If组合框名称.ListCount1ThenExitSubDimIAsLongI=组合框名称.ListCountIf组合框名称.ListIndexI-1Then组合框名称.ListIndex=组合框名称.ListIndex+1Else组合框名称.ListIndex=0EndIfEndSub注:双击组合框,组合框内数据会依次显示十、自动加入到可选项中的办法PrivateSub组合框名称_LostFocus()DimrsAsDAO.RecordsetDimrs1AsDAO.RecordsetIfNotIsNull(组合框名称)orTrim(组合框名称)Then'这时防止添加空格Setrs=CurrentDb.OpenRecordset(select*from表1,,dbpressimistic)Setrs1=CurrentDb.OpenRecordset(select*from表1where表1.[字段名]='&组合框名称&';,,dbpressmimstic)Ifrs1.RecordCount=0Then'防止重复添加Withrs.AddNew![字段名]=Me.组合框名称.UpdateEndWithEndIfrs.CloseSetrs=Nothingrs1.CloseSetrs1=NothingMe.RequeryEndIfEndSub注:1)组合框中的值来源于表“表1”;2)组合框中输入新值后,可实现自动加入到可选项中.十一、在组合框中用键盘上的↓键选取在组合框中不用鼠标点击,也不用xxx.Dropdown命令,就可以用键盘上的↓键选取内容在组合框的键按下事件中加入:PrivateSubCombo1_KeyDown(KeyCodeAsInteger,ShiftAsInteger)IfKeyCode=40ThenScreen.ActiveControl.ListIndex=(Screen.ActiveControl.ListIndex+1)ModScreen.ActiveControl.ListCountKeyCode=0EndIfEndSub也可以在鼠标双击事件中加入下面一句以便录入:Screen.ActiveControl.ListIndex=(Screen.ActiveControl.ListIndex+1)ModScreen.ActiveControl.ListCount试试看,,,这种效果是不是觉得用起来更爽一点十二、文本框为空时,组合框内容不能改PrivateSub文本框名_AfterUpdate()Me.组合框名称.Enabled(=Nz(Me.文本框名))EndSub