设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1653|回复: 6
打印 上一主题 下一主题

[ADO/DAO] 对书中的做法,我很疑惑!关于删除表中记录的问题

[复制链接]
跳转到指定楼层
1#
发表于 2011-6-10 12:35:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
书中的做法    Private Sub 删除_Click()
          Dim STemp As String
         Dim Rs As ADODB.Recordset
         Set Rs = New ADODB.Recordset
   
          STemp = "DELETE * From 预定记录"
            DoCmd.RunSQL STemp

         Set Rs = Nothing
                End Sub

但为什么我不要那么多的代码,只要其中的两行也可以呢?如 只要这样:
我的做法           Private Sub 删除_Click()
                 STemp = "DELETE * From 预定记录"
                DoCmd.RunSQL STemp
                      End Sub
书中的做法和我的做法二的实质是一样的吗?
书中的做法中 Dim Rs As ADODB.Recordset Set Rs = New ADODB.Recordset 这些代码是否多余了?
为什么我的做法没有创建(定义)一个记录集,也能进行对表的操作呢?是否是隐式还是什么原因呢?
请帮我解疑 谢谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2011-6-10 13:16:14 | 只看该作者
本帖最后由 roych 于 2011-6-10 13:17 编辑

书中既然定义了记录集,理论上后续工作会有打开和相关操作的步骤。——如果没有这些后续工作,则没有定义记录集的必要性。
直接执行RunSQL没错,也可以打开记录集后再用delete方法来操作。
3#
发表于 2011-6-10 13:34:17 | 只看该作者
如果说,单纯是删除表记录,你的做法是对的,更为直接的是,变量也无需定义,如:
4#
发表于 2011-6-10 13:35:45 | 只看该作者
Private Sub 删除_Click()
DoCmd.RunSQL "DELETE * From 预定记录"
End Sub

点击这里给我发消息

5#
发表于 2011-6-10 21:11:21 | 只看该作者
不错,就是要这样读书,可以增强自己的判断能力,写出优质的代码。
“尽信书,不如无书”
呵呵。

点击这里给我发消息

6#
发表于 2011-6-10 21:34:57 | 只看该作者
不妨我在这里讲讲,在Access中执行SQL语句的几种方法:
1. Docmd.RunSQL
这是最常见的运行动作查询(定义、删除、更新)的方法,这种方法,不会返回结果集(数据),默认情况下,Access会先提示或警告,它是Access的内置方法。
2.通过ADO对象执行SQL语句
这种方法,通常需要先引用ADO,然后利用ADO连接对象来执行SQL语句。Access有这样一个内置对象的ADO连接对象CurrentProject.Connection,我们可以通过它执行SQL语句或者存储过程,方法如下:
a.有结果集的SQL语句
Dim sSQL As String
sSQL = "SELECT * FROM SomeTable"
Dim rs As ADODB.Recordset
Set rs = CurrentProject.Connection.Execute(sSQL)
结果集保存在名为rs的ADO记录集对象中。这样的结果是只读的,通常用来查找特定的数据。

b.执行动作查询(定义、删除、更新)
Dim sSQL As String
sSQL = "UPDATE TABLE SomeTable SET Field1 = Field1 + 1000, Field2 = 'Sometime update data' WHERE ID > 1000"
Dim n As Long
CurrentProject.Connection.Execute sSQL, n
MsgBox "本次更新了 " & n & " 条记录"
这种操作与Docmd.RunSQL极为类似,但不会有提示和警告。
3.除了可以使用ADO对象执行SQL语句外,DAO对象也可以,使用方法与ADO类似,就不在这重述。
7#
发表于 2011-6-12 10:14:10 | 只看该作者
书有一定的误导,但要认真分析,学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-10 04:45 , Processed in 0.100508 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表