窗体上控件个性化设计的VBA技巧
时 间:2018-01-24 22:46:00
作 者:林岚 ID:3651 城市:中卫
摘 要:判断窗体或报表中控件的数目,然后将该数目赋给一个变量。
按特殊名在VBA中设置控件的可见性
指定一个控件能否接受焦点
获得焦点及失去焦点时字段变更颜色
使标签闪烁以引人注意
引用多列组合框或列表框中特定的列或列与行的组合
正 文:
常量 控件
acBoundObjectFrame 绑定对象框
acCheckBox 复选框
acComboBox 组合框
acCommandButton 命令按钮
acCustomControl ActiveX(自定义)控件
acImage 图像
acLabel 标签
acLine 线条
acListBox 列表框
acObjectFrame 未绑定对象框或图表
acOptionButton 选项按钮
acOptionGroup 选项组
acPage 页
acPageBreak 分页符
acRectangle 矩形
acSubform 子窗体/子报表
acTabCtl 选项卡
acTextBox 文本框
acToggleButton 切换按钮
在VB中对窗体控件的引用
键入包含控件的窗体或报表的标识符,后面紧接 ! 运算符和控件的名称。例如,下列标识符将引用“订单”窗体上“订单ID”控件值:
Forms![订单]![订单ID]
引用子窗体或子报表上的控件,不必使用“窗体”或“报表”属性为窗体或报表指定完整的标识符。例如,可以使用下列标识符来引用“订单”子窗体上的“数量”控件:
Forms![订单]![订单子窗体]![数量]
判断窗体或报表中控件的数目,然后将该数目赋给一个变量。
Dim intFormControls As Integer
Dim intReportControls As Integer
intFormControls = Forms!Employees.Count
intReportControls = Reports!FreightCharges.Count
设置控件可见性
Dim i, ii As Integer
For ii = 3 To 10
Me.Controls.Item(ii).Visible = True
Next
For i = 11 To 22
Me.Controls.Item(i).Visible = False
Next
按特殊名在VBA中设置控件的可见性:
For i = 27 To 47
If Me.Controls.Item(i).Name Like "A*" Then
Me.Controls.Item(i).Visible = False
End If
Next
指定一个控件能否接受焦点
Enabled属性:
me.控件.Enabled = true'能
=false'不能
指定一个控件能否被编辑:
locked
如:
me.控件.Locked = true
me.控件.Locked = false
设置控件标题显示的文字
Me.控件.Caption = "显示窗体"
设置标签颜色:
Me.LabelColor =200
获得焦点及失去焦点时字段变更颜色。
如果你的控件是文本框,名称为“txt字段”,写如下代码:
Private Sub txt字段_GotFocus()
Me.txt字段.BackColor = 12632256
End Sub
当中“12632256”是灰色,你可以自己选择希望的颜色,如果想在失去焦点时改为原来的颜色,写如下代码:
Private Sub txt字段_LostFocus()
Me.txt字段.BackColor = 16777215
End Sub
使标签闪烁以引人注意
设置窗体的TimerInterval 值为1000 (1秒).
forms OnTimer 加入代码:
Sub Form_Timer()
YourTextLabel.Visible = Not YourTextLabel.Visible
End_Sub
设置标签字体颜色:
Me.Label1.ForeColor =
设置文本框颜色:
Me.TextColor = 300
设置文本框字体颜色:
Me.TextFontColor = 500
标签等左边距离:
Me.Label2.Left = 2200
定位控件
Me.控件.Top = 8290
Me.控件.Left = 100
设置控件宽度/高度
Me.考生答案.Width = 10000
Me.考生答案.Height = 1000
标签等字体粗细:
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 '解除子窗体锁定
将窗体上所有控件的输入法关掉!
来源:不祥
Private Sub
Form_Open(Cancel As Integer)
Dim ctl As Access.Control
For Each ctl In Me.Controls
Debug.Print ctl.Name & ctl.ControlType
If ctl.ControlType = acTextBox Then
ctl.IMEMode = 2
End If
Next
End Sub
上述代码控制文本框,你还可以控制其他的,只要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 函数来确定是否进行了选择,示例如下:
If IsNull(Forms!Customers!Country)
Then MsgBox "No selection."
End If
显示获得焦点的控件的 Name:
ctl As Control
Set ctl = Screen.ActiveControl
MsgBox ctl.Name
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邀测新Monaco...(11.12)
- Access列表框左右互选、列表框...(11.11)
- 高效率在导入数据前删除记录(11.10)
- Access报价单转订单示例代码(11.08)
- Access系统自带的日期选择器不...(11.08)
- 分享一下Access工程中的acw...(11.07)
- Access快速开发平台--让有权...(11.04)
- Access快速开发平台--审批选...(11.01)
- ACCESS两张表先各自排序,然后...(10.31)
- Access对子窗体数据进行批量+...(10.30)