OpenSchema (adSchemaColumns) для таблицы с дефисами в имени - PullRequest
0 голосов
/ 27 ноября 2018

Я читаю некоторые данные Excel с помощью ADO и хочу получить некоторые значения столбца OpenSchema.

Моя строка подключения (которая успешно открывает подключение):

Поставщик= Microsoft.ACE.OLEDB.12.0; Источник данных = C: [мой путь] .xlsx; Расширенные свойства = "Excel 12.0 Xml; HDR = YES; IMEX = 1;";

Я могуСчастливо откройте набор записей AdSchemaTables и получите имя таблицы:

Set tablesRs = conn.OpenSchema(AD_SCHEMA_TABLES)

Do While Not tablesRs.EOF
    tbl = tablesRs.Fields("TABLE_NAME")
    /../
Loop

И для таблицы с именем, подобным Sheet1$, я также могу с радостью прочитать данные моего столбца:

Set colsRs = conn.OpenSchema(AD_SCHEMA_COLUMNS, Array(Empty, Empty, tbl))

Моя проблема в том, что имя одного из листов содержит дефисы, например, «16-11-2018», и это, кажется, выдает ошибку 3251.Я пробовал с и без кавычек "16-11-2018" и квадратных скобок "[16-11-2018]", но первый выбрасывает 3251, а второй возвращает пустой набор записей.

Я знаю, что данные хороши, потому что, если я копирую лист в другую книгу с общим именем листа, мой код работает нормально.Поэтому я предполагаю, что моя проблема связана с этим именем листа.

Есть ли способ справиться с этим именем листа?

1 Ответ

0 голосов
/ 27 ноября 2018

Заключите его в одинарные кавычки, чтобы эффективно использовать:

Array(Empty, Empty, "'16-11-2018$'")

в качестве второго аргумента.

...