Доступ: после изменения события - PullRequest
0 голосов
/ 02 ноября 2018

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

до: ___

после: ____

нетто: (= до-после)

Код, который у меня есть:

   Private Sub after_Change()
       net.Value = before.Value - after.Value
   End Sub

Две проблемы сейчас заключаются в том, что он изменяется в зависимости от последнего введенного значения (при изменении 5-> 6 он запускает код с 5). И запускает код только при первом изменении, а не при каждом изменении. Чтобы запустить его снова, необходимо отменить выбор текстового поля и выбрать его снова.

Что мне здесь не хватает?

Ответы [ 3 ]

0 голосов
/ 02 ноября 2018

Это должно работать:

Private Sub Form_Current
  net.Value = before.Text - after.Text
End Sub
0 голосов
/ 03 ноября 2018

В VB6: вы используете элементы управления после события обновления

В .net / vb.net: вы используете элементы управления после события обновления

В asp.net: вы используете элементы управления после события обновления.

С c # и winforms? - Вы используете элементы управления после события обновления.

В FoxPro вы используете событие после обновления.

Хотите сделать дикое предположение о том, какое событие в Access использовать?

подсказка: После обновления.

Итак, для двух элементов управления, которые у вас есть после события обновления, у вас есть это:

Call MyCalc

И тогда у вас есть:

Sub MyCalc

    Me.net = me.Before – me.After

End sub

И если любой из элементов управления может / будет пустым или «пустым», тогда я предлагаю:

  Me.Net = nz(me.Before,0) – nz(me.After,0)

Изменения действительно полезны только для обработки ключа по ключу, поскольку при вводе каждого символа в текстовое поле происходит событие - вы действительно никогда не узнаете, когда пользователь закончил. В каждой платформе разработки, которую я могу представить для настольных компьютеров за последние 25 лет, стандартное событие происходит после обновления.

Вы также заметите, что эта проблема на 100% устраняет необходимость в .text. Таким образом, вы можете просто использовать имена элементов управления согласно приведенным выше примерам.

0 голосов
/ 02 ноября 2018

Попробуйте это:

   Private Sub after_Change()
       net.Value = before.Value - after.Text
   End Sub
...