Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: recordset
 
 автор: Гоблин   (20.08.2010 в 20:47)   личное сообщение
30 Кб.
 
 

Есть форма. Слева на форме - список принтеров. Справа - список различных картриджей. Выбрав принтер 2 хлопком по выбранному картриджу назначаем его соответствующему принтеру. Он добавляется в подчиненную форму. Но добавление идет не запросом на добавление, а через recorset.addnew
Теперь внимание вопрос. Как сделать так, что бы по ходу дела (этого или другого рекордсета) проверялось есть ли в подчиненной таблице уже такой картридж. (код этого картриджа) и если есть, то запись не добавлялась, если нет, то добавляется.
Пример прилагаю.

  Ответить  
 
 автор: Lukas   (20.08.2010 в 21:24)   личное сообщение
 
 


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

А по-хорошему, тех картриджей, что уже выбраны в правом списке быть не должно.
Да, и доступа к подчиненной форме и правому списку не должно быть, пока не выбран принтер в левом списке.

  Ответить  
 
 автор: Гоблин   (20.08.2010 в 22:00)   личное сообщение
 
 

Спасибо. Согласен и это обязательно будет. Не показывать картриджи, если они выбраны для данного принтера весьма заманчиво. Тогда и протирать глаза не надо будет. Но эта форма временная для быстрого набора данных, что бы было с чем работать. Блокировку формы тоже сделаю. Разрешу только удаление.
А вот вопрос. Стоит ли городить запросы на добавление и удаление, что бы вместо формы был список?. Тогда кнопка (удалить) и все.
Но это изыскания.
.RecordsetClone.FindFirst "КодКартриджа=" & Me.Список10 - Как расшифровать эту строку, что бы понятней было. Запускаем рекордсет по полю КодКартриджа и сравниваем его со значениями Списка10. Далее - если совпадений нет, то добавляем. Если есть - то протираем глаза. верно?

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList