设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

什么样的recordset可以使用fields.delete方法?

[复制链接]
跳转到指定楼层
1#
发表于 2012-8-2 17:05:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
对于打开的Recordset 无法调用 Fields.Delete和Append 方法, 问题是如果需要,如何才能执行这2个方法呢?下面是我的代码,再下面是网上查到的资料。


    Dim dbs As DAO.Database
    Dim rsSQL As DAO.Recordset
    Dim strSQL As String
   
    Set dbs = CurrentDb
   
    'Open a snapshot-type Recordset based on an SQL statement
    strSQL = "SELECT top 1 * FROM Table1"
    Set rsSQL = dbs.OpenRecordset(strSQL, dbOpenDynaset)
   
    rsSQL.Fields.Delete ("name")
    rsSQL.Fields.append ("choose", Boolean)  'append的语法不知道怎么写

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

Delete 方法 (ADO Fields 集合)

从 Fields 集合中删除对象。

语法

Fields.Delete Field

参数

Field 变体型,指定将要删除的 Field 对象。该参数必须是 Field 对象名而不能是序号位置或 Field 对象本身。

说明

对打开的 Recordset 调用 Fields.Delete 方法将引起运行时错误

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

Append 方法

对打开的 Recordset 或已设置 ActiveConnection 属性的 Recordset,调用其 fields.Append 方法将引发运行时错误。只能将字段追加到没有打开并且尚未连接到数据源的 Recordset。一般地,通过 CreateRecordset 方法或通过将新 Recordset 对象显式赋给对象变量所创建的都是新 Recordset 对象
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2012-8-2 19:27:32 | 只看该作者
记录集没有对字段的操作(ADOx倒是可以),字段的增删是在表对象中执行的,——当然不止一种方法(据我所知至少有4种),以下是DAO的增删字段。
  1. Sub test()
  2. Dim db As DAO.Database
  3. Dim tbl As DAO.TableDef
  4. Set db = CurrentDb
  5. Set tbl = db.TableDefs("表1")
  6. '前提是必须有ss字段,否则会出错。可以增加On Error Resume Next跳过错误。
  7. tbl.Fields.Delete ("ss")
  8. '创建一个长度为50的文本类型字段m(同样地,如果已存在这个字段则会出错)。
  9. tbl.Fields.Append tbl.CreateField("m", dbText, 50)
  10. End Sub
复制代码
3#
 楼主| 发表于 2012-8-3 10:36:15 | 只看该作者
谢谢版主,看来recordset不像想象的那么灵活,那么你知道access VBA里能用dataset吗?这个功能应该更强些。
4#
发表于 2012-8-3 21:00:09 | 只看该作者
对此我不清楚。年前TodayNew(老汉)正在钻研ASP.Net,请教他可能更合适些。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-1 20:28 , Processed in 0.088802 second(s), 27 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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