第二阶段学习笔记-李锋
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> 程序人生


第二阶段学习笔记

发表时间:2012/12/29 13:46:42 评论(1) 浏览(5786)  评论 | 加入收藏 | 复制
   
摘 要:笔记
正 文:
 

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

4ID获得焦点代码:

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

字段名:mxIdbxrqlbIdygIdbxjebxzy

文本框:Me.bxrqMe.lbIdMe.ygIdMe.bxjeMe.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群(群号:198465573)
 
 相关文章
我的报销管理学习总结笔记  【七夜  2012/7/28】
我的变速箱作业三完成后的总结笔记  【七夜  2012/8/5】
变速箱开发笔记概要  【七夜  2012/9/8】
我的学习笔记  【李锋  2012/12/29】
常见问答
技术分类
相关资源
文章搜索
关于作者

李锋

文章分类

文章存档

友情链接