ACCESS VBA编程(二)窗体
时 间:2012-11-13 09:03:27
作 者:周芳(转) ID:24526 城市:上海
摘 要:窗体是一种文档,可以用来收集信息。它包括两部分,一部分是由窗体设计者输入的,填写窗体的人无法更改的文字或图形。窗体设计者可以插入希望得到回答的问题、选项列表、信息表格等。另一部分是由窗体填写者输入的,用于从填写窗体者处收集信息并进行整理的空白区域。窗体设计者可以在文档中插入窗体域或 ActiveX 控件,为窗体填写者提供用于收集数据的位置。
正 文:
指定当窗体上的命令按钮保持按下状态时,是否重复执行事件过程或宏
使用 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 的整型值。
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 属性可以确定当前是否加载了 AccessObject。Boolean 型,只读。
以下是一个示例:
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
用代码选择图表样式
"柱形图"
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 属性
移动无边框窗体例子
模块:
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Declare Function ReleaseCapture Lib "user32" () As Long
Public Const WM_NCLBUTTONDOWN = &HA1
Public Const HTCAPTION = 2
应用:
Private Sub Form_Close()
DoCmd.RunCommand acCmdAppMaximize
End Sub
Private Sub Form_Load()
DoCmd.RunCommand acCmdAppMinimize
End Sub
Private Sub XPForm_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
ReleaseCapture
SendMessage Me.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&
End If
End Sub
Private Sub 命令20_Click()
DoCmd.Close
End Sub
Access软件网QQ交流群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
- Access累乘示例,Acce...(10.09)
- 数值8.88,把整数8去掉,转...(10.08)
- 【Access自定义函数】一个...(09.30)
- 【Access选项卡示例】Ac...(09.09)
学习心得
最新文章
- Access系统自带的日期选择器不...(11.08)
- 分享一下Access工程中的acw...(11.07)
- Access快速开发平台--让有权...(11.04)
- Access快速开发平台--审批选...(11.01)
- ACCESS两张表先各自排序,然后...(10.31)
- Access对子窗体数据进行批量+...(10.30)
- SqlServer中如何用SQL命...(10.29)
- Access报表中的分组功能用代码...(10.28)
- 用Access计算库存结余的一个方...(10.26)
- 最精简的组合框行来源数据快速输入(...(10.25)