Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Несовместимость типов данных / 15 сообщений из 15, страница 1 из 1
22.07.2016, 10:52
    #39278420
EX111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несовместимость типов данных
Здравствуйте, столкнулся с проблемой при написании макроса. Нужно сравнивать большие числа и прогонять их по базе(сравнивать), часть переменных в дебагере отображается в кавычках, а часть без, не могу их сравнить, в чем может быть проблема (интересуют переменные d и y, их объявил как long)
...
Рейтинг: 0 / 0
22.07.2016, 11:21
    #39278447
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несовместимость типов данных
Используйте явное преобразование - CLng()
...
Рейтинг: 0 / 0
22.07.2016, 11:46
    #39278469
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несовместимость типов данных
Еще есть предположение, что вы неверно используете синтаксис Dim
...
Рейтинг: 0 / 0
22.07.2016, 11:51
    #39278481
EX111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несовместимость типов данных
Shocker.Pro, Нет с Dim все в порядке, спасибо за помощь, ваш совет все исправил) Проблема была именно в неверном преобразовании данных.
...
Рейтинг: 0 / 0
22.07.2016, 12:01
    #39278498
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несовместимость типов данных
EX111с Dim все в порядкеТочно? А то может так объявляете:
Код: vbnet
1.
Dim y1,d1 as Long


а это неверно. Тип Long будет только у d1 - все остальное - Variant.
...
Рейтинг: 0 / 0
22.07.2016, 12:02
    #39278500
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несовместимость типов данных
и все же, если вы говорите, что "y" объявляете как Long, а они числятся как Variant, то, по всей видимости, записано так
Код: vbnet
1.
Dim y1, y2, y3, d2 As Long
...
Рейтинг: 0 / 0
22.07.2016, 12:15
    #39278514
EX111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несовместимость типов данных
The_Prist, Я в Dim обозначил все переменные d и y как string, а потом использовал CLng() на всех этих переменных, работает отлично.
...
Рейтинг: 0 / 0
22.07.2016, 12:45
    #39278580
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несовместимость типов данных
EX111как string, а потом использовал CLng()Странный подход, однако...Особенно если учесть эту фразу:
EX111интересуют переменные d и y, их объявил как long
...
Рейтинг: 0 / 0
22.07.2016, 13:08
    #39278599
EX111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несовместимость типов данных
The_Prist, когда я их объявлял как long, ничего не работало, потом объявил через string, записал туда все цифры, преобразовал в long, чтобы корректно их сравнивать, все работает, могу скинуть полный код если интересно.
...
Рейтинг: 0 / 0
22.07.2016, 13:17
    #39278606
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несовместимость типов данных
EX111когда я их объявлял как long, ничего не работалопрям так появлялось сообщение "ничего не работает"?
...
Рейтинг: 0 / 0
22.07.2016, 13:45
    #39278649
EX111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несовместимость типов данных
Shocker.Pro, Нет, просто оператор if не работал, потому что там идет сравнение этих двух переменных.
...
Рейтинг: 0 / 0
22.07.2016, 14:18
    #39278677
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несовместимость типов данных
Если бы обе переменные были типа Long, то все работало бы нормально. CLng применялся бы автоматически при попытке присвоить строку такой переменной
...
Рейтинг: 0 / 0
22.07.2016, 14:21
    #39278680
EX111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несовместимость типов данных
Shocker.Pro, я пробовал разные варианты, присваивал и double и long и integer, правильно работать макрос начал именно после string и отдельного присваивания всем переменным CLng, не знаю почему, согласен что нелогично, но все же работать начало именно после этого
...
Рейтинг: 0 / 0
22.07.2016, 18:21
    #39278949
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несовместимость типов данных
EX111согласен что нелогично, но все же работать начало именно после этогоКонечно, не логично. Скиньте код - а мы разберемся что у Вас там не складывается с нормальными типами. Чудес не бывает.
...
Рейтинг: 0 / 0
22.07.2016, 18:22
    #39278951
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несовместимость типов данных
Потому что даже на скрине у Вас неверно записано сравнение:
Код: vbnet
1.
y2 <= d2 <= y3


Так не делается. Правильно так:
Код: vbnet
1.
y2 <= d2 and d2 <= y3
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Несовместимость типов данных / 15 сообщений из 15, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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