Office中国论坛/Access中国论坛

标题: 如何用ADO语句在代码中删除一个表的某个字段 [打印本页]

作者: zxzx2733    时间: 2006-3-19 06:12
标题: 如何用ADO语句在代码中删除一个表的某个字段
如何用ADO语句在代码中删除一个表的某个字段

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

想要的结果是在VBA中执行删除某字段就行
作者: skylark    时间: 2006-3-19 07:03
用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 语句,把原来表中的所有数据拷贝到新表中。通过这种方法,你既可以修改表的结构,又能保存原有的数据。
作者: zxzx2733    时间: 2006-3-19 17:04
谢谢skylark的回复,这个办法是可以达到删除某字段的目的,同样也可重命名字段

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


作者: skylark    时间: 2006-3-19 19:08
标题: 回复:(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"字段

参考!
作者: zxzx2733    时间: 2006-3-20 04:54
Ok!skylark

要的就是这样[em29][em29][em29][em29][em29]




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3