![]() |
Модераторы: Akina |
![]() ![]() ![]() |
|
Jonnik |
|
||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 90 Регистрация: 9.2.2006 Репутация: нет Всего: нет |
Функция на VisualBasic вызывается для обработки нажатия кнопки формы в MS ACESS.
Суть функции – перенумерация операций в порядке возрастания с шагом 5. (т.е. было 5, 7, 10, 15, 17, 20 – стало 5, 10, 15, 20, 25, 30) Функция написана не мной, я дорабатывал эту функцию, чтобы можно было задавать пропуск в номерации (например, … 95, 100, 105 … – вставить разрыв на 20 между 95 и 100, чтобы получить … 95, 120, 125) Мне необходимо сравнить номер операции в цикле с введённым номером, с которого должен начинаться разырв («Окно»). Если делать так:
то ничего не получается, т.к. функция STR добавляет лишние пробелы в текстовое представление числа kap. Сейчас вопрос с перенумерацией решён, я к обоим строкам применяю функцию TRIM, которая удаляет лишние пробелы. Пока я переделывал функцию, то заметил, что команды вида
обрабатываются нормально, а команды, в которых я оперирую значением «rs.Fields("НомерОперации").Value», вида:
вызывают зависание программы. (ACESS выдаёт «песочные часы», не отвечает на команды, реагирует только на закрытие программы). Главный вопрос: почему ACESS зависает если в функции есть манипуляции с rs.Fields("НомерОперации").Value и подобными? В данной функции этот вопрос удалось обойти, а что делать если, подобные значения надо как-то обрабатывать? Далее – код функции.
|
||||||||
|
|||||||||
Akina |
|
||||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
CStr(), в отличие от Str(), не оставляет пробела на знакоместо. Руками надо код писать (сорри) - это тебе не ПХП, тут надо точно соблюдать типы данных. Строка? только строковые функциию Число? только чисельные. А у тебя винегрет.
А какой у тебя тип этого поля? А ты что туда суёшь? а используешь как? Скажи спасибо, что у Аксесса рук нет - он тебе кроме зависа и ответить-то ничем не может. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
bopoha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1283 Регистрация: 10.5.2006 Где: Беларусь, Минск Репутация: 21 Всего: 21 |
VB позволяет выполнять конкатенацию строк при помощи оператора +. Но тут, нужно быть очень внимательным, т.к. в результате можно получить сложение. Особенно учитывая тот факт, что в строках у вас числа храняться, я так предполагаю.
Поэтому рекомендую для конкатенации строк использовать знак &. Даже если в выражении будут присутствовать типы, отличные от строк, VBA не ошибется преобразовав их к строковым автоматически. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "MS Access" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MS Access | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |