Импорт EAN-13 из Excel в Access - PullRequest
       28

Импорт EAN-13 из Excel в Access

0 голосов
/ 09 октября 2018

Мне нужно импортировать данные из EXCEL-листа в Access.Однако Access access импортирует EAN-13 как Double (научное обозначение) вместо строки, таким образом теряя последние цифры.

Я попытался выполнить этот импорт с помощью DoCmd.TransferSpreadsheet acImport .... Если я это сделаюТаким образом, Access будет интерпретировать данные и назначит тип данных.

1) Это приведет к проблемам, когда у вас есть столбец, содержащий пустые поля для первых нескольких строк и строковые данные позже.Я решил это, добавив дополнительную строку после заголовка (fieldNames).В этом заполнены данные о желаемом типе данных.Это вылечило проблему для строковых данных.

2) Однако мне не удалось решить эту проблему для данных EAN-13 (поле EXCEL, содержащее 13 цифр).EXCEL сохраняет эту последовательность в виде строки.Иногда это будет отображать это строковое значение в научной нотации: «7340041127001» станет «7.340041127e012».Однако в поданной записи в эти моменты все равно будет отображаться «7340041127001», поэтому полное значение остается неизменным.Использование ведущих «» даже позволит избежать научной нотации.Поэтому я думаю, что с данными в Excel все в порядке.

Если я попытаюсь импортировать данные EAN-13 из Excel в Access, это произойдет: «7340041127001» станет «7.340041127e012».Импорт из «7340041127001» работает, но было бы очень утомительно редактировать все поля Excel!

Я попытался импортировать EAN-13 в предварительно заданную пустую таблицу.Но это не будет работать с EAN: значение из Excel будет преобразовано в строку, но сохраненное значение равно «7.340041127e012» ...

Импорт не должен быть полностью автоматическим, он будетсделано обученным человеком.

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

1) Связь с электронной таблицей Excel и использование DoCmd.TransferSpreadsheet, похоже, работают одинаково в Access 2010 / Excel 2010. Тип данных полей в таблице доступа, по-видимому, не зависит отФункция «Форматировать ячейку» в Excel, но по первым нескольким значениям (= первые несколько строк) данных в Excel.Одной (1) строки недостаточно, четырнадцать (14) - это ...

2) Если первые несколько строк содержат строковые данные и числовые данные, Access назначит этим полям тип данных «Текст»

3) Префикс строк EAN-13 в Excel приведет к правильному импорту, но для моих данных это невозможно.Я не нашел способа импортировать строки EAN-13 непосредственно в таблицу доступа.Однако

4) Добавление столбца в Excel и использование следующей функции приведет к значению, которое будет импортировано правильно: =Text(D2; 0), где ячейка D2 содержит строку EAN-13.Я использовал эту формулу для всех 2500 строк.Пустым полям EAN-13 будет присвоено значение «0», которое не является допустимым значением EAN-13.Это позже позволит удалить ненужные значения в Access!

0 голосов
/ 10 октября 2018

Либо примените формат к столбцу в Excel для числа и нулевого десятичного числа.

Или принудительно введите текст в ячейки, добавив к кавычке префикс к значению ячейки:

7340041127001 -> '7340041127001

Обе работыдля меня с Office 365 и , связывающими лист Excel.

Затем используйте запрос для преобразования и добавления данных в таблицу назначения.

...