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

窗体个性化设计的VBA代码技巧

时 间:2018-01-24 22:42:43
作 者:林岚   ID:3651  城市:中卫
摘 要:如何让窗体的标题条闪烁以引起用户注意?
窗体上如何使用windows的媒体播放器?
指定当窗体上的命令按钮保持按下状态时,是否重复执行事件过程或宏?
vba如何獲取/設置在數據表方式下個列的寬度场?
窗体真正居中显示?
正 文:

如何让窗体的标题条闪烁以引起用户注意?

在窗体中放一个Timer控件Timer1,设置其Inteval=200
*API
函数声明
Private Declare Function FlashWindow Lib "user32" (ByVal hwnd As Long, ByVal bInvert As Long) As Long
注释:在窗体中写下如下代码:
Private Sub Timer1_Timer() 
 FlashWindow Me.hwnd, True 
End Sub 

窗体上如何使用windows的媒体播放器?

插入Microsoft Media Player控件

 

插入控件后,在控件中属性中的几个主要选项:
FileName:
要播放的文件名,包括路径
AutoStrat:
是否自动播放
AutoRevind:
播放完后是否自动回到起点

 

指定当窗体上的命令按钮保持按下状态时,是否重复执行事件过程或宏?

使用 AutoRepeat 属性可以指定当窗体上的命令按钮保持按下状态时,是否重复执行事件过程或宏

True 、False

 

以隐藏方式打开一个窗体

me.visible=false

 '允许添加

me.AllowAdditions= True   

 '记录不锁定

me.RecordLocks = 1

  是否自动居中

AutoCenter=          True,False           

是否自动调整

AutoResize =          True,False             

 

窗体边框样式

 me.BorderStyle=1 中译:

其它

1   无

2   细边框

3   可调边框

4   对话框边框

 

设置窗体、页眉、页脚颜色:

Me.Section(0).BackColor = 200

Me.Section(1).BackColor = 200

Me.Section(2).BackColor = 200

 

窗体标题

me.Caption="中国ACCESS软件网" 中译:窗体标题为"中国ACCESS软件网"(不含引号)

关闭按钮

me.CloseButton =True  中译 允许关闭按钮

其它:true:允许 False:不允许

 

控制框

me.ControlBox =True  允许

其它:true:允许 False:不允许

 

默认视图

me.DefaultView =0 为单一窗口

其它:0:单一窗口1:连续窗体2:数据表

 

vba如何獲取/設置在數據表方式下個列的寬度场?

一、Me.RowHeight = 800

 

二、Me.子窗体名.Form.Controls("列名").ColumnWidth = 400

允许分隔线

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/False

Filter="筛选内容"筛选 

应用与/否筛选

FilterOn=True/False 

将MyForm窗体的 BackColor 属性,改成ColorCode参数指定的色彩。

使用 QBColor 函数将MyForm窗体的 BackColor 属性,改成ColorCode参数指定的色彩。QBColor 可接受 0 15 的整型值。

Sub ChangeBackColor (ColorCode As Integer, MyForm As Form)
    MyForm.BackColor = QBColor(ColorCode)
End Sub

窗体真正居中显示?

如下代码可以做到真正居中显示

 

Private Sub Form_Load()

DoCmd.Echo False

Dim x, y As Integer

DoCmd.Maximize

x = Me.WindowWidth

y = Me.WindowHeight

DoCmd.Restore

DoCmd.Echo True

Move (x - Me.WindowWidth) / 2, (y - Me.WindowHeight) / 2

End Sub

隐藏窗体[学生名册]数据表视图中的性别字段

Table!学生名册!性别.ColumnHidden = -1

 

显示获得焦点窗体的 Name 属性设置:

使用 ActiveForm 属性(和 Screen 对象一起)可以标识或引用获得焦点的窗体。

Dim dqhdct As Form

Set dqhdct = Screen.ActiveForm

MsgBox dqhdct.Name

判断窗体是否打开的方法

 

Function IsLoaded(strName As String, Optional intObjectType As Integer =

acForm)

IsLoaded = (SysCmd(acSysCmdGetObjectState, intObjectType, strName) <> 0)

End Function

 

使用 IsLoaded 属性可以确定当前是否加载了 AccessObjectBoolean 型,只读。
以下是一个示例:
If CurrentProject.AllForms("frmMain").IsLoaded = True Then
Forms!frmMain.Form.Visible = False
End If

窗体中组合框不在列表中示例

不在列表中事件代码:

Private Sub 名称_NotInList(NewData As String, Response As Integer)

    Response = acDataErrContinue

    If MsgBox("您输入的名称不在列表中,在列表中添加新记录吗?", 68, "银河酒业") = 6 Then

   

    Me![名称] = Null

    DoCmd.GoToControl "单价"

   

    DoCmd.OpenForm "酒名列表", , , , acAdd, acNormal

    Else

    Me![名称] = Null

    Me![名称].Dropdown

    End If

End Sub

获得焦点事件代码:

Private Sub 名称_GotFocus()

Me![名称].Requery

End Sub

如何让窗体总在最前面?

*API函数声明
Declare Function SetWindowPos Lib "user32" ( ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
注释:常量声明
Private Const SWP_NOSIZE = &H1
Private Const SWP_NOMOVE = &H2
Private Const HWND_TOPMOST = -1
Private Const HWND_NOTOPMOST = -2
注释: 在某个form里写:
SetWindowPos me.hWnd,WND_TOPMOST,0,0,0,0, SWP_NOMOVE 
注释:或下面
SetWindowPos me.hWnd,WND_TOPMOST,0,0,0,0, SWP_NOSIZE



Access软件网官方交流QQ群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

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