Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / интегер 71 почему-то меньше интегера 39 / 25 сообщений из 33, страница 1 из 2
26.01.2021, 10:15
    #40038881
Beliar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интегер 71 почему-то меньше интегера 39
Здарова, коллеги!
в операторе IF проверяются значения двух переменных типа Integer. При этом при сравнении i3=71 и i1=39 почему-то уходит в ветку i3<i1. Причем при проверке функцией IsNumeric обе возвращают "true". Прилагаю саму базу. Там на форме "Форма1" есть кнопка "Step1". В ее коде внутри цикла do while всё и происходит. Уже всё урезано до проблемных данных. Сейчас сделаю по-другому: возьму i3-i1 и буду сравнивать с нулем. Но хотелось бы разобраться, что за бл?*:!во-то твориться...
...
Рейтинг: 0 / 0
26.01.2021, 10:25
    #40038885
ROI
ROI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интегер 71 почему-то меньше интегера 39
Beliar,

А с чего вы решили чё переменные Integer
...
Рейтинг: 0 / 0
26.01.2021, 10:25
    #40038886
Beliar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интегер 71 почему-то меньше интегера 39
до 150 кб не жмется, так что вот вторая часть...
...
Рейтинг: 0 / 0
26.01.2021, 10:26
    #40038887
Beliar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интегер 71 почему-то меньше интегера 39
ROI
Beliar,

И

нечаяно ctrl+Enterнажал (чтоб перейти на новую строку)
...
Рейтинг: 0 / 0
26.01.2021, 10:26
    #40038888
Beliar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интегер 71 почему-то меньше интегера 39
...
Рейтинг: 0 / 0
26.01.2021, 10:27
    #40038890
Beliar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интегер 71 почему-то меньше интегера 39
ROI
Beliar,

А с чего вы решили чё переменные Integer


Объявлены как интегер лично моими руками
...
Рейтинг: 0 / 0
26.01.2021, 10:32
    #40038891
Beliar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интегер 71 почему-то меньше интегера 39
авторСейчас сделаю по-другому: возьму i3-i1 и буду сравнивать с нулем.
Вот так работает. Но что не так с прямым сравнением???
...
Рейтинг: 0 / 0
26.01.2021, 10:37
    #40038893
ROI
ROI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интегер 71 почему-то меньше интегера 39
Beliar
Здарова, коллеги!
в операторе IF проверяются значения двух переменных типа Integer. При этом при сравнении i3=71 и i1=39 почему-то уходит в ветку i3<i1. Причем при проверке функцией IsNumeric обе возвращают "true". Прилагаю саму базу. Там на форме "Форма1" есть кнопка "Step1". В ее коде внутри цикла do while всё и происходит. Уже всё урезано до проблемных данных. Сейчас сделаю по-другому: возьму i3-i1 и буду сравнивать с нулем. Но хотелось бы разобраться, что за бл?*:!во-то твориться...

i1="39" строковый
i3=71 числовой
в отладчике все видно
отсюда и не складушки
...
Рейтинг: 0 / 0
26.01.2021, 10:39
    #40038895
ROI
ROI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интегер 71 почему-то меньше интегера 39
ROI,

проблему вот осюда
Dim i, h1, h2, h3, i1, i2, i3, i4, i5, i6 As Integer
все переменные кроме i6 имеют тип вариант
...
Рейтинг: 0 / 0
26.01.2021, 10:44
    #40038898
ROI
ROI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интегер 71 почему-то меньше интегера 39
ROI,

Dim i1 As Integer
Dim i2 As Integer
Dim i3 As Integer
Dim i4 As Integer
Dim i5 As Integer
Dim i6 As Integer
...
Рейтинг: 0 / 0
26.01.2021, 10:49
    #40038901
ROI
ROI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интегер 71 почему-то меньше интегера 39
Beliar
ROI
Beliar,

А с чего вы решили чё переменные Integer


Объявлены как интегер лично моими руками

Это вам только кажется (ноги то же участвовали но не голова)
...
Рейтинг: 0 / 0
26.01.2021, 10:56
    #40038906
Beliar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интегер 71 почему-то меньше интегера 39
ROI,
вот в первый раз слышу, что при такой записи только последняя объявляется как положено а ведь уже туеву хучу проектов сдал в производство за 11 лет))) слов нет
...
Рейтинг: 0 / 0
26.01.2021, 10:57
    #40038907
Beliar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интегер 71 почему-то меньше интегера 39
ROI,
Спасибо огромное!
...
Рейтинг: 0 / 0
26.01.2021, 11:02
    #40038912
Beliar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интегер 71 почему-то меньше интегера 39
но это отвратительно. В одном модуле бывает нужно объявить до 40-50 переменных разного типа. И каждой персонально прописывать тип???
...
Рейтинг: 0 / 0
26.01.2021, 11:13
    #40038916
ROI
ROI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интегер 71 почему-то меньше интегера 39
Beliar
но это отвратительно. В одном модуле бывает нужно объявить до 40-50 переменных разного типа. И каждой персонально прописывать тип???

Да, прописывать каждую, иначе переменные типа Variant
сыграют с вами злую шутку (вы это уже почувствовали)
...
Рейтинг: 0 / 0
26.01.2021, 11:15
    #40038919
ROI
ROI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интегер 71 почему-то меньше интегера 39
ROI,

Можно через сокращения
https://docs.microsoft.com/ru-ru/office/vba/language/concepts/getting-started/declaring-variables

Dim intX%, intY%, intZ as Integer

Сокращение для типов: % – Integer; & – Long; @ – Currency; # – Double; ! – Single; $ – String
...
Рейтинг: 0 / 0
26.01.2021, 11:21
    #40038921
Beliar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интегер 71 почему-то меньше интегера 39
ROI
ROI,

Можно через сокращения
https://docs.microsoft.com/ru-ru/office/vba/language/concepts/getting-started/declaring-variables

Dim intX%, intY%, intZ as Integer

Сокращение для типов: % – Integer; & – Long; @ – Currency; # – Double; ! – Single; $ – String

Ну это меняет дело! Еще раз спасибо!
...
Рейтинг: 0 / 0
26.01.2021, 11:31
    #40038923
Beliar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интегер 71 почему-то меньше интегера 39
чуток не допонял. Допустим нужно объявить i1,i2,i3,i4,i5 как Integer. Как правильно,
так: Dim i1%, i2%, i3%, i4%, i5 as Integer
или так: Dim i%, i5 as Integer
...
Рейтинг: 0 / 0
26.01.2021, 11:40
    #40038925
ROI
ROI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интегер 71 почему-то меньше интегера 39
Beliar
чуток не допонял. Допустим нужно объявить i1,i2,i3,i4,i5 как Integer. Как правильно,
так: Dim i1%, i2%, i3%, i4%, i5 as Integer
или так: Dim i%, i5 as Integer


Dim i1%, i2%, i3%, i4%, i5% все переменные интеджер
...
Рейтинг: 0 / 0
26.01.2021, 11:41
    #40038927
ROI
ROI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интегер 71 почему-то меньше интегера 39
Beliar,

здесь то-же бардак
Dim dbs1, dbs2, dbs3 As Database
Dim rst1, rst2, rst3 As Recordset
Dim dat1, dat2 As Date
Dim str1, str2, str3, str4, str5 As String
Dim int1, int2, int3 As String
надо так:
Dim dbs1 As Database
Dim dbs2 As Database
Dim dbs3 As Database

для объектных переменных нет сокращений
...
Рейтинг: 0 / 0
26.01.2021, 11:58
    #40038934
Beliar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интегер 71 почему-то меньше интегера 39
ROI, теперь понял. Перелопачу хотя бы в этой бд., пока немного)) И как это за столько лет ни разу не выстрелило?! Ладн, спасибо. Тема закрыта))
...
Рейтинг: 0 / 0
26.01.2021, 12:37
    #40038951
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интегер 71 почему-то меньше интегера 39
Beliar
но это отвратительно. В одном модуле бывает нужно объявить до 40-50 переменных разного типа. И каждой персонально прописывать тип???
Ну это разве в БД определяющей объем силуэта коня в вккуме (я безуспешно пытался понять цели которые преследуются созданием этой БД) и пришел к выводу что четкая постановка задачи отсутствует-а то глядишь и объектов бы стало на порядок меньше и кд бы значительно упростился.Если есть желание объясните для чего создается БД и какие исходные(набиваемые ручками)имеются.
Beliar
ROI, теперь понял. Перелопачу хотя бы в этой бд., пока немного)) И как это за столько лет ни разу не выстрелило?! Ладн, спасибо. Тема закрыта))
Стесняюсь спросить,но уж больно интересно, а за сколько лет и сколько создано "боевых"(рабочих и используемых) БД
...
Рейтинг: 0 / 0
26.01.2021, 12:40
    #40038953
alecko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интегер 71 почему-то меньше интегера 39
Beliar, изучите оператор def, причем там можно выбирать сразу несколько букв типа defbool B-C
он как то не прижился в листингах, но может вам подойдет.
...
Рейтинг: 0 / 0
26.01.2021, 12:52
    #40038959
crutchmaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интегер 71 почему-то меньше интегера 39
Beliar
но это отвратительно

Это вба. Что ты от него хотел?
...
Рейтинг: 0 / 0
26.01.2021, 13:37
    #40038983
Beliar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интегер 71 почему-то меньше интегера 39
crutchmaster
Beliar
но это отвратительно
Это вба. Что ты от него хотел?
на VB6 из вижуал-студио я писал еще в универе. Там-то и объявлялись переменные через запятую. Хотя может, память подводит, но откуда-то же такая форма записи в памяти торчит.
sdku
Beliar
но это отвратительно. В одном модуле бывает нужно объявить до 40-50 переменных разного типа. И каждой персонально прописывать тип???
Ну это разве в БД определяющей объем силуэта коня в вккуме (я безуспешно пытался понять цели которые преследуются созданием этой БД) и пришел к выводу что четкая постановка задачи отсутствует-а то глядишь и объектов бы стало на порядок меньше и кд бы значительно упростился.Если есть желание объясните для чего создается БД и какие исходные(набиваемые ручками)имеются.

Это лишь фрагмент базы, я лишнее удалил, перед тем, как сжать и прикрепить к теме. Да и половина объектов временные. После окончания разработки удалю. Не знаю, зачем Вам подробности, но раз уж интересено: это прога по составлению ротационного отчета по продукции на складе. Из 1с выгружается в excel отчет по движению товара (ну в виде Нач.Ост.; Приход; Расход; Кон.Ост.). Импортируется сюда. Руками вбивается два прихода (для каждого наименования связанные записи в виде Кол-во;ДатаПроизводства;НомерПрихода). А дальше... юзер жмет всего одну кнопку и веселый VBA списывает расход начиная со старых дат, сначала из начальных остатков, затем из первого прихода, потом из второго и сохраняет, что осталось, ввиде нового отчета. Толку высматривать "силуэт коня" в нескольких косточках с одним копытом.
sdku
Стесняюсь спросить,но уж больно интересно, а за сколько лет и сколько создано "боевых"(рабочих и используемых) БД

5 в медицинском учреждении с 2008 по 2011. В те годы опыта совсем ни на грош было. И Вы, sdku, были среди тех, кто не раз помогал мне. Я то математик. Кроме акса и ВБ нихера в универе не изучалось. Потом для мелких фирм, уже и не вспомнить, сколько мелких бд-шек нацарапал. С одной, правда, возился, больше полугода, слишком много ситуативных разборов было. Здесь на кондитерке уже пятый проэкт за 2 года. Из первых 4 только один перестал использоваться за ненадобностью. Ну да, может местами рациональностью и не блещем. И у меня до сих пор Акс 2002.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / интегер 71 почему-то меньше интегера 39 / 25 сообщений из 33, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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