Office中国论坛/Access中国论坛
标题:
什么样的recordset可以使用fields.delete方法?
[打印本页]
作者:
duanmouse
时间:
2012-8-2 17:05
标题:
什么样的recordset可以使用fields.delete方法?
对于打开的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 对象
作者:
roych
时间:
2012-8-2 19:27
记录集没有对字段的操作(ADOx倒是可以),字段的增删是在表对象中执行的,——当然不止一种方法(据我所知至少有4种),以下是DAO的增删字段。
Sub test()
Dim db As DAO.Database
Dim tbl As DAO.TableDef
Set db = CurrentDb
Set tbl = db.TableDefs("表1")
'前提是必须有ss字段,否则会出错。可以增加On Error Resume Next跳过错误。
tbl.Fields.Delete ("ss")
'创建一个长度为50的文本类型字段m(同样地,如果已存在这个字段则会出错)。
tbl.Fields.Append tbl.CreateField("m", dbText, 50)
End Sub
复制代码
作者:
duanmouse
时间:
2012-8-3 10:36
谢谢版主,看来recordset不像想象的那么灵活,那么你知道access VBA里能用dataset吗?这个功能应该更强些。
作者:
roych
时间:
2012-8-3 21:00
对此我不清楚。年前TodayNew(老汉)正在钻研ASP.Net,请教他可能更合适些。
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3