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


我的学习笔记

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

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

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

李锋

文章分类

文章存档

友情链接