您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > ACCESS_VBA编程
1/131ACCESS-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=FalseNext2/131按特殊名在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=显示窗体巧用标签做透明按钮做一透明标签,在其鼠标按下与释放两个事件中设置SpecialEffect属性值:1—凸起;2—凹陷设置标签颜色: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_Sub3/131设置标签字体颜色:Me.Label1.ForeColor=设置文本框颜色:Me.TextColor=300设置文本框字体颜色:Me.TextFontColor=500定位控件Me.控件.Top=8290Me.控件.Left=100使控件获得焦点Me.jxlb.SetFocus显示获得焦点的控件的Name:ctlAsControlSetctl=Screen.ActiveControlMsgBoxctl.Name设置控件宽度/高度Me.考生答案.Width=10000Me.考生答案.Height=1000标签等字体粗细:Me.Label2.FontWeight=20000控件边框颜色:Me.Label2.BorderColor=0控件边框线条BorderStyle属性使用以下设置:透明0(仅对于标签、图表和子报表而言是默认值)透明的实线1(默认值)实线虚线2虚线短虚线3短虚线点线4点线稀疏点线5点距较宽的点线点划线6虚线与点线组合的点划线点点划线7虚线-点线-点线组合的点点划线双实线8双实线指定控件的边框宽度使用BorderWidth属性可以指定控件的边框宽度取值:0或1-64/131指定控件是否透明使BackStyle属性可以指定控件是否透明。0、1解除子窗体锁定Me.进_子窗体.Locked=False'解除子窗体锁定将窗体上所有控件的输入法关掉!来源:不祥PrivateSubForm_Open(CancelAsInteger)DimctlAsAccess.ControlForEachctlInMe.ControlsDebug.Printctl.Name&ctl.ControlTypeIfctl.ControlType=acTextBoxThenctl.IMEMode=2EndIfNextEndSub上述代码控制文本框,你还可以控制其他的,只要copy进窗体就可以了为列表框定数据源如果变量为字符串Dimstr3AsStringstr3=SELECTjhd.leibieAS类别,jhd.migcegAS名称,jhd.xighaoAS型号,jhd.danweiAS单位,jhd.danjiaAS单价FROMjhd&wherejhd.leibie='&Listjhlb&'Me.Listjhwp.RowSource=str3Me.Listjhwp.Requery如果变量为数字:Dimstr$,Cs&Cs=List0.Column(0,1)str=SELECTlist1cx.*FROMlist1cx&wherelist1cx.供应商ID=&CsMe.List1.RowSource=strMe.List1.Requery为列表框加数据列表框.ADDITM字符串(索引值)为组合框、子窗体设置数据源下面的示例将组合框的RowSourceType属性设为“Table/Query”,然后将RowSource属性设为“雇员列表”查询。Forms!Employees!cmboNames.RowSourceType=Table/QueryForms!Employees!cmboNames.RowSource=EmployeeList一:Dimstr1AsStringstr1=SELECTziyuag.zy_daihao,ziyuag.zy_mima,ziyuag.zy_ziwu,ziyuag.zy_xigmigFROMziyuag&wherezy_daihao='&Text8dldh&'andzy_mima='&Text10dlmm&'Me.Child6zy.Form.RecordSource=str1Me.Child6zy.Requery二:子窗体.FORM.RecordSource=SELECTziyuag.zy_daihao,ziyuag.zy_mima,ziyuag.zy_ziwu,ziyuag.zy_xigmigFROMziyuag&wherezy_daihao='&Text8dldh&'andzy_mima='&Text10dlmm&'Me.Chidj.Form.RecordSource=SELECT进货单明细.*FROM进货单明细Me.Chidj.Requery5/131三:PrivateSubCommand38_Click()DimsjyAsStringDimpdAsIntegerpd=Truesjy=SELECT病历明细表.*FROM病历明细表IfNotIsNull(Text0)ThenIfpdThensjy=sjy&where姓名like'&Text0&'pd=FalseElsesjy=sjy&and姓名like'&Text0&'EndIfEndIfIfNotIsNull(Text1)AndNotIsNull(Text2)Thensjy=sjy&where时间between#&Text1and#&Text2pd=FalseElsestr2=str2&and时间between#&Text1and#&Text2EndIfIfNotIsNull(Text3)ThenIfpdThensjy=sjy&where姓名like'&Text3&'pd=FalseElsesjy=sjy&and姓名like'&Text3&'EndIfEndIfMe.子窗体.RowSource=sjyMe.RequeryEndSub列表框的值的引用如果是单选的列表框,用me.[列表框名]来引用;如果要引用不是结合型列的值,可以用me.[列表框名].column(n)(第一列n=0,第二列n=1…)ItemData属性可根据行索引反回值:Me.List9.ItemData(List9.ListCount-2)列表框行数Me.List9.ListCount如何使鼠标停留在组合框上时,使组合框自动打开PrivateSub组合框_GotFocus()Me![组合框].DropdownEndSub组合框不在列表中示例不在列表中事件代码:PrivateSub名称_NotInList(NewDataAsString,ResponseAsInteger)Response=acDataErrContinueIfMsgBox(您输入的名称不在列表中,在列表中添加新记录吗?,68,银河酒业)=6ThenMe![名称]=NullDoCmd.GoToControl单价DoCmd.OpenForm酒名列表,,,,acAdd,acNormalElseMe![名称]=NullMe![名称].DropdownEndIfEndSub6/131获得焦点事件代码:PrivateSub名称_GotFocus()Me![名称].RequeryEndSub引用多列组合框或列表框中特定的列或列与行的组合用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选项卡控件的某页激活Me.选项卡控件名.Pages(n).SetFocus其中n是要打开的页号(页号是从0开始的)窗体:如何让窗体的标题条闪烁以引起用户注意?在窗体中放一个Timer控件Timer1,设置其Inteval=200*API函数声明PrivateDeclareFunctionFlashWindowLibuser32(ByValhwndAsLong,ByValbInvertAsLong)AsLong注释:在窗体中写下如下代码:PrivateSubTimer1_Timer()FlashWindowMe.hwnd,TrueEndSub用VBA代码删除窗体DoCmd.DeleteObjectacForm,房间窗体上如何使用windows的媒体播放器插入MicrosoftMediaPlayer控件插
本文标题:ACCESS_VBA编程
链接地址:https://www.777doc.com/doc-5450495 .html