Bagira3785
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Здравствуйте! Ребят, кто подскажет? У меня есть база по начислению зарплаты, но никак не получается одна штука. В форме есть поле СумОклад, есть список СписокНачислениеОклад, созданный на основе таблицы Начисление2. В форме источник записей я указала SELECT Начисление2.* FROM Начисление2; Таблица Начисление2:КодНачисление (счетчик), Месяц, Год, КодПлан (числовой), КодРаботник(числовой), Оклад (числовой) В форме есть кнопка ИзменитьОклад, есть элемент SpinButton.1- КнСумОклад. Нужно, чтобы щелкая двойным щелчком в списке, в этом списке значение в поле оклад изменилось на значение которое будет введено в поле СумОклад. Если нажать на кнопку ИзменитьОклад, то выделялся бы весь список и так же изменялось бы значение в поле оклад. А еще как сделать так, чтобы в списке можно было бы выделять несколько записей и так же изменять оклад на то значение, которое стоит в поле СумОклад? Я вот тут кое-чего наворочала, но видно неправильно: Private Sub Form_Open(Cancel As Integer) 'Если СписокНачислениеОклад пуст - If СписокНачислениеОклад.ListCount = 0 Then 'закрыть доступ к изменению оклада ДоступОклад False Else 'иначе - открыть доступ к изменению оклада, ДоступОклад True 'выделить 1-ю строку списка СписокНачислениеОклад = СписокНачислениеОклад.Column(0, 0) End If End Sub Private Sub СумОклад_Exit(Cancel As Integer) On Error Resume Next Dim N As Long 'Проверка корректности ввода N = CLng(СумОклад.Text) 'Если введено не число или запредельное значение If (Err.Number <> 0) Or (N < КнСумОклад.Min) Or (N > КнСумОклад.Max) Then 'сообщаем об этом MsgBox "Введите число в диапазоне от " & CStr(КнСумОклад.Min) & " до " _ & CStr(КнСумОклад.Max), vbExclamation, "Ошибка ввода" 'Очищаем объект Err и возвращаемся в поле "СумОклад" Err.Clear Cancel = True Else 'При корректном вводе поручаем обработку ошибок системе On Error GoTo 0 'и меняем оклад ИзменитьОклад КнСумОклад.Value = СумОклад End If End Sub Private Sub СписокНачислениеОклад_DblClick(Cancel As Integer) Dim База As Object, Начисление2 As Object Set База = CurrentDb Set Начисление2 = База.OpenRecordset("Начисление2", dbOpenDynaset) ДоступОклад True With Начисление2 'Ищем соответствующую запись в таблице Начисление2. .FindFirst "[КодПлан] = " & CStr(СписокНачислениеОклад) КнСумОклад = СумОклад .Edit ![Оклад] = СумОклад .Update СписокНачислениеОклад.Requery Me.Requery .Close End With Set База = Nothing End Sub Private Sub ИзменитьОклад() Dim База As Object, Начисление2 As Object Set База = CurrentDb Set Начисление2 = База.OpenRecordset("Начисление2", dbOpenDynaset) With Начисление2 .FindFirst "[КодПлан] = " & CStr(СписокНачислениеОклад) .Edit ![Оклад] = СумОклад .Update СписокНачислениеОклад.Requery Me.Requery .Close End With Set База = Nothing End Sub Private Sub ДоступОклад(Доступ As Boolean) КнСумОклад.Enabled = Доступ СумОклад.Enabled = Доступ End Sub Может у кого есть что-то похожее по сути, может быть вышлете на адрес:UchBagira@yandex.ru | Всего записей: 7 | Зарегистр. 01-10-2007 | Отправлено: 17:54 02-10-2007 | Исправлено: Bagira3785, 18:11 02-10-2007 |
|