AccessVBA编程使用技巧大全.docx

上传人:b****7 文档编号:25298261 上传时间:2023-06-07 格式:DOCX 页数:247 大小:315.25KB
下载 相关 举报
AccessVBA编程使用技巧大全.docx_第1页
第1页 / 共247页
AccessVBA编程使用技巧大全.docx_第2页
第2页 / 共247页
AccessVBA编程使用技巧大全.docx_第3页
第3页 / 共247页
AccessVBA编程使用技巧大全.docx_第4页
第4页 / 共247页
AccessVBA编程使用技巧大全.docx_第5页
第5页 / 共247页
点击查看更多>>
下载资源
资源描述

AccessVBA编程使用技巧大全.docx

《AccessVBA编程使用技巧大全.docx》由会员分享,可在线阅读,更多相关《AccessVBA编程使用技巧大全.docx(247页珍藏版)》请在冰豆网上搜索。

AccessVBA编程使用技巧大全.docx

AccessVBA编程使用技巧大全

ACCESS-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!

[订单]!

[订单子窗体]!

[数量]

判断窗体或报表中控件的数目,然后将该数目赋给一个变量。

DimintFormControlsAsInteger

DimintReportControlsAsInteger

intFormControls=Forms!

Employees.Count

intReportControls=Reports!

FreightCharges.Count

设置控件可见性

Dimi,iiAsInteger

Forii=3To10

Me.Controls.Item(ii).Visible=True

Next

Fori=11To22

Me.Controls.Item(i).Visible=False

Next

按特殊名在VBA中设置控件的可见性:

Fori=27To47

IfMe.Controls.Item(i).NameLike"A*"Then

Me.Controls.Item(i).Visible=False

EndIf

Next

指定一个控件能否接受焦点

Enabled属性:

me.控件.Enabled=true'能

=false'不能

指定一个控件能否被编辑:

locked

如:

me.控件.Locked=true

me.控件.Locked=false

设置控件标题显示的文字

Me.控件.Caption="显示窗体"

设置标签颜色:

Me.LabelColor=200

获得焦点及失去焦点时字段变更颜色。

如果你的控件是文本框,名称为“txt字段”,写如下代码:

PrivateSubtxt字段_GotFocus()

Me.txt字段.BackColor=12632256

EndSub

当中“12632256”是灰色,你可以自己选择希望的颜色,如果想在失去焦点时改为原来的颜色,写如下代码:

PrivateSubtxt字段_LostFocus()

Me.txt字段.BackColor=16777215

EndSub

使标签闪烁以引人注意

设置窗体的TimerInterval值为1000(1秒).

formsOnTimer加入代码:

SubForm_Timer()

YourTextLabel.Visible=NotYourTextLabel.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  '解除子窗体锁定

将窗体上所有控件的输入法关掉!

来源:

不祥

PrivateSubForm_Open(CancelAsInteger)

DimctlAsAccess.Control

ForEachctlInMe.Controls

Debug.Printctl.Name&ctl.ControlType

Ifctl.ControlType=acTextBoxThen

ctl.IMEMode=2

EndIf

Next

EndSub

上述代码控制文本框,你还可以控制其他的,只要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函数来确定是否进行了选择,示例如下:

IfIsNull(Forms!

Customers!

Country)

   ThenMsgBox"Noselection."

EndIf

显示获得焦点的控件的Name:

ctlAsControl

Setctl=Screen.ActiveControl

MsgBoxctl.Name

 

窗体:

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

在窗体中放一个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的媒体播放器

插入MicrosoftMediaPlayer控件

插入控件后,在控件中属性中的几个主要选项:

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的整型值。

SubChangeBackColor(ColorCodeAsInteger,MyFormAsForm)

MyForm.BackColor=QBColor(ColorCode)

EndSub

窗体真正居中显示

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

PrivateSubForm_Load()

DoCmd.EchoFalse

Dimx,yAsInteger

DoCmd.Maximize

x=Me.WindowWidth

y=Me.WindowHeight

DoCmd.Restore

DoCmd.EchoTrue

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

EndSub

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

Table!

学生名册!

性别.ColumnHidden=-1

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

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

DimdqhdctAsForm

Setdqhdct=Screen.ActiveForm

MsgBoxdqhdct.Name

判断窗体是否打开的方法

FunctionIsLoaded(strNameAsString,OptionalintObjectTypeAsInteger=

acForm)

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

EndFunction

使用IsLoaded属性可以确定当前是否加载了AccessObject。

Boolean型,只读。

以下是一个示例:

IfCurrentProject.AllForms("frmMain").IsLoaded=TrueThen

Forms!

frmMain.Form.Visible=False

EndIf

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

不在列表中事件代码:

PrivateSub名称_NotInList(NewDataAsString,ResponseAsInteger)

Response=acDataErrContinue

IfMsgBox("您输入的名称不在列表中,在列表中添加新记录吗?

",68,"银河酒业")=6Then

Me!

[名称]=Null

DoCmd.GoToControl"单价"

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

Else

Me!

[名称]=Null

Me!

[名称].Dropdown

EndIf

EndSub

获得焦点事件代码:

PrivateSub名称_GotFocus()

Me!

[名称].Requery

EndSub

如何让窗体总在最前面?

*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

用代码选择图表样式

"柱形图"

Me.graphnow.Object.ChartType=xlColumnClustered

"折线图"

Me.graphnow.Object.ChartType=xlLineMarkers

"饼形图"

Me.graphnow.Object.ChartType=xl3DPie

"条形图"

Me.graphnow.Object.ChartType=xlBarClustered

柱形图 簇状柱形图 xlColumnClustered 

  三维簇状柱形图 xl3DColumnClustered 

  堆积柱形图 xlColumnStacked 

  三维堆积柱形图 xl3DColumnStacked 

  百分比堆积柱形图 xlColumnStacked100 

  三维百分比堆积柱形图 xl3DColumnStacked100 

  三维柱形图 xl3DColumn 

条形图 簇状条形图 xlBarClustered 

  三维簇状条形图 xl3DBarClustered 

  堆积条形图 xlBarStacked 

  三维堆积条形图 xl3DBarStacked 

  百分比堆积条形图 xlBarStacked100 

  三维百分比堆积条形图 xl3DBarStacked100 

折线图 折线图 xlLine 

  数据点折线图 xlLineMarkers 

  堆积折线图 xlLineStacked 

  堆积数据点折线图 xlLineMarkersStacked 

  堆积百分比折线图 xlLineStacked100 

  百分比堆积数据点折线图 xlLIneMarkersStacked100 

  三维折线图 xl3DLine 

饼图 饼图 xlPie 

  分离型饼图 xlPieExploded 

  三维饼图 xl3Dpie 

  三维分离型饼图 xl3DPieExploded 

  复合饼图 xlPieOfPie 

  复合柱饼图 xlBarOfPie 

XY (散点图) 散点图 xlXYScatter 

  平滑线散点图 xlXYScatterSmooth 

  无数据点平滑线散点图 xlXYScatterSmoothNoMarkers 

  折线散点图 xlXYScatterLines 

  无数据点折线散点图 xlXYScatterLinesNoMarkers 

气泡图 气泡图 xlBubble 

  三维气泡图 xlBubble3DEffect 

面积图 面积图 xlArea 

  三维面积图 xl3DArea 

  堆积面积图 xlAreaStacked 

  三维堆积面积图 xl3DAreaStacked 

  百分比堆积面积图 xlAreaStacked100 

  三维百分比堆积面积图 xl3DAreaStacked100 

圆环图 圆环图 xlDoughnut 

  分离型圆环图 xlDoughnutExploded 

雷达图 雷达图 xlRadar 

  数据点雷达图 xlRadarMarkers 

  填充雷达图 xlRadarFilled 

曲面图 三维曲面图 xlSurface 

  曲面图(俯视图) xlSurfaceTopView 

  三维曲面图(框架图) xlSurfaceWireframe 

  曲面图(俯视框架图) xlSurfaceTopViewWireframe 

股价图 盘高-盘低-收盘图 xlStockHLC 

  成交量-盘高-盘低-收盘图 xlStockVHLC 

  开盘-盘高-盘低-收盘图 xlStockOHLC 

  成交量-开盘-盘高-盘低-收盘图 xlStockVOHLC 

圆柱图 簇状柱形圆柱图 xlCylinderColClustered 

  簇状条形圆柱图 xlCylinderBarClustered 

  堆积柱形圆柱图 xlCylinderColStacked 

  堆积条形圆柱图 xlCylinderBarStacked 

  百分比堆积柱形圆柱图 xlCylinderColStacked100 

  百分比堆积条形圆柱图 xlCylinderBarStacked100 

  三维柱形圆柱图 xlCylinderCol 

圆锥图 簇状柱形圆锥图 xlConeColClustered 

  簇状条形圆锥图 xlConeBarClustered 

  堆积柱形圆锥图 xlConeColStacked 

  堆积条形圆锥图 xlConeBarStacked 

  百分比堆积柱形圆锥图 xlConeColStacked100 

  百分比堆积条形圆锥图 xlConeBarStacked100 

  三维柱形圆锥图 xlConeCol 

棱锥图 簇状柱形棱锥图 xlPyramidColClustered 

  簇状条形棱锥图 xlPyramidBarClustered 

  堆积柱形棱锥图 xlPyramidColStacked 

  堆积条形棱锥图 xlPyramidBarStacked 

  百分比堆积柱形棱锥图 xlPyramidColStacked100 

  百分比堆积条形棱锥图 xlPyramidBarStacked100 

  三维堆积柱形棱锥图 Color 属性

移动无边框窗体例子

模块:

DeclareFunctionSendMessageLib"user32"Alias"SendMessageA"(ByValhwndAsLong,ByValwMsgAsLong,ByValwParamAsLong,lParamAsAny)AsLong

DeclareFunctionReleaseCaptureLib"user32"()AsLong

PublicConstWM_NCLBUTTONDOWN=&HA1

PublicConstHTCAPTION=2

应用:

PrivateSubForm_Close()

DoCmd.RunCommandacCmdAppMaximize

EndSub

PrivateSubForm_Load()

DoCmd.RunCommandacCmdAppMinimize

EndSub

PrivateSubXPForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)

IfButton=1Then

ReleaseCapture

SendMessageMe.hwnd,WM_NCLBUTTONDOWN,HTCAPTION,0&

EndIf

EndSub

Pr

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 韩语学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1