设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[ADO/DAO] 如何用ADO语句在代码中删除一个表的某个字段

[复制链接]
跳转到指定楼层
1#
发表于 2006-3-19 06:12:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如何用ADO语句在代码中删除一个表的某个字段

例如用ADO语句在代码中删除[表1]中的[字段2]

想要的结果是在VBA中执行删除某字段就行
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2006-3-19 07:03:00 | 只看该作者
用SELECT 创建记录和表


你也许已经注意到,INSERT 语句与DELETE语句和UPDATE语句有一点不同,它一次只操作一个记录。然而,有一个方法可以使INSERT 语句一次添加多个记录。要作到这一点,你需要把INSERT 语句与SELECT 语句结合起来,象这样:





INSERT mytable (first_column,second_column)


SELECT another_first,another_second


FROM anothertable


WHERE another_first=’Copy Me!’





这个语句从anothertable拷贝记录到mytable.只有表anothertable中字段another_first的值为’Copy Me!’的记录才被拷贝。


当为一个表中的记录建立备份时,这种形式的INSERT 语句是非常有用的。在删除一个表中的记录之前,你可以先用这种方法把它们拷贝到另一个表中。


如果你需要拷贝整个表,你可以使用SELECT  INTO 语句。例如,下面的语句创建了一个名为newtable的新表,该表包含表mytable的所有数据:





SELECT * INTO newtable FROM mytable





你也可以指定只有特定的字段被用来创建这个新表。要做到这一点,只需在字段列表中指定你想要拷贝的字段。另外,你可以使用WHERE 子句来限制拷贝到新表中的记录。下面的例子只拷贝字段second_columnd的值等于’Copy Me!’的记录的first_column字段。





SELECT first_column INTO newtable


FROM mytable


WHERE second_column=’Copy Me!’





使用SQL修改已经建立的表是很困难的。例如,如果你向一个表中添加了一个字段,没有容易的办法来去除它。另外,如果你不小心把一个字段的数据类型给错了,你将没有办法改变它。但是,使用本节中讲述的SQL语句,你可以绕过这两个问题。


例如,假设你想从一个表中删除一个字段。使用SELECT INTO 语句,你可以创建该表的一个拷贝,但不包含要删除的字段。这使你既删除了该字段,又保留了不想删除的数据。


如果你想改变一个字段的数据类型,你可以创建一个包含正确数据类型字段的新表。创建好该表后,你就可以结合使用UPDATE语句和SELECT 语句,把原来表中的所有数据拷贝到新表中。通过这种方法,你既可以修改表的结构,又能保存原有的数据。
3#
 楼主| 发表于 2006-3-19 17:04:00 | 只看该作者
谢谢skylark的回复,这个办法是可以达到删除某字段的目的,同样也可重命名字段

但请教一下,有没有办法用代码直接删除字段,我试了没找到这种删除字段的“属性”和“方法”,(要这个功能是另有其用的)

4#
发表于 2006-3-19 19:08:00 | 只看该作者

回复:(zxzx2733)如何用ADO语句在代码中删除一个表的...

需引用: Microsoft ActiveX Data Objects 2.8 Library

              Microsoft   ADO Ext. 2.8 for DDL And Security

'ADOX
Sub ADOCreateAutoIncrColumn()

    Dim cat     As New ADOX.Catalog
    Dim col     As New ADOX.Column
   
    ' Open the catalog
    cat.ActiveConnection = "rovider=Microsoft.Jet.OLEDB.4.0;" & _
            "Data Source=C:\nwind.mdb;"
        
    ' Create the new auto increment column
    With col
        .Name = "ContactId"
        .Type = adInteger
        Set .ParentCatalog = cat
        .Properties("AutoIncrement") = True
    End With
   
    ' Append the column to the table
    cat.Tables("Table1").Columns.Append col
    cat.Tables("Table1").Columns.Delete "ID"
    Set cat = Nothing

End Sub

以上的代码在"niind.mdb"中的  "Table1"表中增加了一个自动编号的"ContactId"字段,删除了"ID"字段

参考!
5#
 楼主| 发表于 2006-3-20 04:54:00 | 只看该作者
Ok!skylark

要的就是这样[em29][em29][em29][em29][em29]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-11 12:20 , Processed in 0.115921 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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