powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Непонятная ошибка TYPE MISMACH при установке фильтра в RECORDSET
11 сообщений из 11, страница 1 из 1
Непонятная ошибка TYPE MISMACH при установке фильтра в RECORDSET
    #37436820
Philosopher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.........
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"
почему оно требует целое число? я же в кавычки заключаю выражение, это подразумевает строковое значение. Где я неправ?
...
Рейтинг: 0 / 0
Непонятная ошибка TYPE MISMACH при установке фильтра в RECORDSET
    #37436845
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Philosopher
> Где я неправ?


Скорее всего поле zakaz числовое и пока значения doc_no(несмотря на кавычки) преобразовывается в число, фильтрация
работает. Как только перестает преобразовыватся в число - возникает ошибка несовпадения типов.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Непонятная ошибка TYPE MISMACH при установке фильтра в RECORDSET
    #37436852
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Philosopher,
потому что считает, что тип поля rsm.zakaz - целое.
...
Рейтинг: 0 / 0
Непонятная ошибка TYPE MISMACH при установке фильтра в RECORDSET
    #37436855
Philosopher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос> Автор: Philosopher
> Где я неправ?


Скорее всего поле zakaz числовое и пока значения doc_no(несмотря на кавычки) преобразовывается в число, фильтрация
работает. Как только перестает преобразовыватся в число - возникает ошибка несовпадения типов.


ну это в общем-то очевидно. Более того я подозреваю, что дело тут, в знаке доллара, который подразумевает числовые значения:
"SELECT * FROM [2011 год $ A1:G65535]"
а вот как правильно сделать не знаю... может кто ткнет в инфу какую-нить об этом?
...
Рейтинг: 0 / 0
Непонятная ошибка TYPE MISMACH при установке фильтра в RECORDSET
    #37436856
Philosopher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотищаPhilosopher,
потому что считает, что тип поля rsm.zakaz - целое.
угу. А как исправить ситуацию?
...
Рейтинг: 0 / 0
Непонятная ошибка TYPE MISMACH при установке фильтра в RECORDSET
    #37436857
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Игорь Горбонос


Блин! Руки крюки

Как вариант, можно поигратся настройками соединения и тогда все данные из ексела будут восприниматся как строковые или
формировать ексельный файл таким образом, что-бы первые три строки содержали в столбце zakaz как можно более
экзотические комбинации. Тогда весь столбец будет определён как текстовый и наступит щастье. Всем и даром и никто не
уйдет обиженным (с) Рэдерик Шухарт

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Непонятная ошибка TYPE MISMACH при установке фильтра в RECORDSET
    #37436859
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Philosopher
> Более того я подозреваю, что дело тут, в знаке доллара, который подразумевает числовые значения:


Нет, знак доллара это просто разделитель между названием листа и диапазоном из которого брать данные.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Непонятная ошибка TYPE MISMACH при установке фильтра в RECORDSET
    #37436867
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PhilosopherскукотищаPhilosopher,
потому что считает, что тип поля rsm.zakaz - целое.
угу. А как исправить ситуацию?
если полей в Excel файле не дохренища, то явно перечислить в SELECTе, а вместо zakaz использовать
Код: plaintext
1.
2.
'' & zakaz As zakazSTR 
-- название zakazSTR  - условное
...
Рейтинг: 0 / 0
Непонятная ошибка TYPE MISMACH при установке фильтра в RECORDSET
    #37436881
Philosopher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь ГорбоносКак вариант, можно поигратся настройками соединения и тогда все данные из ексела будут восприниматся как строковые или

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

Игорь Горбоносформировать ексельный файл таким образом, что-бы первые три строки содержали в столбце zakaz как можно более
экзотические комбинации. Тогда весь столбец будет определён как текстовый и наступит щастье.

изначально по этому пути и пошел. Кстати ПЕРВАЯ строка формирует ИМЕНА ПОЛЕЙ рекордсета. Но далее у меня встречаются разные данные, в том числе строкове. Хоть большинство действительно целые.
...
Рейтинг: 0 / 0
Непонятная ошибка TYPE MISMACH при установке фильтра в RECORDSET
    #37436885
Philosopher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь ГорбоносНет, знак доллара это просто разделитель между названием листа и диапазоном из которого брать данные.

возможно.
Я исходил из того, что в методе find, $ - обозначает числовые значения
...
Рейтинг: 0 / 0
Непонятная ошибка TYPE MISMACH при установке фильтра в RECORDSET
    #37436937
Philosopher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотищаPhilosopherпропущено...

угу. А как исправить ситуацию?
если полей в Excel файле не дохренища, то явно перечислить в SELECTе, а вместо zakaz использовать
Код: plaintext
1.
2.
'' & zakaz As zakazSTR 
-- название zakazSTR  - условное


Да, действительно так заработало! :)
хотя странная система...
Спасибо всем ответившим!
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Непонятная ошибка TYPE MISMACH при установке фильтра в RECORDSET
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]