Добрый день. Такая задача: есть таблица сотрудников: sotrudnik, таблица номеров:mun, необходимо присваивать и лишать номера сотрудникам. В форме 2 это реализовано так: Присваивая по нажатию кномпки, выбирается свободный номер из таблицы mun, и этот же номер обновляется на статус (2) что означает что этот номер теперь занят, и запросом на добавление заносятся данные в таблицу истории:story.
| Код | Private Sub êîìàíäà6_Click() Dim a Dim sql As String Dim sql2 As String
a = DMin("num.numgrup", "num", "status = '1'") Me.personnum = a Me.Dirty = False sql = "update num set status = '2' where numgrup = " & Me.personnum CurrentDb.Execute sql DoCmd.OpenQuery "prisv" End Sub
|
Что интересно если за место DoCmd.OpenQuery "prisv" написать CurrentDb.Execut "prisv" высткакивает 3061, замало параметрів. очікується 2. Хотя в других формах я так запускал запрос на добавление.
И удалить номер так:
| Код | Private Sub êîìàíäà7_Click() Dim sql As String Dim sql2 As String sql = "update num set status = '1' where numgrup = " & Me.personnum sql2 = "update sotrudnik set personnum = '' where id = " & Me.id DoCmd.OpenQuery "ubr" CurrentDb.Execute sql CurrentDb.Execute sql2 Forms![Ôîðìà2].Requery End Sub
|
Но если нужно удалить 100 номеров это займет уйму времени, я создал запрост тех кого удалить нужно, так же запрос кому нужно добавить номер и на Форме 1 кнопки добавить и убрать, но реализовать это не получается, мне сказали нужно через цикл попробовал написать неполучается:
| Код | Private Sub 0_Click() Dim a Dim sql As String Dim sql2 As String Dim sotr sotr = prisvoit.id a = DMin("num.numgrup", "num", "status = '1'") sql2 = "update sotrudnik set personnum = " & a sql = "update num set status = '2' where numgrup = " & a For Each sotr In sotrudnik CurrentDb.Execute sqll CurrentDb.Execute sql Next sotr End Sub
|
Наверно все не правильно сделал. Не пойму как для переменной сотрудники присвоить id сотрудника из таблицы sotrudnik, может кто нибудь поможет с этим циклом? |