ACCESS-VBA编程
录,只决定是否显示已有的记录。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(\Forms!frmMain.Form.Visible = False End If
窗体中组合框不在列表中示例 不在列表中事件代码:
Private Sub 名称_NotInList(NewData As String, Response As Integer) Response = acDataErrContinue
6
ACCESS-VBA编程
If MsgBox(\您输入的名称不在列表中,在列表中添加新记录吗?\银河酒业\
Me![名称] = Null
DoCmd.GoToControl \单价\
DoCmd.OpenForm \酒名列表\ Else
Me![名称] = Null Me![名称].Dropdown End If End Sub
获得焦点事件代码:
Private Sub 名称_GotFocus() Me![名称].Requery End Sub
如何让窗体总在最前面? *API函数声明
Declare Function SetWindowPos Lib \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
7
ACCESS-VBA编程
折线图 折线图 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
8
ACCESS-VBA编程
百分比堆积条形圆锥图 xlConeBarStacked100 三维柱形圆锥图 xlConeCol
棱锥图 簇状柱形棱锥图 xlPyramidColClustered 簇状条形棱锥图 xlPyramidBarClustered 堆积柱形棱锥图 xlPyramidColStacked 堆积条形棱锥图 xlPyramidBarStacked
百分比堆积柱形棱锥图 xlPyramidColStacked100 百分比堆积条形棱锥图 xlPyramidBarStacked100 三维堆积柱形棱锥图 Color 属性 移动无边框窗体例子 模块:
Declare Function SendMessage Lib \Long, ByVal wParam As Long, lParam As Any) As Long
Declare Function ReleaseCapture Lib \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
如何移动没有标题栏的窗口?
我们一般是用鼠标按住窗口的标题栏,然后移动窗口,当窗口没有标题栏时,我们可以用下面的方法来移动窗口:
*API函数声明:
Declare Function ReleaseCapture Lib \\Any) As Long
Public Const HTCAPTION = 2
Public Const WM_NCLBUTTONDOWN = &HA1 在 Form_MouseDown 事件中:
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) ReleaseCapture SendMessage hwnd, WM_NCLBUTTONDOWN, HTCAPTION,0& End Sub
9
ACCESS-VBA编程
日期、时间函数
如何将文本型:2003.08.04 转换为日期型:2003-08-04 cdate(replace(\显示当前日期在该年中所处的星期号 =Format(Now(), \ww 为 1 到 53。
显示日期字段值的四位年份值。 =DatePart(\订购日期])
显示日期字段值前 10 天的日期值。 =DateAdd(\应付日期]) 显示日期字段值前一个月的日期值。 =DateAdd(\
显示日期1和日期2之间相差的天数。
=DateDiff(\订购日期], [发货日期])
从今天算起到三个月后的日期之间的记录。 Betweeb date() and adddate(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
以完整日期表示法显示(包括年、月、日),日期的显示要依系统的短日期格式设置而定。缺省的短日期格式为 m/d/yy。 dddddd
以完整日期表示法显示日期系列数(包括年、月、日),日期的显示要依系统识别的长日期格式而定。缺省的长日期格式为 mmmm dd, yyyy。 aaaa
与dddd 一样,它只是该字符串的本地化版本。 W
将一周中的日期以数值表示(1 表星期日~ 7表星期六)。 ww
将一年中的星期以数值表示 (1 – 54)。 M
以没有前导零的数字来显示月 (1 – 12)。如果 m 是直接跟在 h 或 hh 之后,那么显示的将是分而不是月。 mm
10