ACCESSVBA编程分解.docx

上传人:b****5 文档编号:7824263 上传时间:2023-01-26 格式:DOCX 页数:120 大小:70.17KB
下载 相关 举报
ACCESSVBA编程分解.docx_第1页
第1页 / 共120页
ACCESSVBA编程分解.docx_第2页
第2页 / 共120页
ACCESSVBA编程分解.docx_第3页
第3页 / 共120页
ACCESSVBA编程分解.docx_第4页
第4页 / 共120页
ACCESSVBA编程分解.docx_第5页
第5页 / 共120页
点击查看更多>>
下载资源
资源描述

ACCESSVBA编程分解.docx

《ACCESSVBA编程分解.docx》由会员分享,可在线阅读,更多相关《ACCESSVBA编程分解.docx(120页珍藏版)》请在冰豆网上搜索。

ACCESSVBA编程分解.docx

ACCESSVBA编程分解

ACCESS-VBA编程

第一章控件1

常量控件

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=8290VBA编程

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'解除子窗体锁定

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

来源:

不祥

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

第二章窗体

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

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

True、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:

数据表

允许分隔线

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函数声明

DeclareFunctionSetWindowPosLib"user32"(ByValhwndAsLong,ByValhWndInsertAfterAsLong,ByValxAsLong,ByValyAsLong,ByValcxAsLong,ByValcyAsLong,ByValwFlagsAsLong)AsLong

注释:

常量声明

PrivateConstSWP_NOSIZE=&H1

PrivateConstSWP_NOMOVE=&H2

PrivateConstHWND_TOPMOST=-1

PrivateConstHWND_NOTOPMOST=-2

注释:

在某个form里写:

SetWindowPosme.hWnd,WND_TOPMOST,0,0,0,0,SWP_NOMOVE注释:

或下面

SetWindowPosme.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

PrivateSub命令20_Click()

DoCmd.Close

EndSub

第三章 日期、时间函数

如何将文本型:

2003.08.04转换为日期型:

2003-08-04

cdate(replace("2003.08.04",".","-"))

显示当前日期在该年中所处的星期号

=Format(Now(),"ww")

ww为1到53。

显示日期字段值的四位年份值。

=DatePart("yyyy",[订购日期])

显示日期字段值前10天的日期值。

=DateAdd("y",-10,[应付日期])

显示日期字段值前一个月的日期值。

=DateAdd("m",-1,Date())

显示日期1和日期2之间相差的天数。

=DateDiff("d",[订购日期],[发货日期])

从今天算起到三个月后的日期之间的记录。

Betweebdate()andadddate(3,date())

根据出生日期计算年龄(周岁)

=IIf(Month(Date())-Month([出生年月日])>-1,Year(Date())-Year([出生年月日]),Year(Date())-Year([出生年月日])-1)

自定义日期/时间格式(Format函数)

(:

)时间分隔符。

在一些区域,可能用其他符号来当时间分隔符。

格式化时间值时,时间分隔符可以分隔时、分、秒。

时间分隔符的真正字符在格式输出时取决于系统的设置。

(/)日期分隔符。

在一些区域,可能用其他符号来当日期分隔符。

格式化日期数值时,日期分隔符可以分隔年、月、日。

日期分隔符的真正字符在格式输出时取决于系统设置。

C以ddddd来显示日期并且以ttttt来显示时间。

如果想显示的数值无小数部分,则只显示日期部分,如果想显示的数值无整数部分,则只显示时间部分。

D

没有前导零的数字来显示日(1–31)。

Dd

以有前导零的数字来显示日(01–31)。

ddd

以简写来表示日(Sun–Sat)。

dddd

以全称来表示日(Sunday–Saturday)。

ddddd

以完整日期表示

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

当前位置:首页 > 求职职场 > 简历

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

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