Вопрос по ms-access, import, excel – получение неожиданной ошибки от внешнего драйвера базы данных (1) при импорте данных из Excel для доступа

10

у меня есть2010 Excel file с простыней34864 rows а также1387 columns, Я пытаюсь импортировать его вAccess 2010 с мастером импорта, но когда я выбираю этот лист, Access перестает отвечать на запросы и через несколько секунд дает мне

"Unexpected error from external database driver (1)"

Это связано с размером листа или в ячейках есть что-то, что мешает ему работать. Другие листы из того же файла импортируются без проблем.

Предложите попробовать выполнить импорт с размером 1/2, а затем продвинуться вверх, если это успешно. octopusgrabbus

Ваш Ответ

16   ответов
0

что у меня былоAccess DB stored on a network drive на котором не хватило места (недостаточно места для завершения импорта). Я освободил место и сжал БД; ошибка не появилась снова.

0

Электронная таблица была создана из другого программного обеспечения (SAP). Поскольку он не был создан Office, Excel не смог его прочитать (!?!). Я должен открыть их в Excel, сохранить его, а затем загрузить его в Access, и он работает! В худшем случае, скажем, у вас есть десятки файлов, вы можете просто открыть и закрыть их по коду VBA перед импортом.

2

abase Engine 2010, а затем измените строки подключения к БД в Microsoft Excel, чтобы использовать ACE в качестве поставщика.

Изменить (пример):

Provider=Microsoft.Jet.OLEDB.4.0

чтобы:

Provider=Microsoft.ACE.OLEDB.12.0.

Microsoft работает над разрешением и представит обновление в следующем выпуске.

Здесь нужно отметить одну вещь: вы в значительной степениhave использовать версию 2010 года, независимо от того, какую версию Office вы могли установить на своем компьютере. Я попытался загрузить / установить версию распространяемого компонента Access Database Engine 2016 года, но он не мог быть установлен на моем компьютере, по-видимому, потому что у меня установлены приложения Office Desktop из моей подписки O365. Очевидно, что компоненты CTR (Click-To-Run) мешают установке более ранних версий распространяемого пакета.
2

ние. Я заметил, что в моей электронной таблице было нестандартное имя, поэтому я решил посмотреть, не вызывает ли это проблему. Я изменил его на имя по умолчанию & quot; Sheet1 & quot; и, конечно же, это сработало !!

0

Удалите обновление безопасности KB4041681 и KB4041678 (относится к Excel и поставщику Jet / ACE)

1

.CSV файл, а затем загрузить его в виде текстового файла. Для меня это работает нормально.

Проблема в том, что в .xls (x) присутствуют все виды компоновок. Преобразование его в .CSV удаляет всю разметку, связанную с компоновкой, и преобразует в «raw». данные.

всего наилучшего!

0

я также сталкиваюсь с этой ошибкой при импорте .xlsb файла. После этого я скопировал содержимое в другой файл xlsx, а затем импортировал этот файл xlsx.

2

OleDbConnection conObj = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\a.XLS;Extended Properties=Excel 8.0;")

вместо этого

OleDbConnection conObj = new OleDb,Connection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\a.XLS;Extended Properties=Excel 8.0;")
0

что если файл Excel сохраняется как двоичный лист Excel, просто сохраните его как книгу Excel и он загрузится нормально.

0

сохраните файл как файл XLSX и затем импортируйте, должно работать

0

после получения обновления безопасности в Windows7 произошла эта ошибка. У нас слишком много файлов Excel, чтобы выполнить операцию открытия / закрытия, поэтому я решил попробовать другие способы.

1. Верните точку восстановления, когда Access работал нормально: в моем случае это не сработало. Единственное изменение в конфигурации программного обеспечения - это обновление безопасности, и кажется, что обновление безопасности все еще вызывает проблемы.

2- Сокращение строк, столбцов и т. Д. Это не сработало для меня; первый файл, доступ к которому пытался получить доступ, имел 10 тыс. строк, и сокращение этих строк до 3 не было решением.

3. Попытка изменить строку подключения: у меня это не сработало, это не очень разумно; Соединение работает уже много лет, вдруг почему бы это прекратить? В некоторых случаях это происходит, но не в этот раз.

4- В моем случае работало удаление самого последнего обновления безопасности. Вот удаленное обновление безопасности.

Снимок экрана: неустановленное обновление для системы безопасности

Удачи в решении.

0

блицей. Я импортировал подмножество исходного листа. Я создал новый лист и скопировал данные столбец за столбцом в блокнот, а затем на новый лист, удалив ссылки. В ссылках было что-то, что вызывало проблему.
Кстати: это был один набор данных, поскольку я выполнял эту последовательность импорта из этой одной электронной таблицы в эту базу данных более 50 раз. Половина данных работала для первой (большей) половины данных, но не для второй.

3

http://office.microsoft.com/en-us/access-help/access-2010-specifications-HA010341462.aspx.

В вашем случае это может быть количество столбцов, поэтому сначала попытайтесь импортировать менее 255. Кроме того, это может быть размер данных в столбцах или типы данных (импорт текста в числа и т. Д.)

Удалить должно работать. Убедитесь, что вы также выделите и удалите все столбцы (73+)
но я выделил все эти строки и нажал «удалить», не должны ли они удалить все, что там есть? или это какой-то другой тип данных? user1251858
Это звучит как "осталось" & quot; данные, которые вызывают проблему. Когда вы копируете 1863 строки, вы копируете именно то, что видите / хотите. Когда вы копируете лист, вы копируете ВСЕ данные (за пределы 1863 строк). Например. у вас могут быть данные в строке # 18000 ячейки # 55, которые имеют БЕЛЫЙ цвет.
теперь он сократился до 72 столбцов, и я удалил большинство элементов, так что теперь осталось только 1863 строки, которые все еще не будут загружены в доступ достаточно интересно, если я скопирую данные с этого листа на другой новый лист, новый лист будет загружен (с 1863 строками и 72 столбцами), но если я скопирую лист, который доставляет мне затруднения, эта копия не будет загружена user1251858
12

Эта ошибка может возникнуть после установки исправления безопасностиKB4041681, Видеть этоMSDN запись. В моем случае заменаMicrosoft.Jet.OLEDB.4.0 поставщик сMicrosoft.ACE.OLEDB.12.0 помог.

Спасибо. Я подозреваю, что это моя проблема. До сегодняшнего дня все работало нормально.
0

которое сработало для меня при решении этой проблемы, состоит в том, чтобы файл Excel, в котором выполняется импорт / экспорт, был открыт при импорте & amp; Экспорт происходит.

Эта проблема, по-видимому, вызвана тем, что исправление предотвращает транзакцию данных между файлами CLOSED .xls и другими приложениями внешней базы данных. Наличие файла Excel позволяет решить эту проблему.

Ниже приведено несколько примеров кода, чтобы показать, что работает, а что нет с VBA:

FAILS

wbTarget.SaveAs strFilename, xlExcel8
wbTarget.Close    
ExportSheetToDB strFilename, strSheetName, "tblTemp"

WORKS

wbTarget.SaveAs strFilename, xlExcel8
ExportSheetToDB strFilename, strSheetName, "tblTemp"
wbTarget.Close
1

В моем случае Jet OleDb.4.0 выдал эту ошибку (oledbconnection.open ()), потому что имя рабочего листа в книге (.xls) было слишком длинным.

Похожие вопросы