Как связать таблицу Excel с Access и предотвратить значения NULL из-за неправильного преобразования типов данных? - PullRequest
0 голосов
/ 27 августа 2018

В текущем проекте мне нужно сохранить файл Excel, который получает значения с компьютера в базу данных Access для работы с ними и импорта их в модель данных.Проблема в том, что некоторые значения дают неверные результаты из-за способа их сохранения.Например, отметка времени сохраняется как

030420 вместо 03:04:20, и Access не может обработать это и дает мне # NUMBER

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

Любая помощь приветствуется.

Ответы [ 3 ]

0 голосов
/ 27 августа 2018

Если предложение Эрика не работает, вы можете
- создать резервную копию вашего источника Excel
- настроить файл: ввести текст в первый ряд проблемных столбцов
- связать измененный файлв Access
- верните реальный файл на место.
Теперь проблемные столбцы должны читаться как текст, и вы можете создать запрос, который решит любую проблему, такую ​​как преобразование, обработка нуля ...

0 голосов
/ 27 августа 2018

Ссылка, не импортируйте файл Excel, и у вас есть связанная таблица.

Теперь используйте эту связанную таблицу в качестве источника в запросе выбора simpel, где вы изменяете данные и называете поля какнеобходимо.Например:

Select 
    F1 As SomeName, 
    F2 As OtherName, 
    TimeSerial(Mid([F5],1,2),Mid([F5],3,2),Mid([F5],5,2)) As TrueTime
From
    LinkedTable
Where
    F7 Is Not Null

Используйте этот запрос для импорта.

0 голосов
/ 27 августа 2018

Рассмотрите возможность запроса файла Excel вместо использования связанной таблицы.

Запрос может напрямую запрашивать диапазон Excel:

SELECT * FROM
[Excel 12.0 XML;DATABASE=PathToMyExcel;HDR=Yes;IMEX=1].[MyRange] t

Затем вы можете использовать такие функции, как TimeSerial дляприведение чисел к значениям времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...