2015-03-02 3 views
1

Я создаю форму в Access и у меня есть несколько текстовых полей, для которых требуется целочисленное значение. Прямо сейчас вы можете вводить символы вместо номера, и при нажатии кнопки отправки появляется окно отладки. Как я могу запретить пользователям возможность нажать кнопку отправки, когда в межсетевом текстовом поле сделана недопустимая запись.Предотвращение ввода пользователем каких-либо целых чисел в текстовое поле

Спасибо!

+0

Вы пробовали поставить код «check-for-number» в событии '_BeforeUpdate' или' OnChange' текстового поля? – tospig

ответ

1

Во-первых, создайте поле Тип номера в дизайне таблицы. Затем перейдите в «Свойства поля» и убедитесь, что для параметра «Размер поля» установлено значение «Целое число». Это позаботится о десятичных числах, потому что оно округляет их до ближайшего целого числа, когда текстовое поле теряет фокус.

Далее перейдите в свойства кнопки отправки и установите Enabled = False. Это будет серым и не позволит пользователю щелкнуть по нему. Вы можете добавить этот код в свойство On Current формы, чтобы всякий раз, когда запись была загружена, она активирует или отключает кнопку отправки на основе значения, которое уже существует. Вы должны «И» в более объектов целое TextBox к тому же, если заявление, если у вас есть более чем одно целое текстовое поле на вашей форме:

Private Sub Form_Current() 
    If Not IsNumeric(Me.IntegerTextBox.Value) Then 
     Me.SubmitButton.Enabled = False 
    Else 
     Me.SubmitButton.Enabled = True 
    End If 
End Sub 

Наконец, добавьте этот код к изменению события On для текстового поля. Это позволит использовать кнопку каждый раз, когда будет введено соответствующее числовое значение, и будет обновлять кнопку каждый раз, когда нажата клавиша.

Private Sub IntegerTextBox_Change() 
    If Not IsNumeric(Me.IntegerTextBox.Text) Then 
     Me.SubmitButton.Enabled = False 
    Else 
     Me.SubmitButton.Enabled = True 
    End If 
End Sub 

Сделайте это для каждого целого поля в вашей форме.

+0

Просто хотел узнать, был ли это ответ, который вы искали или нет? – WestAce

+0

Есть ли способ использовать этот код и по-прежнему допускать десятичные знаки? Но я думаю, что это правильное направление, мне нужно пойти в –

+1

Да. Зайдите в свой дизайн стола и введите тип поля Number. Затем перейдите к свойствам поля и измените свойство «Размер поля» от Integer до Single (или Double, если у вас есть большие десятичные знаки). Я оставлю ответ в качестве Целочисленного, поскольку это был ваш первоначальный вопрос. – WestAce

0

В таблице Design введите данные Тип Number (Integer).

+0

Извините, не прочитал ваш вопрос правильно - я вернусь. –

Смежные вопросы