2011-03-10 31 views
1

你好
我試圖通過命令來新列添加到Excel工作表添加列在Excel工作表來與OLEDB

ALTER TABLE [MyTable的] ADD COLUMN Field_dest nvarchar的

但在執行命令得到了異常「無效操作」 我在最後嘗試表名與不$,但得到了同樣的結果
我的問題是
1)是否有一些錯誤在上面的命令?
2)是否支持excel表的命令ALTER表?
3)是否將列添加到Excel工作表的替代方法 - 最好通過OLEDB?

在此先感謝

回答

3

修改表將無法正常工作,據我所知,但是,您可以創建表格或選擇進入,這將允許您創建一個新的工作表。我無法得到這個打開表單運行。

Dim cn As Object 
Dim scn As String 
Dim sSQL As String 

strFile = "C:\Docs\test.xls" 

scn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _ 
strFile & ";Extended Properties=""Excel 8.0;HDR=Yes;""" 

Set cn = CreateObject("ADODB.Connection") 

cn.Open scn 

''Note that there is no $ on the sheet to be created 
sSQL = "SELECT *,'' As NewField INTO [Sheet17] FROM [Sheet4$]" 

''Jet data types 
sSQL = "CREATE TABLE [Sheet8] (AText text, ANother text)" 

cn.Execute sSQL 

如果您針對打開的文件運行,則會出現Sheetn不存在的錯誤。

+0

謝謝!但它不適用於現有的表:( – 2011-03-11 13:32:03

+0

@lm我想我沒有解釋,你不能添加到現有的表,但你可以複製現有的表與一個新的列到一個新的表,'SELECT *,''作爲NewField INTO [Sheet17] FROM [Sheet4 $]'其中Sheet4 $是現有表,*是所有列,''由於NewField是一個額外的列,Sheet17是新表,或者,您可以創建一個新表CREATE TABLE並用現有的數據更新它 – Fionnuala 2011-03-11 14:00:23

+0

我明白了,我將檢查使用SELECT ..INTO(正如你所解釋的)或其他來創建更新結構的表格的選項,謝謝了很多有用的信息 – 2011-03-11 18:53:07

0

您可以使用Create Table而不是Alter Table。 只需使用現有的表名,那麼你的列添加到現有薄片

CREATE TABLE [ExistingSheet$] (ID char(255), oldField1 char(255), newField2 char(255)) 

它的工作!

相關問題