ACCESS-VBA编程.控件:常量控件acBoundObjectFrame绑定对象框acCheckBox复选框acComboBox组合框acCommandButton命令按钮acCustomControlActiveX(自定义)控件acImage图像acLabel标签acLine线条acListBox列表框acObjectFrame未绑定对象框或图表acOptionButton选项按钮acOptionGroup选项组acPage页acPageBreak分页符acRectangle矩形acSubform子窗体/子报表acTabCtl选项卡acTextBox文本框acToggleButton切换按钮在VB中对窗体控件的引用键入包含控件的窗体或报表的标识符,后面紧接!运算符和控件的名称。例如,下列标识符将引用“订单”窗体上“订单ID”控件值:Forms![订单]![订单ID]引用子窗体或子报表上的控件,不必使用“窗体”或“报表”属性为窗体或报表指定完整的标识符。例如,可以使用下列标识符来引用“订单”子窗体上的“数量”控件:Forms![订单]![订单子窗体]![数量]判断窗体或报表中控件的数目,然后将该数目赋给一个变量。DimintFormControlsAsIntegerDimintReportControlsAsIntegerintFormControls=Forms!Employees.CountintReportControls=Reports!FreightCharges.Count设置控件可见性Dimi,iiAsIntegerForii=3To10Me.Controls.Item(ii).Visible=TrueNextFori=11To22Me.Controls.Item(i).Visible=FalseNext按特殊名在VBA中设置控件的可见性:Fori=27To47IfMe.Controls.Item(i).NameLikeA*ThenMe.Controls.Item(i).Visible=FalseEndIfNext指定一个控件能否接受焦点Enabled属性:me.控件.Enabled=true'能=false'不能指定一个控件能否被编辑:locked如:me.控件.Locked=trueme.控件.Locked=false设置控件标题显示的文字Me.控件.Caption=显示窗体设置标签颜色:Me.LabelColor=200获得焦点及失去焦点时字段变更颜色。如果你的控件是文本框,名称为“txt字段”,写如下代码:PrivateSubtxt字段_GotFocus()Me.txt字段.BackColor=12632256EndSub当中“12632256”是灰色,你可以自己选择希望的颜色,如果想在失去焦点时改为原来的颜色,写如下代码:PrivateSubtxt字段_LostFocus()Me.txt字段.BackColor=16777215EndSub使标签闪烁以引人注意设置窗体的TimerInterval值为1000(1秒).formsOnTimer加入代码:SubForm_Timer()YourTextLabel.Visible=NotYourTextLabel.VisibleEnd_Sub设置标签字体颜色:Me.Label1.ForeColor=设置文本框颜色:Me.TextColor=300设置文本框字体颜色:Me.TextFontColor=500标签等左边距离:Me.Label2.Left=2200定位控件Me.控件.Top=8290Me.控件.Left=100标签等字体粗细:Me.Label2.FontWeight=20000控件边框颜色:Me.Label2.BorderColor=0控件边框线条BorderStyle属性使用以下设置:透明0(仅对于标签、图表和子报表而言是默认值)透明的实线1(默认值)实线虚线2虚线短虚线3短虚线点线4点线稀疏点线5点距较宽的点线点划线6虚线与点线组合的点划线点点划线7虚线-点线-点线组合的点点划线双实线8双实线指定控件的边框宽度使用BorderWidth属性可以指定控件的边框宽度取值:0或1-6指定控件是否透明使BackStyle属性可以指定控件是否透明。True、False解除子窗体锁定Me.进_子窗体.Locked=False'解除子窗体锁定将窗体上所有控件的输入法关掉!来源:不祥PrivateSubForm_Open(CancelAsInteger)DimctlAsAccess.ControlForEachctlInMe.ControlsDebug.Printctl.Name&ctl.ControlTypeIfctl.ControlType=acTextBoxThenctl.IMEMode=2EndIfNextEndSub上述代码控制文本框,你还可以控制其他的,只要copy进窗体就可以了列表框的值的引用如果是单选的列表框,用me.[列表框名]来引用;如果要引用不是结合型列的值,可以用me.[列表框名].column(n)(第一列n=0,第二列n=1…)引用多列组合框或列表框中特定的列或列与行的组合用0引用第一列,用1引用第二列,依此类推。用0引用第一行,用1引用第二行,依此类推。例如在含有一列客户ID和一列客户名称的列表框中,可以使用如下方式引用第二列、第五行的客户名称:Forms!Contacts!Customers.Column(1,4)可以使用Column属性将组合框或列表框的内容指定给另一控件,如文本框。例如,若要将文本框的ControlSource属性设为列表框第二列中的值,可以使用以下表达式:=Forms!Customers!CompanyName.Column(1)如果引用了组合框或列表框中的列,但用户未做选择,则Column属性设置将为Null。可以使用IsNull函数来确定是否进行了选择,示例如下:IfIsNull(Forms!Customers!Country)ThenMsgBoxNoselection.EndIf显示获得焦点的控件的Name:ctlAsControlSetctl=Screen.ActiveControlMsgBoxctl.Name窗体:指定当窗体上的命令按钮保持按下状态时,是否重复执行事件过程或宏使用AutoRepeat属性可以指定当窗体上的命令按钮保持按下状态时,是否重复执行事件过程或宏True、False'允许添加me.AllowAdditions=True'记录不锁定me.RecordLocks=1是否自动居中AutoCenter=True,False是否自动调整AutoResize=True,False窗体边框样式me.BorderStyle=1中译:无其它1无2细边框3可调边框4对话框边框设置窗体、页眉、页脚颜色:Me.Section(0).BackColor=200Me.Section(1).BackColor=200Me.Section(2).BackColor=200窗体标题me.Caption=中国ACCESS软件网中译:窗体标题为中国ACCESS软件网(不含引号)关闭按钮me.CloseButton=True中译允许关闭按钮其它:true:允许False:不允许控制框me.ControlBox=True允许其它:true:允许False:不允许默认视图me.DefaultView=0为单一窗口其它:0:单一窗口1:连续窗体2:数据表允许分隔线me.DividingLines=True中译允许分隔线其它:true:允许False:不允许允许打印版式英文:me.LayoutForPrint=True中译允许打印版式其它:true:允许False:不允许无最大最小化按钮英文:me.MinMaxButtons=0中译无最大最小化按钮其它:0:无1:最大化2:最小化3:两者都有允许浏览按钮英文:me.NavigationButtons=True中译允许浏览按钮其它:true:允许False:不允许滚动条me.ScrollBars=0二者均无其它:0:二者均无1:只垂直2:只水平3:二者都有允许/不允许添加me.AllowAdditions=True/False允许/不允许删除me.AllowDeletions=True/False允许/不允许编辑me.AllowEdits=True/False指定是否允许打开绑定窗体进行数据输入使用DataEntry属性可以指定是否允许打开绑定窗体进行数据输入。DataEntry属性不决定是否可以添加记录,只决定是否显示已有的记录。Boolean型,可读/写。True、False允许/不允许筛选me.AllowFilters=True/FalseFilter=筛选内容筛选应用与/否筛选FilterOn=True/False将MyForm窗体的BackColor属性,改成ColorCode参数指定的色彩。使用QBColor函数将MyForm窗体的BackColor属性,改成ColorCode参数指定的色彩。QBColor可接受0到15的整型值。SubChangeBackColor(ColorCodeAsInteger,MyFormAsForm)MyForm.BackColor=QBColor(ColorCode)EndSub窗体真正居中显示如下代码可以做到真正居中显示PrivateSubForm_Load()DoCmd.EchoFalseDimx,yAsIntegerDoCmd.Maximizex=Me.WindowWidthy=Me.WindowHeightDoCmd.RestoreDoCmd.EchoTrueMove(x-Me.WindowWidth)/2,(y-Me.WindowHeight)/2EndSub隐藏窗体[学生名册]数据表视图中的性别字段Table!学生名册!性别.ColumnHidden=-1显示获得焦点窗体的Name属性设置:使用ActiveForm属性(和Screen对象一起)可以标识或引用获得焦点的窗体。DimdqhdctAsFormSetdqhdct=Screen.ActiveFormMsgBoxdqhdct.Name判断窗体是否打开的方法FunctionIsLoaded(strNameAsString,OptionalintObjectTypeAsInteger=acForm)IsLoaded=(SysCmd(acSysCmdGetObjectState,intObjectType,strName)0)EndFunction使用IsLoaded属性可以确定当前是否加载了AccessObject。Boolean型,只读。以下是一个示例:IfCurrentProject.AllForms(frmMain).IsLoaded=TrueThenForms!frmMain.Form.Visible=FalseEndIf窗体中组合框不在列表中示例不在列表中事件代码:PrivateSub名称_NotInList(NewDataAsString,ResponseAsInteger)Response=acDataErrContinueIfMsgBox(您输入的名称不在列表中,在列表中添加新记录吗?,68,银河酒业)=6ThenMe![名称]=NullDoCmd.GoToControl单价DoCmd.OpenForm酒名列表,,,,acAdd,acNormalElseMe![名称]=NullMe![名称].DropdownEndIfEndSub获得焦点事件代码:PrivateSub名称_GotFocus()Me![名称].RequeryEndSub如何让窗体总在最前面?*API函数声明DeclareFunctionSetWindowPosLibuser32(ByValhwndAsLong,ByValhWndInsertAfterAsLong,By