使用DAO增、删、改-jia
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-模块/函数/VBA


使用DAO增、删、改

发表时间:2013/11/18 15:11:59 评论(2) 浏览(14759)  评论 | 加入收藏 | 复制
   
摘 要:使用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群(群号:198465573)
 
 相关文章
access开发平台新增,修改,删除,查找VBA代码详解\acce...  【Access软件网编著  2008/1/26】
Access非记录集方式新增数据到子窗体\Access主窗体添加数...  【金宇  2012/2/6】
【Access源码示例】Access调用同一个非绑定数据源窗体实现...  【金宇  2013/1/7】
Access2003数据库快速开发教程(一)  【竹笛  2013/10/30】
Access2007数据库快速开发教程(一)  【竹笛  2013/10/30】
Access2010数据库快速开发教程(一)  【竹笛  2013/10/30】
常见问答
技术分类
相关资源
文章搜索
关于作者

jia

文章分类

文章存档

友情链接