Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

使用DAO增、删、改

时 间:2013-11-18 15:11:59
作 者:jia   ID:8795  城市:深圳
摘 要:使用DAO增删改的一般套路
正 文:

 

使用DAO的方式增加新记录:

---------------------------------------

Private Sub cmdSave_Click()

    Dim rst As DAO.Recordset ‘定义一个DAO方式的记录集

    Dim strSQL As String

    strSQL = "select * from tbl员工编码"

Set rst = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset)

为记录集赋值

    rst.AddNew ‘记录集新增一条记录

    rst!ygID = AccHelp_AutoID("Y", 3, "tbl员工编码", "ygID")

    rst!ygxm = Me.ygxm

    rst!xb = Me.xb  

    rst.Update ‘更新记录集

    rst.Close ‘关闭记录集

    Set rst = Nothing ‘清空记录集

    '表中已添加了新员工,刷新一下子窗体

    Forms(frm员工编码).frmChild.Requery

    '清空,方便新增下一条数据

    Me.ygxm = Null

    Me.xb = Null  

    Me.ygxm.SetFocus

End Sub

-------------------------------------------------------------------------------------------------

使用DAO删除记录

-------------------------------------------------------------------------------------------------

Private Sub cmdDel_Click()

'删除数据

    Dim rst As DAO.Recordset

    Dim strSQL As String

    Dim strID As String

    Dim strName As String

    strID = Forms!frm员工编码!frmChild.Form!ygID    '员工编码

    strName = Forms!frm员工编码!frmChild.Form!ygxm    '员工姓名

    If MsgBox("您确认要删除 [" & strID & strName & "] ?", vbOKCancel, "提示") = vbOK Then

        strSQL = "select * from tbl员工编码 where ygID='" & strID & "'"

        Set rst = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset)

        rst.MoveFirst

        rst.Delete '删除,删除之后不需要update

        rst.Close

        Set rst = Nothing

        '表中已更新了员工信息,刷新一下子窗体

        Forms(frm员工编码).frmChild.Requery

    End If

End Sub

-------------------------------------------------------------------------------------------------

使用DAO新增记录时,需要分两步进行。

-------------------------------------------------------------------------------------------------

第一步:弹出修改记录的窗提时,加载需要修改的记录。

Private Sub Form_Load()

'在窗体加载时,给窗体上的控件赋值

    Dim rst As DAO.Recordset

    Dim strSQL As String

    Dim strID As String

    strID = Forms!frm员工编码!frmChild.Form!ygID

     此段代码至关重要,主要是获取主窗体中被选中的记录

    strSQL = "select * from tbl员工编码 where ygID='" & strID & "'"

    Set rst = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset)

    rst.MoveFirst

    Me.ygxm = rst!ygxm

    Me.xb = rst!xb    

    rst.Close

    Set rst = Nothing

End Sub

-------------------------------------------------------------------------------------------------

第二步,保存修改后的记录。

-------------------------------------------------------------------------------------------------

Private Sub cmdSave_Click()

    Dim rst As DAO.Recordset

    Dim strSQL As String

    Dim strID As String

    strID = Forms!frm员工编码!frmChild.Form!ygID

    strSQL = "select * from tbl员工编码 where ygID='" & strID & "'"

    Set rst = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset)

    rst.MoveFirst

    rst.Edit

    rst!ygxm = Me.ygxm

    rst!xb = Me.xb

    rst.Update

    rst.Close

    Set rst = Nothing

    '表中已更新了员工信息,刷新一下子窗体

    Forms(frm员工编码).frmChild.Requery

    '修改数据后,关闭窗体

    DoCmd.Close acForm, "frm员工编码_child_Edit"

End Sub



Access软件网QQ交流群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助