Как проверить наличие в списке

DiDis
Дата: 24.11.2006 09:14:49
Есть поле со списком... хотелось бы при вводе туда записи, если таковой в этом же списке не оказалось открывалась другая форма.... как сделать проверку?

Private Sub txtNameSotrudnika_KeyDown(KeyCode As Integer, Shift As Integer)
If nameS = Me.txtNameSotrudnika.Text Like Me.txtNameSotrudnika.????? & "*" Then
End Sub
типа этого что то....
RVI
Дата: 24.11.2006 09:33:44
Так есть же событие Отсутствие в списке. Вот на него и вешай открытие формы.
Allll
Дата: 24.11.2006 09:40:12
и должно быть задано свойство Ограничиться списком = Да
DiDis
Дата: 24.11.2006 09:52:09
Я чет не могу сообразить как вызвать событие отсутствует в списке....
Запись является связаной n-m (она m) и выводится ошибка в том что отсутствует связная надпись в такой то таблице...
А событие отсутствие в списке не производится т.к. невозможно перейти на сл.запись....
Я хотел проверять каждое нажатие клавиши...
например есть список
Сидоров А.И.
Сидоренко В.В.

мы вводим
С 'идет проверка по like "C*" в списке
и 'идет проверка по like "Cи*" в списке
м 'идет проверка по like "Cим*" в списке. открывается форма с сотрудниками

... хотя наверно можно на событие формы "Ошибка" повесить функцию...
DiDis
Дата: 24.11.2006 09:59:48
решил вот так

Public Sub Form_Error(DataErr As Integer, Response As Integer)
Response = 0
DataErr = 0
txtNameSotrudnika_DblClick (0)
End Sub

Public Sub txtNameSotrudnika_DblClick(Cancel As Integer)
Dim Linkcrit As String
Linkcrit = "[txtNameUnique]=" & "'" & Me.[txtNameSotrudnika] & "'"
txtNameS = Me.txtNameSotrudnika.Text
If Me.txtNameSotrudnika > "" Then
    DoCmd.OpenForm "pssOranisationSotrudniki", , , Linkcrit, acFormEdit, , txtNameS
    Else
    DoCmd.OpenForm "pssOranisationSotrudniki", , , , acFormAdd
End If
End Sub
rok
Дата: 24.11.2006 16:10:26
Как я понял Вы пытаетесь ввести в таблицу со стороны многие значение которого нет в главной таблице. Не рекомендую делать посимвольную проверку т.к фамилии могут быть Сахаров,Сахаревич,Сахарович ну и т.д,
Фамилия же Иванов повторится пренепременно, поэтому в поле со списком надо выводить что-то уникальное (например серию и номер паспорта)
Если все так вот пример (естественно для творческого подхода):
Private Sub кодТипа_NotInList(NewData As String, Response As Integer)
        ' Добавляет новый тип при вводе с клавиатуры
    ' в поле со списком "кодТипа"
Dim intNewCategory As Integer, intTruncateName As Integer, strTitle As String, intMsgDialog As Integer
	'выводит окно сообщения с приглашением подтвердить
    	'добавление нового типа
    strTitle = "Тип отсутствует в списке"
    intMsgDialog = vbYesNo + vbQuestion + vbDefaultButton1
    intNewCategory = MsgBox("Добавить новый тип?", intMsgDialog, strTitle)
    If intNewCategory = vbYes Then
        ' Удаляет новое имя из поля кодТипа, позволяя выполнить
        ' обновление элемента управления при возвращении в форму.
        DoCmd.RunCommand acCmdUndo
        ' открывает форму "ДобавлениеТипа".
        DoCmd.OpenForm "ДобавлениеТипа", acNormal, , , acAdd, acDialog, NewData
                ' продолжение без вывода стандартного сообщения.
        Response = acDataErrAdded
    End If
End Sub
А событие "отсутствие в списке" есть у поля со списком куда вводим значение
Илья 812
Дата: 24.11.2006 16:35:59
Вариант: если в списке значения нет, то введенное значение автоматически заносится в список.
Интересно?
Илья 812
Дата: 24.11.2006 16:37:18
Вариант: если в списке значения нет, то введенное значение автоматически заносится в список.
Интересно?
barrabas
Дата: 24.11.2006 16:41:50
Илья 812
Вариант: если в списке значения нет, то введенное значение автоматически заносится в список.
Интересно?

если нет, то добавляй это значение потом список.requery, если список берет данные из таблицы то делай запрос на добавление
Илья 812
Дата: 24.11.2006 16:46:17
barrabas
Илья 812
Вариант: если в списке значения нет, то введенное значение автоматически заносится в список.
Интересно?

если нет, то добавляй это значение потом список.requery, если список берет данные из таблицы то делай запрос на добавление


зачем все так усложнят? Новое значение автоматически добавляется в таблицу.