Группа переключателей

almaz85
Дата: 27.09.2005 10:44:03
Помогите плиз!!!

У меня есть группа переключателей, сделанная стандартным компоненот Аксесса.
Как мне сделать, чтобы пользователь, выбирая один из вариантов автоматически заносил в таблицу галочку в логическое поле.

то есть вопрос в том, как из группы переключателей привязать к полю переключатель, но в то же время у меня должна остаться возможно тсь выбора только одного варианта из предложенных. То есть пользователь может выбрать только один вариант...

КРиво... но вот так понимаю свою проблему... Помогите плиз
Allll
Дата: 27.09.2005 10:58:24
А что вы хотите получить в итоге? Сколько вариантов выбора есть у пользователя?

Если в таблице, только одно логическое поле (Да/Нет), то используйте флажок. Если для этого логического поля вы хотите использовать группу переключателей, то присвойте одному из них значение 0 (False), а другому -1 (True). Если в группе больше двух переключателей, то поле таблицы должно быть не логическим, а числовым.
almaz85
Дата: 27.09.2005 11:01:44
Значит так
Группа переключателей из 3 вариантов
у меня в табличке есть 3 поля логические
Выбрать в группе переключателей можно только 1 вариант
я хочу чтобы вариант переключателя был подсоединен к опредеелнному полю (одному из 3 логических) и в это поле проставлялась галочка при выборе данного варианта..
если не выбрано соответственно в поле ничего не стоит..
вот так..
SAS!
Дата: 27.09.2005 11:17:23
Т.е. каждому полю таблицы соответствует свой переключатель? Здесь поступайте как с обычным контролом: данные для переключателя - это имя поля из таблицы...
SAS!
Дата: 27.09.2005 11:20:43
В этом варианте не надо использовать группу. Если уж хочется группу, то в коде надо присваивать логическим полям значения Истина/Ложь в зависимости от того, что выбрано в группе
almaz85
Дата: 27.09.2005 11:23:38
хорошо... а как мне написать чтобы можно было выбрать тоько один вариант... (просто я с VBA плоховато)
Allll
Дата: 27.09.2005 11:23:52
Я бы сделал три отдельных флажка, каждый из них подключил к своему полю. А в событии После обновления выключал бы лишние флажки:
Private Sub Флажок1_AfterUpdate()
    If Флажок1.Value Then     ' если этот флажок включен,
        Флажок2.Value = False ' то два других выключить
        Флажок3.Value = False
    End If
End Sub

Private Sub Флажок2_AfterUpdate()
    If Флажок2.Value Then
        Флажок1.Value = False
        Флажок3.Value = False
    End If
End Sub

Private Sub Флажок3_AfterUpdate()
    If Флажок3.Value Then
        Флажок1.Value = False
        Флажок2.Value = False
    End If
End Sub
almaz85
Дата: 27.09.2005 12:18:16
спасибки... это я сделала... теперь надо вот проверить... если все флажки false, то выдать сообщение... о том что не выбран ни один флажок...
и пока не выберет не идти дальше...

вот есть процедура на нажатие кнопки куда воткнуть проверку вот этих флажков...??

[SRC vba][/SRC]Private Sub изменение_Click()
Dim dbs As Database
Dim rst As Recordset

Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("история")
If Me.Отзыв <> "" Then
rst.AddNew
rst![История] = Forms![ôðìÏðîñìîòðÍ]![ôðìÎáùèå].Form![Êîä êëèåíòà]
rst![Îòçûâ] = Me.ïÎòçûâ
rst![Äàòà çàïèñè] = Date
rst![Äàòà êîíòàêòà] = Date
rst![Âèä êîíòàêòà] = "Â ïàññèâ"
rst![Çàâåðøåíèå] = -1
rst![Ñîçäàòåëü] = Forms!Êëèåíò.Caption
rst![Èñïîëíèòåëü] = Forms![ôðìÏðîñìîòðÍ]![ôðìÎáùèå].Form![Ìåíåäæåð]
'В общем здесь куча условий... которые должны измениться...'
rst.Update
Forms![Просмотр]!История_клиента.Requery
DoCmd.Close acForm, "Пассивное"
Else
MsgBox ("Не написана причина изменения состояния.")
End If

End Sub
almaz85
Дата: 27.09.2005 12:19:17
Private Sub êíÈçìåíèòü_Click()
Dim dbs As Database
Dim rst As Recordset

Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("Èñòîðèÿ êëèåíòà")
If Me.ïÎòçûâ <> "" Then
 rst.AddNew
   rst![Êîä êëèåíòà] = Forms![ôðìÏðîñìîòðÍ]![ôðìÎáùèå].Form![Êîä êëèåíòà]
    rst![Îòçûâ] = Me.ïÎòçûâ
     rst![Äàòà çàïèñè] = Date
       rst![Äàòà êîíòàêòà] = Date
         rst![Âèä êîíòàêòà] = "Â ïàññèâ"
           rst![Çàâåðøåíèå] = -1
             rst![Ñîçäàòåëü] = Forms!Êëèåíò.Caption
              rst![Èñïîëíèòåëü] = Forms![ôðìÏðîñìîòðÍ]![ôðìÎáùèå].Form![Ìåíåäæåð]

     rst.Update
 Forms![ôðìÏðîñìîòðÍ]!ôðìÈñòîðèÿÊëèíòàÍ.Requery
 DoCmd.Close acForm, "ôðìÏàññèâ"
Else
MsgBox ("Íå îïèñàíà ïðè÷èíà èçìåíåíèÿ ñîñòîÿíèÿ.")
End If

End Sub
Allll
Дата: 27.09.2005 12:27:51
Наверное, в начало:
Private Sub изменение_Click()
Dim dbs As Database
Dim rst As Recordset

If (Флажок1 Or Флажок2 Or Флажок3) = False Then
     MsgBox "Необходимо выбрать один из вариантов"
     Exit Sub
End If

...
End Sub