Что-то запутался с IMEX & HDR

Программирование на Visual Basic for Applications
Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Что-то запутался с IMEX & HDR

Сообщение Andrey Fedorov » 06.12.2006 (Ср) 11:39

Открываю Recordset:

Код: Выделить всё
cn.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=""" & m_sFile & """;Mode=Read;" _
        & "Extended Properties=""Excel 8.0;HDR=No;IMEX=0"""

r.Open "SELECT * FROM [a1:c4]", cn, adOpenStatic, adLockReadOnly


Но чего ради первая строка воспринимается как имена полей, ведь HDR=0 ???

Да, при IMEX=1 со строками все нормально, но тогда данные возвращаются в строковом виде... Если-же файл открыть Excel-ем то все нормально - программа отрабатывает при HDR=No;IMEX=0... Не пойму где глючит...
Последний раз редактировалось Andrey Fedorov 06.12.2006 (Ср) 11:47, всего редактировалось 1 раз.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 06.12.2006 (Ср) 11:47

Data Source не надо в кавычки брать... Хотя это не должно влиять...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 06.12.2006 (Ср) 11:49

GSerg писал(а):Data Source не надо в кавычки брать... Хотя это не должно влиять...


Да нет - не в этом дело. В кавычки, кстати, тоже правильно.
Я в первом письме пару строк еще добавил - посмотри...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 06.12.2006 (Ср) 11:57

В общем, нормально заработало при IMEX=2.

Вопрос снят.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 06.12.2006 (Ср) 12:04

Кстати, толкового описания значений IMEX я так и не могу найти...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Gloom
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 200
Зарегистрирован: 23.11.2004 (Вт) 15:57
Откуда: СПб

Сообщение Gloom » 06.12.2006 (Ср) 15:46

Andrey Fedorov писал(а):Кстати, толкового описания значений IMEX я так и не могу найти...

Setting IMEX=1 tells the driver to use Import mode. In this state, the registry setting ImportMixedTypes=Text will be noticed. This forces mixed data to be converted to text. For this to work reliably, you may also have to modify the registry setting, TypeGuessRows=8. The ISAM driver by default looks at the first eight rows and from that sampling determines the datatype. If this eight row sampling is all numeric, then setting IMEX=1 will not convert the default datatype to Text; it will remain numeric.

You must be careful that IMEX=1 not be used indiscriminately. This is IMPORT mode, so the results may be unpredictable if you try to do appends or updates of data in this mode.

The possible settings of IMEX are:
0 is Export mode
1 is Import mode
2 is Linked mode (full update capabilities)

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 06.12.2006 (Ср) 15:50

Gloom

Именно это я видел. Но хотелось бы именно подробного.
Чтобы понять почему, к примеру, у меня при HDR=No;IMEX=0 первая строка рассматривается как имена полей, а при HDR=No;IMEX=2 - нет. Ведь NDR там и там =No...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 108

    TopList