|
30 Кб. |
|
| Есть форма. Слева на форме - список принтеров. Справа - список различных картриджей. Выбрав принтер 2 хлопком по выбранному картриджу назначаем его соответствующему принтеру. Он добавляется в подчиненную форму. Но добавление идет не запросом на добавление, а через recorset.addnew
Теперь внимание вопрос. Как сделать так, что бы по ходу дела (этого или другого рекордсета) проверялось есть ли в подчиненной таблице уже такой картридж. (код этого картриджа) и если есть, то запись не добавлялась, если нет, то добавляется.
Пример прилагаю. | |
|
| |
|
|
|
|
Private Sub Список10_DblClick(Cancel As Integer)
With Me.подчиненная_форма_Применение_картриджа.Form
.RecordsetClone.FindFirst "КодКартриджа=" & Me.Список10
If .RecordsetClone.NoMatch Then
.Recordset.AddNew
.[Осн/совм] = Me.Переключатель18
Else
MsgBox "Глаза протри!"
End If
End With
End Sub
|
А по-хорошему, тех картриджей, что уже выбраны в правом списке быть не должно.
Да, и доступа к подчиненной форме и правому списку не должно быть, пока не выбран принтер в левом списке. | |
|
| |
|
|
|
| Спасибо. Согласен и это обязательно будет. Не показывать картриджи, если они выбраны для данного принтера весьма заманчиво. Тогда и протирать глаза не надо будет. Но эта форма временная для быстрого набора данных, что бы было с чем работать. Блокировку формы тоже сделаю. Разрешу только удаление.
А вот вопрос. Стоит ли городить запросы на добавление и удаление, что бы вместо формы был список?. Тогда кнопка (удалить) и все.
Но это изыскания.
.RecordsetClone.FindFirst "КодКартриджа=" & Me.Список10 - Как расшифровать эту строку, что бы понятней было. Запускаем рекордсет по полю КодКартриджа и сравниваем его со значениями Списка10. Далее - если совпадений нет, то добавляем. Если есть - то протираем глаза. верно? | |
|
| |