我的学习笔记
时 间:2012-12-29 13:44:29
作 者:李锋 ID:28974 城市:重庆
摘 要:学习笔记
正 文:
12-17
开始学习,要求读三遍,学会,搞懂,会操作。
学习给我们提供的UMV是企业版还是普及版?
一、如何撤销数据库密码?
从开始打开Access2003,
从文件中打开,
打开下选择以独占方式打开,
工具:安全中撤销密码。
二、重新建立数据库密码?
先按上述撤销,再一次过程,就是建立密码。
三、如何链接表?
Shift
四、正确引用
今天学了34页。
12-19
平台经常出错。
76页新增窗体
12-20
通过老师指导,学习顺利进行。
已学完第四章
报销类别主窗体制作
1、建新窗体。
2、窗体数据源:tblcodeBxlb
3、建文本档,默认视图设数据表。
4、窗体命名。
5、导航按纽设置。
6、权限定位。
7、记录集类型:快照。
新增窗体的制作
1、建新窗体。
2、文本框,及名称属性。
3、窗眉窗脚。
4、保存退出按纽。
5、窗体格式修改。
标题:无默认值,输入以下字符:员工姓名新增;
滚动条:默认值为两者都有,修改为:两者均无;
记录选定器:默认为是,修改为:否;
导航按钮:默认为是,修改为:否;
分隔线:默认是为,修改为:否;
自动调整:默认为是,修改为:否;
自动居中:默认是否,修改为:是;
边框样式:默认为可调边框,修改为:对话框边框;
最大化最小化按钮:默认为两者都有,修改为:无。
之后再选择其他选项卡,分别执行以下属性修改:
弹出方式:默认为否,修改为:是;
模式:默认为否,修改为:是。
修改完毕之后,关闭窗体属性对话框保存修改。
6、命名。
7、后台代码
Private Sub ToolbarFrm_ButtonClick(ByVal Button As Object)
Select Case Button
Case "保存"
cmd_Save
Case "关闭"
DoCmd.Close
End Select
End Sub
Private Sub cmd_Save()
Dim rst As DAO.Recordset
If IsNull(Me.lbmc) Then
MsgBox "请输入类别名称!", vbCritical, "提示:"
Me.lbmc.SetFocus
Exit Sub
End If
Me.Refresh
If Acchelp_StrDataIsExist("tblCodeBxlb", " lbmc ",Me.lbmc) = True Then
MsgBox "你输入的数据已经存在,请重新输入", vbCritical, "警告"
Me.lbmc.SetFocus
Exit Sub
End If
If MsgBox("您确认要保存吗?", vbOKCancel + vbInformation, "提示") = vbOK Then
Set rst = CurrentDb.OpenRecordset("tblCodeBxlb", dbOpenDynaset)
rst.AddNew
rst("lbId") = acchelp_autoid("L", 2, "tblCodeBelb", "lbId")
rst("lbmc") = Me.lbmc
rst.Update
rst.Close
Set rst = Nothing
'刷新数据
If IsLoaded("usysfrmMain") Then
DoCmd.Echo False
Forms!usysfrmMain!frmChild.SourceObject = "frmcodeBxlb_child"
DoCmd.Echo True
End If
MsgBox "保存成功!", vbInformation, "提示"
Me.lbmc = Null
End If
End Sub
8、导航及权限设置
9、界面美化
选中文本框(而不是标签),工具栏上的填充/背景色按钮:黄
特殊效果:平面
线条/边框颜色:深灰
背景样式:透明
修改窗体的制作:
1、新建窗体。
2、文本框。
3、关闭控件。
4、属性修改。
标题:无默认值,输入以下字符:员工姓名修改;
滚动条:默认值为两者都有,修改为:两者均无;
记录选定器:默认为是,修改为:否;
导航按钮:默认为是,修改为:否;
分隔线:默认是为,修改为:否;
自动调整:默认为是,修改为:否;
自动居中:默认是否,修改为:是;
边框样式:默认为可调边框,修改为:对话框边框;
最大化最小化按钮:默认为两者都有,修改为:无;
关闭按钮:默认为是,修改为:否。
之后再单击数据选项卡,执行下列属性修改:
允许添加:默认为是,修改为:否。(新增没有此项)
之后再选择其他选项卡,分别执行以下属性修改:
弹出方式:默认为否,修改为:是;
模式:默认为否,修改为:是。
5、模块设置
Public selectstr As String
6、主窗体lbid框获得焦点代码:
Private Sub lbId_GotFocus()
On Error GoTo Err_lbId_GotFocus:
selectstr = Me.lbId
Forms!usysfrmMain!labFind.Tag = 1
Forms!usysfrmMain!btnEdit.Tag = 999
Exit_lbId_GotFocus:
Exit Sub
Err_lbId_GotFocus:
Resume Exit_lbId_GotFocus
End Sub
7、成为当前代码:=selectrecord()
8、修改加载代码:
Private Sub Form_Load()
Me.RecordSource = "Select * FROM tblCodeBxlb Where lbId = '" & selectstr & "'"
g_CurrentSelectStrID = selectstr
End Sub
9、lbmc控件来源:lbmc
10、代码:
Private Sub ToolbarFrm_ButtonClick(ByVal Button As Object)
If IsNull(Me.lbmc) Then
MsgBox "请输入报销类别!", vbCritical, "提示:"
Me.lbmc.SetFocus
Exit Sub
End If
Me.Refresh
DoCmd.Echo False
Forms!usysfrmMain!frmChild.SourceObject = "frmcodeBxlb_child"
DoCmd.Echo True
'触发子窗体计时器事件
Forms!usysfrmMain!frmChild.Form.TimerInterval = 300
DoCmd.Close acForm, "frmcodeBxlb_child_Edit"
End Sub
11、计时代码:
Public g_CurrentSelectStrID As String
主窗体计时触发:
Acchelp_FindstrRecord (g_CurrentSelectStrID)
'计时器执行一次后不再执行
Me.TimerInterval = 0
修改窗体代码:
g_CurrentSelectStrID = selectstr
删除:
主窗体中代码:
Public Sub btnDel()
If MsgBox("您确认要删除吗?", vbYesNo + vbInformation, Forms!usysfrmLogin.Caption) = vbYes Then
DoCmd.Echo False
Call AccHelp_DeleteFldstrRow("tblCodeBxlb", "lbId", selectstr)
Forms!usysfrmMain!frmChild.SourceObject = "frmcodeBxlb_child"
DoCmd.Echo True
End If
End Sub
12-21
继续学习89页。
12-22
第5章 报销明细窗体的设计
1.创建查询
应先制作查询,再以查询作数据源。
报销明细查询qryBxmx
将字段汉字化
2.基础数据界面的制作
创建窗体
确定记录源
记录源上窗体
修改窗体属性的格式选项卡的默认视图属性,更改为:数据表,并将数据选项卡的记录集类型属性修改为:快照。之后保存设计,命名为frmBxmx_child。
添加报销管理导航菜单
赋予权限
3.新增窗体的制作
创建新窗体
创建文本框、组合框
设置名称属性:应与表字段名一致
窗体命名
布局调整和美化
标题命名:报销明细新增
代码:
Private Sub ToolbarFrm_ButtonClick(ByVal Button As Object)
Select Case Button
Case "保存"
cmd_Save
Case "关闭"
DoCmd.Close
End Select
End Sub
Private Sub cmd_Save()
Dim rst As DAO.Recordset
If IsNull(Me.bxrq) Then
MsgBox "请输入报销日期!", vbCritical, "提示:"
Me.bxrq.SetFocus
Exit Sub
End If
If IsNull(Me.lbId) Then
MsgBox "请输入报销类别!", vbCritical, "提示:"
Me.lbId.SetFocus
Exit Sub
End If
If IsNull(Me.ygId) Then
MsgBox "请输入员工姓名!", vbCritical, "提示:"
Me.ygId.SetFocus
Exit Sub
End If
If IsNull(Me.bxje) Then
MsgBox "请输入报销金额!", vbCritical, "提示:"
Me.bxje.SetFocus
Exit Sub
End If
Me.Refresh
If MsgBox("您确认要保存吗?", vbOKCancel + vbInformation, "提示") = vbOK Then
Set rst = CurrentDb.OpenRecordset("tblBxmx", dbOpenDynaset)
rst.AddNew
rst("mxId") = acchelp_autoid("M", 10, "tblBxmx", "mxId")
rst("bxrq") = Me.bxrq
rst("lbId") = Me.lbId
rst("ygId") = Me.ygId
rst("bxje") = Me.bxje
rst("bxzy") = Me.bxzy
rst.Update
rst.Close
Set rst = Nothing
'刷新数据
If IsLoaded("usysfrmMain") Then
DoCmd.Echo False
Forms!usysfrmMain!frmChild.SourceObject = "frmBxmx_child"
DoCmd.Echo True
End If
MsgBox "保存成功!", vbInformation, "提示"
Me.bxrq = Null
Me.lbId = Null
Me.ygId = Null
Me.bxje = Null
Me.bxzy = Null
End If
End Sub
组合框背景样式:透明
行来源选定表
数据选项卡
绑定列:1
格式选项卡
列数:2
列宽:0cm;2cm
列表行数:20
列表宽度:2cm
导航和分配权限
4.修改窗体的制作
新窗体、文本组合框、关闭
窗体命名
名称、控件来源
窗体属性:
格式选项卡:
标题:报销明细修改;
滚动条:两者均无;
记录选定器:否;
导航按钮:否;
分隔线:否;
自动调整:否;
自动居中:是;
边框样式:对话框边框;
控制框:否(新增窗体不需要修改这一属性);
最大化最小化按钮:无;
关闭按钮:否。
数据选项卡,:
允许添加:否。
其他选项卡:
弹出方式:是;
模式:是。
主窗体报销编号文本框获得焦点事件:
On Error GoTo Err_报销编号_GotFocus:
selectstr = Me.报销编号
Forms!usysfrmMain!labFind.Tag = 1
Forms!usysfrmMain!btnEdit.Tag = 999
Exit_报销编号_GotFocus:
Exit Sub
Err_报销编号_GotFocus:
Resume Exit_报销编号_GotFocus
主窗体成为当前:=selectrecord()
修改加载事件:
Private Sub Form_Load()
Me.RecordSource = "Select * FROM tblBxmx Where mxId = '" & selectstr & "'"
g_CurrentSelectStrID = selectstr
End Sub
Private Sub ToolbarFrm_ButtonClick(ByVal Button As Object)
If IsNull(Me.bxrq) Then
MsgBox "请输入报销日期!", vbCritical, "提示:"
Me.bxrq.SetFocus
Exit Sub
End If
If IsNull(Me.lbId) Then
MsgBox "请输入报销类别!", vbCritical, "提示:"
Me.lbId.SetFocus
Exit Sub
End If
If IsNull(Me.ygId) Then
MsgBox "请输入员工姓名!", vbCritical, "提示:"
Me.ygId.SetFocus
Exit Sub
End If
If IsNull(Me.bxje) Then
MsgBox "请输入报销金额!", vbCritical, "提示:"
Me.bxje.SetFocus
Exit Sub
End If
Me.Refresh
DoCmd.Echo False
Forms!usysfrmMain!frmChild.SourceObject = "frmBxmx_child"
DoCmd.Echo True
'触发子窗体计时器事件
Forms!usysfrmMain!frmChild.Form.TimerInterval = 300
DoCmd.Close acForm, "frmBxmx_child_Edit"
End Sub
主窗体时间触发事件:
Acchelp_FindstrRecord (g_CurrentSelectStrID)
'计时器执行一次后不再执行
Me.TimerInterval = 0
5.删除功能的添加:主窗体
Public Sub btnDel()
If MsgBox("您确认要删除吗?", vbYesNo + vbInformation, Forms!usysfrmLogin.Caption) = vbYes Then
DoCmd.Echo False
Call AccHelp_DeleteFldstrRow("tblBxmx", "mxId", selectstr)
Forms!usysfrmMain!frmChild.SourceObject = "frmBxmx_child"
DoCmd.Echo True
End If
End Sub
6.查询功能的设计与应用
Public Sub btnFind()
DoCmd.OpenForm "usysfrmFind"
'文本型对应3,日期型对应1,数值型对于2
Forms!usysfrmFind!cobfldName.RowSource = "报销日期;1;类别名称;3;员工姓名;3;报销金额;2;报销摘要;3;"
'指定查询数据来源
Forms!usysfrmFind!labDataSource.Caption = "qryBxmx"
End Sub
Public Sub FindEnd()
Forms!usysfrmMain!frmChild.Form.RecordSource = Acchelp_ChildFormRecordSource("qryBxmx", "报销编号", True)
End Sub
第六章控件使用介绍
日期控件的使用
119页
基础资料的快捷添加
自动跳转功能
1.当前文本框获得焦点事件:
Me.lbId.Dropdown ‘lbId为当前文本框名称
2.当前文本框更新后事件:
Me.ygId.SetFocus ‘ygID为下一个文本框名称
7.2 静态报表的制作
所谓静态报表就是只能对所有记录进行统计,不能通过查询而变化。
7.3 动态报表的制作
7.4 动态报表切换面板的制作
8.1 部门以及用户组权限
第九章平台函数
9.2 自增序号
AccHelp_AutoID 自增序号函数
功能: AccHelp_AutoID 函数可用于自动编号,例如:
B00001
B00002
B00003
语法: AccHelp_AutoID(prefixion As String, IDlength As Integer, tblName As String, fldName As String)
prefixion 编码前缀 , 如果不需要前缀,可用 "" 代替,如 AccHelp_AutoID("",5," 表名称 "," 字段名称 ")
IDlength 编码位数
tblName 表名称
fldName 自增序号的字段名称
例:AccHelp_AutoID("Y",5," 表名称 "," 字段名称 ")
rst("ygId") = acchelp_autoid("Y",2, "tblCodeyg", "ygId")
rst("mxId") = acchelp_autoid("M",10, "tblBxmx", "mxId")
9.3 定位记录
Acchelp_FindNumRecord 函数 ( 定位数字型 )
功能: Acchelp_FindNumRecord 函数可用于定位某条记录。
语法: Acchelp_FindNumRecord (n) ,比如 n=3 时,即可以定位 3 这条记录。
示例:
'在修改窗体的关闭事件中写下列代码:
'假定当前修改的 ID 变量是 RecID, 则
Forms!usysfrmMain!frmChild.Form.ID.SetFocus' 这个 ID 要根据你子窗体中的实际字段名称而定
Acchelp_FindNumRecord (RecID)
Acchelp_FindStrRecord 函数 ( 定位文本型 )
功能: Acchelp_FindStrRecord 函数可用于定位某条记录。
语法: Acchelp_FindStrRecord (M) ,比如 M=H0003 时,即可以定位 H0003 这条记录 ,M 为文本型。
示例:
'在修改窗体的关闭事件中写下列代码:
'假定当前修改的 ID 变量是 StrID, 则
Forms!usysfrmMain!frmChild.Form.ID.SetFocus' 这个 ID 要根据你子窗体中的实际字段名称而定
Acchelp_FindStrRecord (StrID)
Private Sub Form_Timer()
Acchelp_FindstrRecord (g_CurrentSelectStrID)
'计时器执行一次后不再执行
Me.TimerInterval = 0
End Sub
9.4 获得字段的名称
Acchelp_GetColumnName 函数
功能: Acchelp_GetColumnName 函数可用于获得表或查询中的字段名称,用分号隔开,用于组合框或列表框的行来源,组合框或列表框的行来源类型必须选择值列表。
语法: Acchelp_GetColumnName(" 表或者查询名称 ")
示例 :
Dim strSQL as string
strSQL = Acchelp_GetColumnName("tbl 销售明细 ")
Debug.Print strSQL
9.5 判断生日到期天数
功能: Acchelp_Birdays 函数获得离生日到期天数。
语法: Acchelp_Birdays( 出生日期 , 目标日期 )
示例:
'假定某人的出生日期为 1989-2-1, 目标日期为 2006-3-3
Dim x as Integer
Dim sDate as Date
Dim eDate as Date
sDate = #2/1/1989#
eDate =#3/3/2006#
x =Acchelp_Birdays(sDate,eDate)
Debug.Print x
9.6 获得年龄
Acchelp_ages 函数
功能: Acchelp_ages 函数获得年龄。
语法: Acchelp_ages( 出生日期 , 当前日期 )
示例:
'假定某人的出生日期为 1989-2-1
Dim x as Integer
Dim sDate as Date
sDate = #2/1/1989#
x =Acchelp_Birdays(sDate,Date)
Debug.Print x
9.7 判断表是否存在
fExistTable 函数
功能: fExistTable 函数可用于判断当前数据库中是否存在某个表。
语法: fExistTable(" 表名称 ") ,如果返回值为 True, 则表示该表存在,如果返回值为 False, 则表示该表不存在。
示例:
If fExistTable("tbl 销售明细 ")=True Then
Msgbox " 该表存在 "
Else
Msgbox " 该表不存在 "
End If
9.8 判断表中是否存在记录
功能: CheckRecords 函数可用于判断某表中是否存在记录。
语法: CheckRecords(" 表名称 ") ,如果返回值为 True, 则表示该表有至少一条记录,如果返回值为 False, 则表示该表没有记录。
示例:
'我们假定有表 tbl 销售明细
If CheckRecords("tbl 销售明细 ")=True Then
Msgbox " 该表存在记录 "
Else
Msgbox " 该表不存在记录 "
End If
9.9 删除记录
AccHelp_DeleteFldNumRow 函数(删除数字型)
功能: AccHelp_DeleteFldNumRow 函数根据某字段条件删除某表中某个字段符合条件 ( 必须是长整型数字 ) 的记录 , 一般用于根据序号来删除表中的一条记录,亦可删除满足条件的多条记录。
语法: AccHelp_DeleteFldNumRow(" 表名称 "," 条件字段名称 ", 数字型变量 )
示例:
'下面的代码将删除表 tblSale 中字段 ID 中的值等于 100 的记录
Call AccHelp_DeleteFldNumRow("tblSale", "ID", 100)
AccHelp_DeleteFldStrRow 函数(删除文本型)
功能: AccHelp_DeleteFldStrRow 函数根据某字段条件删除某表中某个字段符合条件 ( 必须是文本型 ) 的记录 , 一般用于根据文本来删除表中的一条记录,亦可删除满足条件的多条记录。
语法: AccHelp_DeleteFldStrRow(" 表名称 "," 条件字段名称 ", 文本型变量 ) 。
示例:
'下面的代码将删除表 tblSale 中字段 conID 中的值等于 S00005 的记录
Call AccHelp_DeleteFldStrRow("tblSale", "conId", "S00005")
DoCmd.Echo False
Call AccHelp_DeleteFldstrRow("tblCodeyg", "ygId", selectstr)
Forms!usysfrmMain!frmChild.SourceObject = "frmyg_child"
DoCmd.Echo True
9.10 判断表中字段存在某值
功能: Acchelp_StrDataIsExist 函数可用于判断某表中某个文本型字段是否存在某个值。
语法: Acchelp_StrDataIsExist(" 表名称 "," 字段名称 "," 文本值 ") ,如果返回值为 True, 则表示该表该字段中存在这个文本值,如果返回值为 False, 则表示不存在。
示例:
'我们假定有表 sys_tblMenu
If Acchelp_StrDataIsExist("sys_tblMenu", "menuName", " 菜单二 ") = True Then
MsgBox "sys_tblMenu 表中 menuID 字段中存在菜单二 "
Else
MsgBox "sys_tblMenu 表中 menuID 字段中不存在菜单二 "
End If
Acchelp_NumDataIsExist 函数
If Acchelp_StrDataIsExist("tblCodeyg", "ygxm", Me.ygxm) = True Then
MsgBox "你输入的数据已经存在,请重新输入", vbCritical, "警告"
Me.ygxm.SetFocus
功能: Acchelp_NumDataIsExist 函数可用于判断某表中某个数字型字段是否存在某个值。
语法: Acchelp_NumDataIsExist(" 表名称 "," 字段名称 ", 数值 ) ,如果返回值为 True, 则表示该表该字段中存在这个文本值,如果返回值为 False, 则表示不存在。
示例:
'我们假定有表 sys_tblMenu
If Acchelp_NumDataIsExist("sys_tblMenu", "menuID", 1) = True Then
MsgBox "sys_tblMenu 表中 menuID 字段中存在 1"
Else
MsgBox "sys_tblMenu 表中 menuID 字段中不存在 1"
End If
学完一遍,第二遍进行集中,重点是窗体的制作。主窗体和新增窗体学完。
12-24
修改窗体小结
12-26
学习了平台函数在实际的例子;
学习代码至新增5
12-27
新增6组合框
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.18)
- 不会用多表联合查询,多表查询没结果...(11.16)
- 【案例分享】主键字段值含有不间断空...(11.16)
- Access快速开发平台--后台D...(11.14)
- 微软Access邀测新Monaco...(11.12)
- Access列表框左右互选、列表框...(11.11)
- 高效率在导入数据前删除记录(11.10)
- Access报价单转订单示例代码(11.08)
- Access系统自带的日期选择器不...(11.08)
- 分享一下Access工程中的acw...(11.07)