Добавление столбца на лист в Excel с OLEDB - PullRequest
1 голос
/ 10 марта 2011

Hello
Я пытаюсь добавить новый столбец на лист Excel с помощью команды

ALTER TABLE [MyTable] ADD COLUMN Field_dest nvarchar

Но при выполнении команды получено исключение«Недопустимая операция» Я пробовал имя таблицы с и без $ в конце, но получил тот же результат
Мои вопросы
1) Есть ли какая-то ошибка в приведенной выше команде?
2) Является ли команда ALTER tableподдерживается для таблицы Excel?
3) Есть ли альтернативный способ добавления столбца в таблицу Excel - предпочтительно с помощью OLEDB?

Заранее спасибо

Ответы [ 2 ]

3 голосов
/ 11 марта 2011

Изменить таблицу не будет, AFAIK, однако вы можете создать таблицу или выбрать Into, что позволит вам создать новый лист. Я не могу заставить это работать против открытого листа.

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 голосов
/ 09 декабря 2013

Вы можете использовать Создать таблицу вместо Изменить таблицу.Просто используйте имя существующей таблицы, и ваши столбцы добавятся к существующему листу

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

это работает!

...