Access. Обновление поля формы

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
40a
Сообщения: 2
Зарегистрирован: 25 мар 2009, 15:43

Сразу скажу, что в Access я ни бум-бум!
Кое-как, с грехом пополам состряпала маленькую программульку, теперь мне её надо чуток поправить, а у меня не получается
Помогите, плис!! буду ооочень благодарна

Суть в следующем.
У меня есть таблица1, состоящая из 2-х полей: ФИО и сумма
Есть форма с тремя элементами:
- ПолеСоСписком, в которое выводятся значения Таблица1.ФИО,
- второе поле, в которое я ввожу любое число, и
- поле - результат умножения Таблица1.сумма на число, введенное во втором поле

Я написала маленькую процедуру, которая вызывается при изменении в ПолеСоСписком0.
Private Sub func()
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("select * from Таблица1 where fio = '" & ПолеСоСписком0.Text & "'")
Поле4.Value = rst!sum1 * Поле2.Value
End Sub

Вроде всё работает. Я ввожу число во втором поле, выбираю в ПолеСоСписком какую-то запись, в третьем поле всё умножается

Теперь мне нужно сделать так, чтобы и при изменении во втором поле у меня так же пересчитывалось третье.
Я стала вызывать эту процедурку при изменении во втором поле
Private Sub Поле2_Change()
func
End Sub

Но у меня стала выходить ошибка: Run-time error '2185'
невозможно обратиться к свойству или методу элемента управления, пока на этот элемент не установлен фокус ввода

и указатель ошибки встает на строку
Set rst = CurrentDb.OpenRecordset("select * from Таблица1 where fio = '" & ПолеСоСписком0.Text & "'")

Подскажите, плис, в чем ошибка и как её исправить!!
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

А не пробовали ввести в третье поле выражение и вообще отказаться от VBA?.

Что-то вроде
=[Список1]*[Поле2]

При этом список надо построить по двум столбцам, ширину второго столбца указать 0, а в качестве связанного столбца указать второй.
Teslenko_EA
Сообщения: 526
Зарегистрирован: 04 фев 2007, 18:37
Откуда: Сургут
Контактная информация:

Здравствуйте 40a.
Ошибка: "... = '" & ПолеСоСписком0.Text & "'" ...",
у формы MS Access нельзя "прочесть" свойство .Text контрола на который не установлен Фокус ввооа.
Избавиться от ошибки можно "укоротив" строку " "... = '" & ПолеСоСписком0 & "'" ..."
Но если не планируется применять форму для добавления и редактирования записей таблицы, совет который дал Naeel Maqsudov - лучшее решение Вашей задачи.
Евгений.
40a
Сообщения: 2
Зарегистрирован: 25 мар 2009, 15:43

Naeel Maqsudov
Teslenko_EA

Спасибо вам огромнейшее!
Я сделала список из двух полей и прописала в поле выражение. Получилось куда проще, чем мой первый способ через select! :D
Ответить