Консультация № 173948
03.11.2009, 19:52
35.00 руб.
0 3 0
Доброго времени суток! VBA Access
Помогите пожалуйста разобраться с событием "Нет в списке" поля со списком.
Есть поле со списком, источником строк которого является запрос. Как я понял, это событие должно наступать, если в поле со списком введено значение, которое отлично от всех значений списка.
Но у меня это событие не наступает почему-то...
И подскажите пожалуста можно ли сделать так, чтобы при внесении в поле со списком значения, отличного от списка значений, это новое значение заносилось в таблицу, которая является источником строк данного поля со списком. (или просто приведите пример)

Приложение:
Private Sub Поле_со_списком_NotInList(NewData As String, Response As Integer)

End Sub

Обсуждение

Неизвестный
04.11.2009, 03:35
общий
свойство "Ограничиться списком" какое значение имеет?
Неизвестный
04.11.2009, 09:35
общий
Спасибо. Действительно свойство "Ограничиться списком" имело значение "НЕТ". А как же все таки добавить новое значение в таблицу?
Источник строк для поля со списком:
ПолеСоСписком.RowSource = "SELECT Сотрудники.ФИО FROM Сотрудники WHERE (((Сотрудники.[ИД подразделение])=[Forms]![Крановый узел]![ИД подразделение]));"
Неизвестный
05.11.2009, 02:52
общий
в обработчике ПолеСоСписком_NotInList у Вас есть NewData - это то самое новое значение, которого нет в списке...
вот и делайте с ним что хотите, в частности добавляйте запись с этими данными, через Query или просто SQL запросом, например так:
Код:

Private Sub ПолеСоСписком_NotInList(NewData As String, Response As Integer)
CurrentDb.Execute "INSERT INTO Сотрудники ([ФИО],[ИД подразделение]) VALUES (""" & Replace(CStr(NewData), """", """""") & """, " & CStr([Forms]![Крановый узел]![ИД подразделение]) & ")"
Response = acDataErrAdded
End Sub

если Вы вставили запись в таблицу источник, Response нужно присвоить значение acDataErrAdded....
Форма ответа