|
VBA Enter для textbox срабатывает только один раз
|
|||
---|---|---|---|
#18+
Короче темный лес для меня пока Ваши красоты в кодах. Придет время - научусь, все программисты тут тоже не родились такими и не сразу стали писать красивые коды. На детей же не орут, когда они только начинают ходить и у них это плохо получается. Да криво, зато работает, другие среднестатистические и специально не обученные и этого не могут. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2016, 14:17 |
|
VBA Enter для textbox срабатывает только один раз
|
|||
---|---|---|---|
#18+
ypmailПо ячейкам: 3 и 5, угадал?Не угадал, ячейки 1 и 2. А 3 и 5 - это просто фреймы без текстбоксов (лень их было туда возвращать, а так как у фреймов установлен прозрачный фон, сквозь него просвечивает фон формы, поэтому они чуть чуть другого цвета) ypmailправда заголовки колонок наверное придется оставить в Label внутри фреймовопять за рыбу деньги. У меток есть все те же самые свойства обрамления, нет никакой необходимости во фреймах, если речь идет только об оформлении ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2016, 14:29 |
|
VBA Enter для textbox срабатывает только один раз
|
|||
---|---|---|---|
#18+
ypmailКак правильно записать, чтобы объявить один раз переменную и потом несколько раз использовать не нашел, поэтому пока оставил так. Примерно так может выглядеть ваш код в цикле Код: vbnet 1.
Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
А вообще, по хорошему, то, что в самом документе несколько раз повторяется одно и то же - тоже не гуд, должно быть один раз и размножаться кодом. А количество повторений должно быть забито глобальной константой ТОЛЬКО в одном месте для всех применений. А то, если потребуется внести косметические изменения в дизайн ярлыка, то придется это делать восемь раз. Но к этому вы уже со временем придете. ypmailНа детей же не орут, когда они только начинают ходитьПростите, если вы восприняли критику в свой адрес именно так, ни в коем разе не хотел вас обидеть, только простимулировать ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2016, 14:43 |
|
VBA Enter для textbox срабатывает только один раз
|
|||
---|---|---|---|
#18+
Shocker.Pro, По Вашему способу код не становится короче, т.к. в нём только программно определяются имена полей, всё остальное приходится также по несколько раз прописывать. От переменной rng избавиться не получается, т.к. она постоянно принимает новые значения, её приходится прописывать для каждого поля. Снова копипаст получается. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2016, 11:29 |
|
VBA Enter для textbox срабатывает только один раз
|
|||
---|---|---|---|
#18+
вы предложили фрагмент, я показал как его можно сократить в 8 раз. если другой фрагмент не получается сократить аналогично, ну выложите его и скажите, в чем проблема... зачем нужно избавляться от rng - не понял вообще... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2016, 23:06 |
|
VBA Enter для textbox срабатывает только один раз
|
|||
---|---|---|---|
#18+
Shocker.Pro, Учусь, пыхтю, туплю, извините за глупые вопросы Тут строка Код: vbnet 1.
повторяется, нельзя её как в математике вынести за скобки? Я имею ввиду, как-то избежать повторов. Вот тут Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
мне кажется тоже надо сократить, нашел пример, там какие-то Class Modul используют, прописывают коды в разных местах и в class modul и в коде формы и просто в Modul1. пока пытаюсь разобраться в этом темном лесу и применить к своему примеру. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2016, 09:04 |
|
VBA Enter для textbox срабатывает только один раз
|
|||
---|---|---|---|
#18+
У них в примере работает, а у меня выдаёт ошибку на Код: vbnet 1.
Пробовал эту строчку в своем Module1 - не работает в отдельном модуле - не работает вообще удалил - начинает ругаться на кусок в UserForm1 Код: vbnet 1. 2. 3. 4. 5. 6. 7.
Ну естесственно, ведь aoTxtBxes не объявлена нигде, если эту строчку вообще удаляю. И как у них в примере ругается и без Код: vbnet 1.
дальше код не работает. На кусок в Class1 пока не ругается, т.к. первую строчку еще не поборол Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2016, 09:26 |
|
VBA Enter для textbox срабатывает только один раз
|
|||
---|---|---|---|
#18+
Вроде начал разбираться с модуль классами. Помимо этой строчки надо было прописать Sub Show_Form(). ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2016, 09:53 |
|
VBA Enter для textbox срабатывает только один раз
|
|||
---|---|---|---|
#18+
В результате использования модуль класса код сократился до Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8.
Спасибо за замечание по поводу громоздкости кода и подсказки! Буду дальше что-нибудь упрощать. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2016, 10:02 |
|
VBA Enter для textbox срабатывает только один раз
|
|||
---|---|---|---|
#18+
Не работает из-за этих First и Last. Я в сообщении выше просто второй строкой прописал для Last, но так не работает. Пробовал так: Код: vbnet 1.
Как быть с разными именами текстбоксов? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2016, 10:26 |
|
VBA Enter для textbox срабатывает только один раз
|
|||
---|---|---|---|
#18+
ypmail Код: vbnet 1.
повторяется, нельзя её как в математике вынести за скобки?ну тут она играет роль вспомогательной переменной, а работаете вы с парными закладками на каждый объект, пока нет смысла наверное, внутри цикла находится законченный алгоритм. ypmail Код: vbnet 1. 2. 3.
мне кажется тоже надо сократить,это достаточно бессмысленный код, он не дает нажать в текстбоксе нецифровые кнопки, но никак не защищает от вставки из буфера, перетаскивания текста и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2016, 11:25 |
|
VBA Enter для textbox срабатывает только один раз
|
|||
---|---|---|---|
#18+
ypmail Код: vbnet 1.
Как быть с разными именами текстбоксов?никак, либо делать сквозную нумерацию текстбоксов, либо вернуться к своему предыдущему варианту. Переупрощать, конечно не надо тоже. Однако тут тоже есть косяк: Код: vbnet 1. 2. 3. 4.
У вас вторая строка нивелирует действие первой. То есть вы назначили aoTxtBxes(i).oTxtBx одно значение, а потом сразу затерли его другим значением. Так что работать у вас будут только Last-ы. Раз у вас 16 текстбоксов то..... НЕТ вспомните, я говорил, что лучше, чтобы число 8 было объявлено в ОДНОМ месте в виде константы и нигде более не использовалось в виде числа. Так что у вас N строк в таблице и N*2 текстбоксов, следовательно и массив должен быть не 1 To N, а 1 To N*2 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2016, 11:32 |
|
VBA Enter для textbox срабатывает только один раз
|
|||
---|---|---|---|
#18+
Shocker.Proypmail Код: vbnet 1. 2. 3.
мне кажется тоже надо сократить,это достаточно бессмысленный код, он не дает нажать в текстбоксе нецифровые кнопки, но никак не защищает от вставки из буфера, перетаскивания текста и т.п. Как на счёт такого варианта?: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Вроде не позволяет вводить ничего кроме цифр и вставка из буфера не работает. Очень уж не хочется сквозную нумерацию вместо NumberFirst1 (Last и т.д.), сложнее будет в коде ориентироваться (по крайней мере мне), но раз других путей нет... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2016, 13:52 |
|
VBA Enter для textbox срабатывает только один раз
|
|||
---|---|---|---|
#18+
ypmailВроде не позволяет вводить ничего кроме цифр и вставка из буфера не работает.так лучше ypmailОчень уж не хочется сквозную нумерацию вместо NumberFirst1 (Last и т.д.), сложнее будет в коде ориентироваться (по крайней мере мне), но раз других путей нет...почему нет? Я бы как раз оставил First и Last - код будет нагляднее, что тоже важно. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2016, 13:54 |
|
VBA Enter для textbox срабатывает только один раз
|
|||
---|---|---|---|
#18+
Shocker.ProЯ бы как раз оставил First и Last - код будет нагляднее, что тоже важно. Тогда у меня опять копипаст получается. Этот кусок кода надо копировать для всех First, потом для всех Last. Опять ничего не получается с компактностью. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2016, 14:11 |
|
VBA Enter для textbox срабатывает только один раз
|
|||
---|---|---|---|
#18+
Нет, я же писал выше Shocker.Pro Код: vbnet 1. 2. 3. 4.
Это вполне нормальный подход, только ошибка в том, что массив должен состоять из 16 элементов, а не из 8 и заполняться соответственно ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2016, 14:26 |
|
VBA Enter для textbox срабатывает только один раз
|
|||
---|---|---|---|
#18+
В классе этот кусок вообще не хочет работать (даже i на j поменял) Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Думал это загоню в модуль класс и этот код будет проверяться на каждом textbox. Не тут-то было. На форме с конкретным именем текстбокса работает, а в модуль классе нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2016, 14:26 |
|
VBA Enter для textbox срабатывает только один раз
|
|||
---|---|---|---|
#18+
Shocker.ProНет, я же писал выше Shocker.Pro Код: vbnet 1. 2. 3. 4.
Это вполне нормальный подход, только ошибка в том, что массив должен состоять из 16 элементов, а не из 8 и заполняться соответственно Я пробовал везде 8 на 16 менять - не помогло. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2016, 14:27 |
|
VBA Enter для textbox срабатывает только один раз
|
|||
---|---|---|---|
#18+
ypmailЭтот кусок кода надо копировать для всех First, потом для всех Last.кроме того, это тоже решается просто: Код: vbnet 1. 2. 3.
Код: vbnet 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2016, 14:28 |
|
VBA Enter для textbox срабатывает только один раз
|
|||
---|---|---|---|
#18+
ypmailЯ пробовал везде 8 на 16 менять - не помогло.потому что надо не тупо что-то делать, а думать над тем, что делаешь, что хочешь сделать. Я даю направление для размышлений, а не пишу код за вас. Покажите код, который "не помогло." ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2016, 14:30 |
|
VBA Enter для textbox срабатывает только один раз
|
|||
---|---|---|---|
#18+
В UserForm1: Код: vbnet 1. 2. 3. 4. 5. 6. 7.
В Modul1: Код: vbnet 1. 2. 3. 4.
В Class Modules: Код: vbnet 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2016, 14:35 |
|
VBA Enter для textbox срабатывает только один раз
|
|||
---|---|---|---|
#18+
ypmail Код: vbnet 1. 2. 3. 4.
У вас есть текстбокс с именем NumberFirst16? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2016, 14:39 |
|
VBA Enter для textbox срабатывает только один раз
|
|||
---|---|---|---|
#18+
Вот к чему были эти N, N*2? Мозг уже не воспринимает ничего, надо пока забросить это дело, а то психушка по мне заплачет... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2016, 14:47 |
|
VBA Enter для textbox срабатывает только один раз
|
|||
---|---|---|---|
#18+
ypmailВот к чему были эти N, N*2?ну пусть для начала будет 8 и 16, потом переделаете на N и N*2 (раз сразу не можете абстрагироваться, хотя это чистая алгебра за 6й класс) У вас 8 одних текстбоксов и 8 других. Всего 16. Массив должен состоять из 16 элементов. Но заполнять-то его надо как 8+8, а не как 16+16 Я не хочу править ваш код, хочу, чтобы сами сообразили, это намного полезнее на будущее. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2016, 14:52 |
|
VBA Enter для textbox срабатывает только один раз
|
|||
---|---|---|---|
#18+
В модуле оставил 1 To 16 В форме извратился уже до такого: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
Снова как Вы писали "нивелирует" действие первого выражения. Левая часть до знака равенства с i и с j - отличается, правая тоже, не должно одно выражение нивелировать второе, но увы... 8 текстбоксов First, 8 Last, разные переменные i и j, почему не работает? Нигде даже нет примеров. Все самомучители показывают только простейшие примеры, нигде нет примеров синтаксиса когда надо прописать разные варианты как в моем случае. На SQL написал Where Field = '123' OR Field = '456' OR и т.д. и всё понятно, а тут какой-то тупой язык (или я :-)) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2016, 15:25 |
|
|
start [/forum/topic.php?fid=60&msg=39239150&tid=2155475]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 152ms |
0 / 0 |