Я импортирую два столбца файла excel в базу данных Access и одновременно пытаюсь получить IndentLevel столбца B (который содержит иерархию):

DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, "impTable", "C:\User\Admin\File.xlsx", False, "Sheet1!A:B"

Возможно ли, чтобы TransferSpreadsheet считывал IndentLevel? Я предпочитаю TransferSpreadsheet из-за скорости импорта по сравнению с Workbooks.Open.

Может ли кто-нибудь дать мне какие-либо советы?

0
Paintitblack3k 2 Апр 2020 в 21:00
Что такое IndentLevel - поле? Отредактируйте вопрос, чтобы отобразить образцы данных и желаемый результат. TransferSpreadsheet не может делать ничего, кроме того, что предлагается в его аргументах.
 – 
June7
2 Апр 2020 в 22:42
Уровень отступа различается для каждой ячейки -> learn. microsoft.com/en-ca/office/vba/api/…, и с помощью этой информации я могу прочитать, какой уровень имеет каждая запись. Например. Уровень отступа 3 является родительской записью уровня отступа 4.
 – 
Paintitblack3k
2 Апр 2020 в 22:53
Извините, не понимаю. Отредактируйте вопрос, чтобы опубликовать образцы данных и желаемый результат.
 – 
June7
2 Апр 2020 в 22:55
С помощью indentlevel вы можете узнать, сколько вкладок вы использовали. Если вы не используете вкладку, это будет самый высокий уровень, во второй строке вы будете использовать одну позицию табуляции, чтобы показать, что это дочерняя запись. Не могли бы вы взглянуть на learn.microsoft.com /en-ca/office/vba/api/…?
 – 
Paintitblack3k
3 Апр 2020 в 00:01
1
TransferSpreadsheet игнорирует любое форматирование в Excel, поэтому вам придется использовать Workbooks. Open, зациклить данные и проверить IndentLevel при их импорте.
 – 
Applecore
3 Апр 2020 в 00:30

1 ответ

«TransferSpreadsheet игнорирует любое форматирование в Excel, поэтому вам придется использовать Workbooks.Open»

0
Paintitblack3k 4 Апр 2020 в 22:35