Заявление IIF о критериях - PullRequest
0 голосов
/ 17 февраля 2019

У меня есть запрос с полями с именами «FirstName», «Condition», «Status».Поле «Условие» может быть «Работающим» или «Находящимся на обслуживании» или «Поврежденным», а для «Состояние» оно «Доступно», «Недоступно» или «Назначено».

Если условие установлено на «На обслуживании», тоСтатус должен измениться на «Недоступен».То же самое происходит, если Условие установлено на «Поврежден».Однако, если имя FirstName заполнено, то условие должно переключиться на «Работать», а состояние также должно быть установлено на «Назначено»

Код ниже - только мое предположение, и я знаю, что он не будет работать.

Status: IIf(IsNull([FirstName],"Available","Unavailable","Assigned" and [Condition]=Damaged),"Unavailable","Available")

1 Ответ

0 голосов
/ 18 февраля 2019

Где этот критерий?Критерий запрашивает статус, но не меняет его.

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

Private Sub Condition_AfterUpdate()
    Select Case Me!Condition
        Case "Working"
            Me!Status = "Assigned"
        Case "Under Maintenance"
            Me!Status = "Unavailable"
        Case "Damaged"
            Me!Status = "Unavailable"
    End Select
End Sub

Private Sub FirstName_AfterUpdate()
    If Nz(FirstName) <> "" Then
        Me!Condition = "Working"
        Me!Status = "Assigned"
    End If
End Sub
...