ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2983|回复: 3

[推荐] ACCESS VBA编程(一)控件

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-5-8 14:17 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项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.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

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-5-8 14:31 | 显示全部楼层
跟着竹笛学ACCESS,这可是专家级的。

TA的精华主题

TA的得分主题

发表于 2013-5-10 15:33 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
谢谢竹笛老师
有一点疑问  想学好Access的话 需要哪些excel知识呢?

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-5-11 14:07 | 显示全部楼层
翠迪鸟 发表于 2013-5-10 15:33
谢谢竹笛老师
有一点疑问  想学好Access的话 需要哪些excel知识呢?

不用啊,要学习一些VBA的知识
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-5-19 03:05 , Processed in 0.037061 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表