Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Textbox параметры ввода
|
|||
|---|---|---|---|
|
#18+
А вообще, прежде чем продолжать, категорически рекомендую почитать про типы данных VBA, а то у вас каша. И еще лучше использовать опцию Option Explicit, объявить все переменные и не допускать неявных преобразований. e = Val(TextBox2.Value) Val возвращает подходящий числовой тип. Если у вас не определена переменная e, она получает этот тип. e = False здесь вы сравниваете числовой тип с булевым. Булево значение будет неявно преобразовано в числовое (конкретно - в 0), то есть вы сравниваете ваше значение с нулем. TextBox2.Value <> "" единственное корректное сравнение TextBox2.Value <> 0 Value имеет текстовый тип, 0 - числовой. Скорее всего Value будет пытаться быть преобразовано в число, чтобы можно было сравнить с нулем. Если там будут какие-то посторонние буквы возникнет ошибка. Или 0 будет пытаться быть преобразован в "0" (текстовый тип) для сравнения. То есть точного понимания, как пройдет неявное преобразование - нет. TextBox2.Value = "" любая опечатка и человек вынужден вводить все заново, прям сапер :-/ от одиночных запятых данная конструкция защищает мне казалось, что выхотели защиту от двойных запятых. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2010, 21:28 |
|
||
|
Textbox параметры ввода
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, проблема в том что системным разделителем у меня является запятая а не точка, поэтому я пытаюсь с false, может я чего не понимаю просто... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2010, 21:34 |
|
||
|
Textbox параметры ввода
|
|||
|---|---|---|---|
|
#18+
Shocker.ProА вообще, прежде чем продолжать, категорически рекомендую почитать про типы данных VBA, а то у вас каша. И еще лучше использовать опцию Option Explicit, объявить все переменные и не допускать неявных преобразований. e = Val(TextBox2.Value) Val возвращает подходящий числовой тип. Если у вас не определена переменная e, она получает этот тип. e = False здесь вы сравниваете числовой тип с булевым. Булево значение будет неявно преобразовано в числовое (конкретно - в 0), то есть вы сравниваете ваше значение с нулем. TextBox2.Value <> "" единственное корректное сравнение TextBox2.Value <> 0 Value имеет текстовый тип, 0 - числовой. Скорее всего Value будет пытаться быть преобразовано в число, чтобы можно было сравнить с нулем. Если там будут какие-то посторонние буквы возникнет ошибка. Или 0 будет пытаться быть преобразован в "0" (текстовый тип) для сравнения. То есть точного понимания, как пройдет неявное преобразование - нет. TextBox2.Value = "" любая опечатка и человек вынужден вводить все заново, прям сапер :-/ от одиночных запятых данная конструкция защищает мне казалось, что выхотели защиту от двойных запятых. защиту от двойных и далее я сделал, а вот защита от простых нужна например в случае ввода только запятой или ,4 к примеру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2010, 21:36 |
|
||
|
Textbox параметры ввода
|
|||
|---|---|---|---|
|
#18+
в принципе такой ввод можно обойти, если задать положение "," в textBox начиная со 2-го символа текстовой строки. только как это записать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2010, 21:54 |
|
||
|
Textbox параметры ввода
|
|||
|---|---|---|---|
|
#18+
dezmontinoзащиту от двойных и далее я сделал, а вот защита от простых нужна например в случае ввода только запятой или ,4 к примеру. в принципе такой ввод можно обойти, если задать положение "," в textBox начиная со 2-го символа текстовой строки. dezmontino, внимательно изучите следующие строки. Выводы, думаю, очевидны? Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2010, 22:23 |
|
||
|
Textbox параметры ввода
|
|||
|---|---|---|---|
|
#18+
vlthdezmontinoзащиту от двойных и далее я сделал, а вот защита от простых нужна например в случае ввода только запятой или ,4 к примеру. в принципе такой ввод можно обойти, если задать положение "," в textBox начиная со 2-го символа текстовой строки. dezmontino, внимательно изучите следующие строки. Выводы, думаю, очевидны? Код: plaintext 1. 2. спасибо помогло вот что получилось e = IsNumeric(TextBox2.Value) If (e = False) And (TextBox2.Value <> "") Then MsgBox "некорректный ввод", vbExclamation, "Внимание" TextBox2.Text = "" TextBox2.SetFocus End If ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2010, 22:39 |
|
||
|
Textbox параметры ввода
|
|||
|---|---|---|---|
|
#18+
dezmontino, вот так оно будет приличнее смотреться: Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2010, 23:06 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=36533531&tid=2160022]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
33ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 351ms |

| 0 / 0 |
