第二阶段学习笔记
时 间:2012-12-29 13:46:42
作 者:李锋 ID:28974 城市:重庆
摘 要:笔记
正 文:
UMV学习笔记
一、教程中分二个板块,一个基础资料,一个报销管理。基础资料属代码类,报销管理属一般表类。
表要增加、修改、删除。
查找要用查询作数据源。
二、前缀
表tbl
窗体frm
查询qry
报表rpt
三、基础窗体的制作
1.窗体属性
窗体名字:frm***_child
属性:***_主数据窗体
记录集类型:快照
记录源:选定表
默认视图:数据表
2.增加控件,美化
3.代码:
(1)窗体成为当前事件:=selectrecord()'修改获得焦点事件1执行内置命令,选定变蓝。
(2)计时器触发事件:修改返回原始定位
Private Sub Form_Timer()
'将定位记录函数。说明当保存修改结果时触发计时器TimerInterval;基础窗体打开后,ID获得焦点将selectstr = Me.ygId赋值给全局变量;修改窗口加载时g_CurrentSelectStrID = selectstr ,ID值赋给此变量;计时器触发后定位此记录。
Acchelp_FindstrRecord (g_CurrentSelectStrID)
'计时器执行一次后不再执行
Me.TimerInterval = 0
End Sub
(3)删除代码:
Public Sub btnDel()
If MsgBox("您确认要删除吗?", vbYesNo + vbInformation, Forms!usysfrmLogin.Caption) = vbYes Then
DoCmd.Echo False
'将删除记录函数,删除表中YGID字段,记录为全局变量的记录
Call AccHelp_DeleteFldstrRow("tblCodeyg", "ygId", selectstr)
Forms!usysfrmMain!frmChild.SourceObject = "frmyg_child"'将显示此窗体
DoCmd.Echo True
End If
End Sub
(4)ID获得焦点代码:
Private Sub ygId_GotFocus()
On Error GoTo Err_ygId_GotFocus:
'将ID值存入全局变量,修改获得焦点事件2
selectstr = Me.ygId
'系统主菜单的两个控件的Tag赋值
Forms!usysfrmMain!labFind.Tag = 1
Forms!usysfrmMain!btnEdit.Tag = 999
Exit_ygId_GotFocus:
Exit Sub
Err_ygId_GotFocus:
Resume Exit_ygId_GotFocus
End Sub
四、新增窗体的制作
1.窗体名字和属性
Frm***_child_Add
***_新增窗体
无记录源
2.添加文本框或组合框,保存和关闭控件
未绑定
控件的名称:同表的字段同名
控件来源:同表的字段同名
3.窗体属性
格式选项卡:
标题:***新增;
滚动条:两者均无;
记录选定器:否;
导航按钮:否;
分隔线:否;
自动调整:否;
自动居中:是;
边框样式:对话框边框;
最大化最小化按钮:无。
之后再选择其他选项卡,分别执行以下属性修改:
弹出方式:是;
模式:是。
4.美化
文本框(而不是标签),之后再击工具栏上的填充 / 背景色按钮 ,选择黄色。
文本框(而不是标签),之后再击工具栏上的特殊效果 ,选择平面。
文本框(而不是标签),之后再击工具栏上的线条 / 边框颜色 ,选择深灰色。
文本框的属性对话框,选择格式选项卡,将背景样式,由常规修改为透明。
5.代码:
后台主代码
(1)一个文本框
表:tblCodeyg
字段名:ygId 、ygxm
文本框:Me.ygxm
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.ygxm) Then
MsgBox "请输入员工姓名!", vbCritical, "提示:"
Me.ygxm.SetFocus
Exit Sub
End If
Me.Refresh
'判断表中字段存在某值
If Acchelp_StrDataIsExist("tblCodeyg", "ygxm", Me.ygxm) = True Then
MsgBox "你输入的数据已经存在,请重新输入", vbCritical, "警告"
Me.ygxm.SetFocus
Exit Sub
End If
If MsgBox("您确认要保存吗?", vbOKCancel + vbInformation, "提示") = vbOK Then
Set rst = CurrentDb.OpenRecordset("tblCodeyg", dbOpenDynaset)
rst.AddNew
rst("ygId") = acchelp_autoid("Y",2, "tblCodeyg", "ygId")
rst("ygxm") = Me.ygxm
rst.Update
rst.Close
Set rst = Nothing
'刷新数据
If IsLoaded("usysfrmMain") Then
DoCmd.Echo False
Forms!usysfrmMain!frmChild.SourceObject = "frmyg_child"
DoCmd.Echo True
End If
MsgBox "保存成功!", vbInformation, "提示"
Me.ygxm = Null
End If
End Sub
(2)多个文本框或组合框
表:tblBxmx
字段名:mxId、bxrq、lbId、ygId、bxje、bxzy
文本框:Me.bxrq、Me.lbId、Me.ygId、Me.bxje、Me.bxzy
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
6.组合框
转为组合框;
背景样式:透明;
行来源:选定表
数据选项卡
绑定列: 1
格式选项卡
列数: 2
列宽: 0cm;2cm
列表行数: 20
列表宽度: 2cm
五、数据库模块variable
'打开窗口能显示上一窗口选定的记录用,修改用
Public selectstr As String
'文本型变量,修改返回原始定位
Public g_CurrentSelectStrID As String
'动态报表使用
Public strRptReSource As String
六、修改窗体的制作
1.窗体名字和属性
Frm***_child_Edit
***_修改窗体
窗体无记录源
2.添加文本框或组合框,关闭控件
未绑定
控件的名称:同表的字段同名
控件来源:同表的字段同名
3.窗体属性
标题:**修改;
滚动条:两者均无;
记录选定器:否;
导航按钮:否;
分隔线:否;
自动调整:否;
自动居中:是;
边框样式:对话框边框;
最大化最小化按钮:无;
关闭按钮:否。
数据选项卡,执行下列属性修改:
允许添加:否。
其他选项卡,分别执行以下属性修改:
弹出方式:是;
模式:是。
4.代码
(1)加载事件:
Private Sub Form_Load()
'修改获得焦点4,记录源
Me.RecordSource = "Select * FROM tblBxmx Where mxId = '" & selectstr & "'"
'修改返回原始定位
g_CurrentSelectStrID = selectstr
End Sub
(2)窗体事件
Private Sub ToolbarFrm_ButtonClick(ByVal Button As Object)
If IsNull(Me.ygxm) Then
MsgBox "请输入员工姓名!", vbCritical, "提示:"
Me.ygxm.SetFocus
Exit Sub
End If
Me.Refresh
DoCmd.Echo False
Forms!usysfrmMain!frmChild.SourceObject = "frmyg_child"
DoCmd.Echo True
'触发子窗体计时器事件,修改返回原始定位
Forms!usysfrmMain!frmChild.Form.TimerInterval = 300
DoCmd.Close acForm, "frmyg_child_Edit"
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
Access软件网官方交流QQ群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- 统计当月之前(不含当月)的记录...(03.11)
- 【Access Inputbo...(03.03)
- 按回车键后光标移动到下一条记录...(02.12)
- 【Access Dsum示例】...(02.07)
- Access对子窗体的数据进行...(02.05)
- 【Access高效办公】上月累...(01.09)
- 【Access高效办公】上月累...(01.06)
- 【Access Inputbo...(12.23)
- 【Access Dsum示例】...(12.16)

学习心得
最新文章
- 仓库管理实战课程(9)-开发往来单...(04.02)
- 仓库管理实战课程(8)-商品信息功...(04.01)
- 仓库管理实战课程(7)-链接表(03.31)
- 仓库管理实战课程(6)-创建查询(03.29)
- 仓库管理实战课程(5)-字段属性(03.27)
- 设备装配出入库管理系统;基于Acc...(03.24)
- 仓库管理实战课程(4)-建表操作(03.22)
- 仓库管理实战课程(3)-需求设计说...(03.19)
- 仓库管理实战课程(2)-软件背景和...(03.18)
- 仓库管理实战课程(1)-讲师介绍(03.16)