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

窗体上控件个性化设计的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 属性可以指定控件的边框宽度

取值:016

指定控件是否透明

使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交流群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

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