|
|
|
| помогите, пожалуйста.
как можно импортировать данные из экселя в акцес (2007) с указанием типа данных?
например чтобы столбец был текстом, а не числом.
спасибо | |
|
| |
|
|
|
| Присоединить лист Excel как таблицу и запросом SELECT INTO создать новую таблицу.
В запросе выполнить преобразование типов, например [Числовое поле] & "" - получаем текст.
А что мешает изменить тип поля в полученной таблице после импорта?
Если в Excel в столбце есть и числа и текст, из-за этого проблемы с импортом, то перед импортом переместите несколько (возможно хватит и одной) строк с текстовыми значениями в начало таблицы. Тогда вы получите текстовое поле.
ЗЫ. Очень хочется посмотреть на строку подключения к Excel2007 в прилинкованной таблице.
У меня - негде. | |
|
| |
|
|
|
| решил проблему через INSERT INTO.
вот только небольшой затык с данными в фотмате Дата.
у меня в экселе там че попало (кто-то ставит точку в конце, кто-то добавляет г. и т.д.)
когда импортирую в виде текста корректные даты превращаются в числа вроде 35678,
а когда в виде даты - корявые даты не садятся.
изменить тип после импорта можно, но тогда те данные, которые не уселись будут потеряны. кроме того у меня экселевских файлов кучка и я хочу сделать чтобы они все автоматом подгружались.
а что такое строка подключения? | |
|
| |
|
|
|
| Для этого можно написать и использовать в запросе функцию, получающую значение ячейки и преобразующую ее в дату. Как это делать, можно придумать кучу способов. Предлагаю такой:
v2 = Null
If IsDate(v1) Then
v2 = CDate(v1)
ElseIf v1Like "#*.#*.#*" Then
v2 = Split(v1,".")
If UBound(v2) >= 2 Then
v2 = DateSerial(Val(v2(0)), Val(v2(1)), Val(v2(2)))
End If
End If
|
| |
|
| |