|
Непонятная ошибка TYPE MISMACH при установке фильтра в RECORDSET
|
|||
---|---|---|---|
#18+
......... Set RSm = CreateObject("ADODB.Recordset") RSm.ActiveConnection = XLSconn ' коннект к Эксель файлу RSm.SOURCE = "SELECT * FROM [2011 год$A1:G65535]" RSm.OPEN() ............. Set Cmd.ActiveConnection = Baseconn ' коннект к MSSQL cmd.commandtype = 1 Cmd.CommandText = SQL1 Set RSb = Cmd.EXECUTE ................ rsm.FILTER = "zakaz = '" + CStr(rsb.fields("doc_no").VALUE) + "'" все работает, пока значение rsb.fields("doc_no").VALUE целое и не становится равно, к примеру "425.9" или "425нн" Тогда выскакивает ошибка - "Provider ..... TYPE MISMACH" почему оно требует целое число? я же в кавычки заключаю выражение, это подразумевает строковое значение. Где я неправ? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2011, 17:53 |
|
Непонятная ошибка TYPE MISMACH при установке фильтра в RECORDSET
|
|||
---|---|---|---|
#18+
> Автор: Philosopher > Где я неправ? Скорее всего поле zakaz числовое и пока значения doc_no(несмотря на кавычки) преобразовывается в число, фильтрация работает. Как только перестает преобразовыватся в число - возникает ошибка несовпадения типов. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2011, 18:01 |
|
Непонятная ошибка TYPE MISMACH при установке фильтра в RECORDSET
|
|||
---|---|---|---|
#18+
Philosopher, потому что считает, что тип поля rsm.zakaz - целое. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2011, 18:06 |
|
Непонятная ошибка TYPE MISMACH при установке фильтра в RECORDSET
|
|||
---|---|---|---|
#18+
Игорь Горбонос> Автор: Philosopher > Где я неправ? Скорее всего поле zakaz числовое и пока значения doc_no(несмотря на кавычки) преобразовывается в число, фильтрация работает. Как только перестает преобразовыватся в число - возникает ошибка несовпадения типов. ну это в общем-то очевидно. Более того я подозреваю, что дело тут, в знаке доллара, который подразумевает числовые значения: "SELECT * FROM [2011 год $ A1:G65535]" а вот как правильно сделать не знаю... может кто ткнет в инфу какую-нить об этом? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2011, 18:08 |
|
Непонятная ошибка TYPE MISMACH при установке фильтра в RECORDSET
|
|||
---|---|---|---|
#18+
скукотищаPhilosopher, потому что считает, что тип поля rsm.zakaz - целое. угу. А как исправить ситуацию? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2011, 18:08 |
|
Непонятная ошибка TYPE MISMACH при установке фильтра в RECORDSET
|
|||
---|---|---|---|
#18+
> Автор: Игорь Горбонос Блин! Руки крюки Как вариант, можно поигратся настройками соединения и тогда все данные из ексела будут восприниматся как строковые или формировать ексельный файл таким образом, что-бы первые три строки содержали в столбце zakaz как можно более экзотические комбинации. Тогда весь столбец будет определён как текстовый и наступит щастье. Всем и даром и никто не уйдет обиженным (с) Рэдерик Шухарт Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2011, 18:08 |
|
Непонятная ошибка TYPE MISMACH при установке фильтра в RECORDSET
|
|||
---|---|---|---|
#18+
> Автор: Philosopher > Более того я подозреваю, что дело тут, в знаке доллара, который подразумевает числовые значения: Нет, знак доллара это просто разделитель между названием листа и диапазоном из которого брать данные. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2011, 18:10 |
|
Непонятная ошибка TYPE MISMACH при установке фильтра в RECORDSET
|
|||
---|---|---|---|
#18+
PhilosopherскукотищаPhilosopher, потому что считает, что тип поля rsm.zakaz - целое. угу. А как исправить ситуацию? если полей в Excel файле не дохренища, то явно перечислить в SELECTе, а вместо zakaz использовать Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2011, 18:14 |
|
Непонятная ошибка TYPE MISMACH при установке фильтра в RECORDSET
|
|||
---|---|---|---|
#18+
Игорь ГорбоносКак вариант, можно поигратся настройками соединения и тогда все данные из ексела будут восприниматся как строковые или да нет особо ни времени ни желания с настройками соединения играться. даже если такой вариант существует, я уверен есть способы получше. Игорь Горбоносформировать ексельный файл таким образом, что-бы первые три строки содержали в столбце zakaz как можно более экзотические комбинации. Тогда весь столбец будет определён как текстовый и наступит щастье. изначально по этому пути и пошел. Кстати ПЕРВАЯ строка формирует ИМЕНА ПОЛЕЙ рекордсета. Но далее у меня встречаются разные данные, в том числе строкове. Хоть большинство действительно целые. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2011, 18:23 |
|
Непонятная ошибка TYPE MISMACH при установке фильтра в RECORDSET
|
|||
---|---|---|---|
#18+
Игорь ГорбоносНет, знак доллара это просто разделитель между названием листа и диапазоном из которого брать данные. возможно. Я исходил из того, что в методе find, $ - обозначает числовые значения ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2011, 18:25 |
|
Непонятная ошибка TYPE MISMACH при установке фильтра в RECORDSET
|
|||
---|---|---|---|
#18+
скукотищаPhilosopherпропущено... угу. А как исправить ситуацию? если полей в Excel файле не дохренища, то явно перечислить в SELECTе, а вместо zakaz использовать Код: plaintext 1. 2.
Да, действительно так заработало! :) хотя странная система... Спасибо всем ответившим! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2011, 19:10 |
|
|
start [/forum/topic.php?fid=60&msg=37436859&tid=2158446]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
45ms |
get topic data: |
15ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 173ms |
0 / 0 |